./PaxHeaders.25974/fluxbox-1.3.50000644000175000017500000000013212106662667014344 xustar000000000000000030 mtime=1360750007.443811622 30 atime=1360750008.291811617 30 ctime=1360750008.291811617 fluxbox-1.3.5/0000755000175000017500000000000012106662667012313 5ustar00mgmg00000000000000fluxbox-1.3.5/PaxHeaders.25974/data0000644000175000017500000000013212106662667015120 xustar000000000000000030 mtime=1360750007.483811622 30 atime=1360750008.291811617 30 ctime=1360750008.291811617 fluxbox-1.3.5/data/0000755000175000017500000000000012106662667013224 5ustar00mgmg00000000000000fluxbox-1.3.5/data/PaxHeaders.25974/styles0000644000175000017500000000013212106662670016435 xustar000000000000000030 mtime=1360750008.167811618 30 atime=1360750008.295811617 30 ctime=1360750008.291811617 fluxbox-1.3.5/data/styles/0000755000175000017500000000000012106662670014541 5ustar00mgmg00000000000000fluxbox-1.3.5/data/styles/PaxHeaders.25974/bloe0000644000175000017500000000013212106662670017356 xustar000000000000000030 mtime=1360750008.203811617 30 atime=1360750008.295811617 30 ctime=1360750008.295811617 fluxbox-1.3.5/data/styles/bloe/0000755000175000017500000000000012106662670015462 5ustar00mgmg00000000000000fluxbox-1.3.5/data/styles/bloe/PaxHeaders.25974/pixmaps0000644000175000017500000000013212106662670021037 xustar000000000000000030 mtime=1360750008.283811617 30 atime=1360750008.295811617 30 ctime=1360750008.295811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/0000755000175000017500000000000012106662670017143 5ustar00mgmg00000000000000fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/windowlabelufcs.xpm0000644000175000017500000000013212106662425025030 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.599812453 30 ctime=1360750008.295811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/windowlabelufcs.xpm0000644000175000017500000000146412106662425023064 0ustar00mgmg00000000000000/* XPM */ static char * windowlabelufcs_xpm[] = { "23 23 9 1", " c #FBFAF7", ". c #CBCAC8", "+ c #7D7D7C", "@ c #F7F7F4", "# c #F7F4F0", "$ c #F1ECE5", "% c #EEE9E2", "& c #7B7A79", "* c #C4C0BC", " ", ".......................", "+++++++++++++++++++++++", "@@@@@@@@@@@@@@@@@@@@@@@", " ", " ", " ", " ", " ", " ", " ", " ", "#######################", "$$$$$$$$$$$$$$$$$$$$$$$", "$$$$$$$$$$$$$$$$$$$$$$$", "$$$$$$$$$$$$$$$$$$$$$$$", "$$$$$$$$$$$$$$$$$$$$$$$", "$$$$$$$$$$$$$$$$$$$$$$$", "$$$$$$$$$$$$$$$$$$$$$$$", "%%%%%%%%%%%%%%%%%%%%%%%", "&&&&&&&&&&&&&&&&&&&&&&&", "***********************", "$$$$$$$$$$$$$$$$$$$$$$$"}; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/unshadeufcs.xpm0000644000175000017500000000013212106662425024150 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.595812453 30 ctime=1360750008.295811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/unshadeufcs.xpm0000644000175000017500000000555412106662425022210 0ustar00mgmg00000000000000/* XPM */ static char * unshadeufcs_xpm[] = { "23 23 107 2", " c #FBFAF7", ". c #CBCAC8", "+ c #7D7D7C", "@ c #F7F7F4", "# c #7B7A77", "$ c #FAF9F6", "% c #F9F9F5", "& c #F9F8F5", "* c #F8F7F4", "= c #F8F7F3", "- c #F7F6F3", "; c #F5F4F1", "> c #E1E0DD", ", c #E0DFDC", "' c #DFDEDB", ") c #F3F2EE", "! c #F0EFEC", "~ c #DCDBD9", "{ c #DCDAD8", "] c #DBDAD8", "^ c #DAD9D8", "/ c #DAD9D7", "( c #EDECE9", "_ c #EBEAE7", ": c #D8D7D4", "< c #D7D6D4", "[ c #D7D6D3", "} c #D2D1CE", "| c #FFFFFF", "1 c #D0CFCC", "2 c #D6D5D2", "3 c #E9E7E4", "4 c #E6E5E2", "5 c #D3D2CF", "6 c #D3D1CF", "7 c #BBBAB7", "8 c #5E5D5C", "9 c #474645", "0 c #464645", "a c #464545", "b c #5D5D5C", "c c #BAB9B7", "d c #D1D0CE", "e c #E3E2DF", "f c #CECECB", "g c #CECDCA", "h c #C9C8C5", "i c #B3B2AF", "j c #ADACAA", "k c #ACABA9", "l c #ABAAA8", "m c #B1B0AD", "n c #C7C6C3", "o c #CDCCC9", "p c #DEDDDA", "q c #DCDBD8", "r c #CAC9C6", "s c #CAC8C5", "t c #C8C8C5", "u c #C8C7C4", "v c #C8C6C4", "w c #D9D8D5", "x c #F7F4F0", "y c #777470", "z c #D3D0CC", "A c #C2BFBB", "B c #C1BEBA", "C c #C0BEBA", "D c #C0BDB9", "E c #D1CECA", "F c #F1ECE5", "G c #716C65", "H c #C8C3BC", "I c #B8B3AD", "J c #B8B2AC", "K c #B7B2AC", "L c #B7B2AB", "M c #B6B1AC", "N c #B6B1AB", "O c #C5C1B9", "P c #C3BEB7", "Q c #B3AEA8", "R c #B2AEA7", "S c #B2ADA7", "T c #B2ADA6", "U c #B1ADA6", "V c #C1BBB4", "W c #BEB9B2", "X c #AEAAA3", "Y c #ADA9A2", "Z c #ADA8A2", "` c #BBB6B0", " . c #B9B4AD", ".. c #AAA59F", "+. c #AAA49F", "@. c #A9A49E", "#. c #A8A49E", "$. c #A8A39D", "%. c #B6B2AB", "&. c #B4AFA8", "*. c #B4AFA7", "=. c #B3AEA7", "-. c #B2ADA8", ";. c #B1ACA8", ">. c #EEE9E2", ",. c #7B7A79", "'. c #C4C0BC", " ", ". . . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", " # # # # # # # # # # # # # # # # # ", " # $ $ $ % & & & & & & * * * * * = - # ", " # ; > > > , , , , , ' ' ' ' ' ' ' ) # ", " # ! ~ ~ { ] ] ] ] ] ] ^ / / / / / ( # ", " # _ : < [ } | | | | | | | 1 2 2 2 3 # ", " # 4 5 5 6 7 8 9 0 0 0 a b c d d d e # ", " # > f f g h i j k k k l m n o o o p # ", " # q r r s h h h h h h t u u u u v w # ", "x x y z A A B B B B B B C D D D D D D E y x x ", "F F G H I I J J K K K K K L M N N N N O G F F ", "F F G P Q Q R S S S S S S T U U U U U V G F F ", "F F G W X X X X Y Y Y Y Y Y Y Z Z Z Z ` G F F ", "F F G .....+.@.@.@.@.@.@.#.$.$.$.$.$.%.G F F ", "F F G &.&.&.&.*.=.=.=.=.-.-.-.-.-.-.-.;.G F F ", "F F F G G G G G G G G G G G G G G G G G F F F ", ">.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.", ",.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.", "'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.", "F F F F F F F F F F F F F F F F F F F F F F F "}; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/unshadefcs.xpm0000644000175000017500000000013212106662425023763 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.595812453 30 ctime=1360750008.299811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/unshadefcs.xpm0000644000175000017500000000553312106662425022020 0ustar00mgmg00000000000000/* XPM */ static char * unshadefcs_xpm[] = { "23 23 106 2", " c #FBFAF7", ". c #CBCAC8", "+ c #7D7D7C", "@ c #D3D2DE", "# c #D6D5E1", "$ c #565561", "% c #D5D4E0", "& c #D4D4DF", "* c #D4D3DF", "= c #D3D2DD", "- c #D2D1DD", "; c #D0CFDB", "> c #BFBEC9", ", c #BEBDC8", "' c #BDBCC7", ") c #CECDD8", "! c #CBCAD6", "~ c #BAB9C4", "{ c #BAB8C3", "] c #B9B8C3", "^ c #B8B8C3", "/ c #C8C7D3", "( c #C6C5D1", "_ c #B6B5C0", ": c #B5B4C0", "< c #B5B4BF", "[ c #B1B0BB", "} c #FFFFFF", "| c #AFAEB9", "1 c #B4B3BE", "2 c #C4C2CE", "3 c #C1C0CC", "4 c #B1AFBB", "5 c #9D9CA6", "6 c #4F4E53", "7 c #3B3B3F", "8 c #3B3A3E", "9 c #3A3A3E", "0 c #4E4E53", "a c #9C9BA5", "b c #BEBDC9", "c c #BCBBC7", "d c #ADACB7", "e c #ACABB6", "f c #A8A7B2", "g c #95949E", "h c #909099", "i c #908F98", "j c #8F8E97", "k c #94939C", "l c #A6A5B0", "m c #ABAAB5", "n c #B9B8C4", "o c #B7B6C2", "p c #A8A6B1", "q c #A7A6B1", "r c #A6A6B1", "s c #A6A4B0", "t c #B4B3BF", "u c #D2CFDA", "v c #524F5A", "w c #AEABB6", "x c #A09DA7", "y c #9F9CA6", "z c #9E9CA6", "A c #9E9BA5", "B c #ACA9B4", "C c #CCC7CF", "D c #4C474F", "E c #A39EA6", "F c #969198", "G c #969097", "H c #959097", "I c #959096", "J c #948F97", "K c #948F96", "L c #A09CA3", "M c #9E99A1", "N c #918C94", "O c #908C93", "P c #908B93", "Q c #908B92", "R c #8F8B92", "S c #9C969E", "T c #99949C", "U c #8C888F", "V c #8B878E", "W c #8B868D", "X c #96919A", "Y c #969397", "Z c #8A888B", "` c #8B888B", " . c #8B898B", ".. c #8B898C", "+. c #989699", "@. c #9B989C", "#. c #9B999C", "$. c #9B999D", "%. c #9C9A9D", "&. c #9C9A9E", "*. c #9D9A9E", "=. c #9D9B9E", "-. c #CAC5CD", ";. c #767576", ">. c #C4C0BC", ",. c #F1ECE5", " ", ". . . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ # # # ", "# # $ % % % & * * * * * * @ @ @ @ @ = - $ # # ", "# # $ ; > > > , , , , , ' ' ' ' ' ' ' ) $ # # ", "# # $ ! ~ ~ { ] ] ] ] ] ] ^ ^ ^ ^ ^ ^ / $ # # ", "# # $ ( _ : < [ } } } } } } } | 1 1 1 2 $ # # ", "# # $ 3 [ [ 4 5 6 7 8 8 8 9 0 a | | | b $ # # ", "# # $ c d d e f g h i i i j k l m m m n $ # # ", "# # $ o f f p q q q q q q r l l l l s t $ # # ", "u u v w x x y y y y y y z A A A A A A B v u u ", "C C D E F F G G H H H H H I J K K K K L D C C ", "C C D M N N O P P P P P P Q R R R R R S D C C ", "C C D T U U U U V V V V V V V W W W W X D C C ", "C C D Y Z Z Z Z Z Z ` ` . ...........+.D C C ", "C C D @.@.#.#.$.$.$.%.%.%.%.&.&.*.=.=.=.D C C ", "C C C D D D D D D D D D D D D D D D D D C C C ", "-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.", ";.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.", ">.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.", ",.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,."}; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/tbarufcs.xpm0000644000175000017500000000013212106662425023451 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.595812453 30 ctime=1360750008.299811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/tbarufcs.xpm0000644000175000017500000000132312106662425021477 0ustar00mgmg00000000000000/* XPM */ static char * tbarufcs_xpm[] = { "23 23 3 1", " c #FBFAF7", ". c #F7F4F0", "+ c #F1ECE5", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", ".......................", "+++++++++++++++++++++++", "+++++++++++++++++++++++", "+++++++++++++++++++++++", "+++++++++++++++++++++++", "+++++++++++++++++++++++", "+++++++++++++++++++++++", "+++++++++++++++++++++++", "+++++++++++++++++++++++", "+++++++++++++++++++++++", "+++++++++++++++++++++++"}; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/stuckufcs.xpm0000644000175000017500000000013212106662425023652 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.591812453 30 ctime=1360750008.299811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/stuckufcs.xpm0000644000175000017500000000551212106662425021704 0ustar00mgmg00000000000000/* XPM */ static char * stuckufcs_xpm[] = { "23 23 105 2", " c #FBFAF7", ". c #CBCAC8", "+ c #7D7D7C", "@ c #F7F7F4", "# c #7B7A77", "$ c #FAF9F6", "% c #F9F9F5", "& c #F9F8F5", "* c #F8F7F4", "= c #F8F7F3", "- c #F7F6F3", "; c #F5F4F1", "> c #E1E0DD", ", c #E0DFDC", "' c #DFDEDB", ") c #F3F2EE", "! c #F0EFEC", "~ c #DCDBD9", "{ c #DCDAD8", "] c #DBDAD8", "^ c #DAD9D8", "/ c #DAD9D7", "( c #EDECE9", "_ c #EBEAE7", ": c #D8D7D4", "< c #D7D6D4", "[ c #D7D6D3", "} c #D7D5D3", "| c #D6D5D2", "1 c #E9E7E4", "2 c #E6E5E2", "3 c #D3D2CF", "4 c #D3D1CF", "5 c #D2D1CE", "6 c #CDCCC9", "7 c #FFFFFF", "8 c #D1D0CE", "9 c #E3E2DF", "0 c #CECECB", "a c #CECDCA", "b c #C9C8C5", "c c #C7C6C3", "d c #DEDDDA", "e c #DCDBD8", "f c #CAC9C6", "g c #CAC8C5", "h c #AEADAB", "i c #ADACA9", "j c #C8C7C4", "k c #C8C6C4", "l c #D9D8D5", "m c #F7F4F0", "n c #777470", "o c #D3D0CC", "p c #C2BFBB", "q c #C1BEBA", "r c #A29F9C", "s c #A19F9B", "t c #C0BDB9", "u c #D1CECA", "v c #F1ECE5", "w c #716C65", "x c #C8C3BC", "y c #B8B3AD", "z c #B8B2AC", "A c #9F9A95", "B c #4D4B48", "C c #9D9994", "D c #B6B1AB", "E c #C5C1B9", "F c #C3BEB7", "G c #B3AEA8", "H c #B2AEA7", "I c #B2ADA7", "J c #AEA9A3", "K c #8B8782", "L c #4B4946", "M c #3C3A38", "N c #ACA8A1", "O c #B1ADA6", "P c #C1BBB4", "Q c #BEB9B2", "R c #AEAAA3", "S c #ADA9A2", "T c #A9A59E", "U c #96928C", "V c #918E88", "W c #95928C", "X c #A8A49E", "Y c #ADA8A2", "Z c #BBB6B0", "` c #B9B4AD", " . c #AAA59F", ".. c #AAA49F", "+. c #A9A49E", "@. c #A8A39D", "#. c #B6B2AB", "$. c #B4AFA8", "%. c #B4AFA7", "&. c #B3AEA7", "*. c #B2ADA8", "=. c #B1ACA8", "-. c #EEE9E2", ";. c #7B7A79", ">. c #C4C0BC", " ", ". . . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", " # # # # # # # # # # # # # # # # # ", " # $ $ $ % & & & & & & * * * * * = - # ", " # ; > > > , , , , , ' ' ' ' ' ' ' ) # ", " # ! ~ ~ { ] ] ] ] ] ] ^ / / / / / ( # ", " # _ : < [ [ [ [ [ [ } | | | | | | 1 # ", " # 2 3 3 4 5 5 6 7 7 7 . 8 8 8 8 8 9 # ", " # > 0 0 a a b 7 7 7 7 7 c 6 6 6 6 d # ", " # e f f g b h 7 7 7 7 7 i j j j k l # ", "m m n o p p q q r 7 7 7 7 7 s t t t t u n m m ", "v v w x y y z z A B 7 7 7 B C D D D D E w v v ", "v v w F G G H I J K L M L K N O O O O P w v v ", "v v w Q R R R R S T U V W X S Y Y Y Y Z w v v ", "v v w ` . ...+.+.+.+.+.+.X @.@.@.@.@.#.w v v ", "v v w $.$.$.$.%.&.&.&.&.*.*.*.*.*.*.*.=.w v v ", "v v v w w w w w w w w w w w w w w w w w v v v ", "-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.", ";.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.", ">.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.", "v v v v v v v v v v v v v v v v v v v v v v v "}; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/stickufcs.xpm0000644000175000017500000000013212106662425023636 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.591812453 30 ctime=1360750008.299811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/stickufcs.xpm0000644000175000017500000000565212106662425021675 0ustar00mgmg00000000000000/* XPM */ static char * stickufcs_xpm[] = { "23 23 111 2", " c #FBFAF7", ". c #CBCAC8", "+ c #7D7D7C", "@ c #F7F7F4", "# c #7B7A77", "$ c #FAF9F6", "% c #F9F9F5", "& c #F9F8F5", "* c #F8F7F4", "= c #F8F7F3", "- c #F7F6F3", "; c #F5F4F1", "> c #E1E0DD", ", c #E0DFDC", "' c #DFDEDB", ") c #F3F2EE", "! c #F0EFEC", "~ c #DCDBD9", "{ c #DCDAD8", "] c #DBDAD8", "^ c #DAD9D8", "/ c #DAD9D7", "( c #EDECE9", "_ c #EBEAE7", ": c #D8D7D4", "< c #D7D6D4", "[ c #D7D6D3", "} c #D7D5D3", "| c #D6D5D2", "1 c #E9E7E4", "2 c #E6E5E2", "3 c #D3D2CF", "4 c #D3D1CF", "5 c #D2D1CE", "6 c #CDCCC9", "7 c #FFFFFF", "8 c #D1D0CE", "9 c #E3E2DF", "0 c #CECECB", "a c #CECDCA", "b c #C9C8C5", "c c #565655", "d c #454544", "e c #C7C6C3", "f c #DEDDDA", "g c #DCDBD8", "h c #CAC9C6", "i c #CAC8C5", "j c #AEADAB", "k c #939290", "l c #A8A7A5", "m c #92918F", "n c #ADACA9", "o c #C8C7C4", "p c #C8C6C4", "q c #D9D8D5", "r c #F7F4F0", "s c #777470", "t c #D3D0CC", "u c #C2BFBB", "v c #C1BEBA", "w c #A29F9C", "x c #A19F9C", "y c #A19F9B", "z c #C0BDB9", "A c #D1CECA", "B c #F1ECE5", "C c #716C65", "D c #C8C3BC", "E c #B8B3AD", "F c #B8B2AC", "G c #9F9A95", "H c #4D4B48", "I c #9D9994", "J c #B6B1AB", "K c #C5C1B9", "L c #C3BEB7", "M c #B3AEA8", "N c #B2AEA7", "O c #B2ADA7", "P c #AEA9A3", "Q c #8B8782", "R c #4B4946", "S c #3C3A38", "T c #ACA8A1", "U c #B1ADA6", "V c #C1BBB4", "W c #BEB9B2", "X c #AEAAA3", "Y c #ADA9A2", "Z c #A9A59E", "` c #96928C", " . c #918E88", ".. c #95928C", "+. c #A8A49E", "@. c #ADA8A2", "#. c #BBB6B0", "$. c #B9B4AD", "%. c #AAA59F", "&. c #AAA49F", "*. c #A9A49E", "=. c #A8A39D", "-. c #B6B2AB", ";. c #B4AFA8", ">. c #B4AFA7", ",. c #B3AEA7", "'. c #B2ADA8", "). c #B1ACA8", "!. c #EEE9E2", "~. c #7B7A79", "{. c #C4C0BC", " ", ". . . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", " # # # # # # # # # # # # # # # # # ", " # $ $ $ % & & & & & & * * * * * = - # ", " # ; > > > , , , , , ' ' ' ' ' ' ' ) # ", " # ! ~ ~ { ] ] ] ] ] ] ^ / / / / / ( # ", " # _ : < [ [ [ [ [ [ } | | | | | | 1 # ", " # 2 3 3 4 5 5 6 7 7 7 . 8 8 8 8 8 9 # ", " # > 0 0 a a b 7 c d c 7 e 6 6 6 6 f # ", " # g h h i b j 7 k l m 7 n o o o p q # ", "r r s t u u v v w 7 w v x 7 y z z z z A s r r ", "B B C D E E F F G H 7 7 7 H I J J J J K C B B ", "B B C L M M N O P Q R S R Q T U U U U V C B B ", "B B C W X X X X Y Z ` ...+.Y @.@.@.@.#.C B B ", "B B C $.%.%.&.*.*.*.*.*.*.+.=.=.=.=.=.-.C B B ", "B B C ;.;.;.;.>.,.,.,.,.'.'.'.'.'.'.'.).C B B ", "B B B C C C C C C C C C C C C C C C C C B B B ", "!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.", "~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.", "{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.", "B B B B B B B B B B B B B B B B B B B B B B B "}; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/stickfcs.xpm0000644000175000017500000000013212106662425023451 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.587812453 30 ctime=1360750008.303811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/stickfcs.xpm0000644000175000017500000000571112106662425021504 0ustar00mgmg00000000000000/* XPM */ static char * stickfcs_xpm[] = { "23 23 113 2", " c #FBFAF7", ". c #CBCAC8", "+ c #7D7D7C", "@ c #D3D2DE", "# c #D6D5E1", "$ c #565561", "% c #D5D4E0", "& c #D4D4DF", "* c #D4D3DF", "= c #D3D2DD", "- c #D2D1DD", "; c #D0CFDB", "> c #BFBEC9", ", c #BEBDC8", "' c #BDBCC7", ") c #CECDD8", "! c #CBCAD6", "~ c #BAB9C4", "{ c #BAB8C3", "] c #B9B8C3", "^ c #B8B8C3", "/ c #C8C7D3", "( c #C6C5D1", "_ c #B6B5C0", ": c #B5B4C0", "< c #B5B4BF", "[ c #B5B3BF", "} c #B4B3BE", "| c #C4C2CE", "1 c #C1C0CC", "2 c #B1B0BB", "3 c #B1AFBB", "4 c #B0AFBA", "5 c #ACABB6", "6 c #FFFFFF", "7 c #AAA9B5", "8 c #AFAEB9", "9 c #BEBDC9", "0 c #BCBBC7", "a c #ADACB7", "b c #A8A7B2", "c c #48484C", "d c #3A3A3D", "e c #A6A5B0", "f c #ABAAB5", "g c #B9B8C4", "h c #B7B6C2", "i c #A8A6B1", "j c #A7A6B1", "k c #919099", "l c #7A7981", "m c #8B8B94", "n c #797880", "o c #8F8E98", "p c #A6A4B0", "q c #B4B3BF", "r c #D2CFDA", "s c #524F5A", "t c #AEABB6", "u c #A09DA7", "v c #9F9CA6", "w c #85838B", "x c #85828A", "y c #9E9BA5", "z c #ACA9B4", "A c #CCC7CF", "B c #4C474F", "C c #A39EA6", "D c #969198", "E c #969097", "F c #817D83", "G c #3F3C3F", "H c #807B82", "I c #948F96", "J c #A09CA3", "K c #9E99A1", "L c #918C94", "M c #908C93", "N c #908B93", "O c #8D8890", "P c #706C73", "Q c #3C3A3E", "R c #312F32", "S c #706C72", "T c #8B878E", "U c #8F8B92", "V c #9C969E", "W c #99949C", "X c #8C888F", "Y c #88848B", "Z c #78757B", "` c #757177", " . c #78747B", ".. c #87838A", "+. c #8B868D", "@. c #96919A", "#. c #969397", "$. c #8A888B", "%. c #8B888B", "&. c #8B898B", "*. c #8B898C", "=. c #989699", "-. c #9B989C", ";. c #9B999C", ">. c #9B999D", ",. c #9C9A9D", "'. c #9C9A9E", "). c #9D9A9E", "!. c #9D9B9E", "~. c #CAC5CD", "{. c #767576", "]. c #C4C0BC", "^. c #F1ECE5", " ", ". . . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ # # # ", "# # $ % % % & * * * * * * @ @ @ @ @ = - $ # # ", "# # $ ; > > > , , , , , ' ' ' ' ' ' ' ) $ # # ", "# # $ ! ~ ~ { ] ] ] ] ] ] ^ ^ ^ ^ ^ ^ / $ # # ", "# # $ ( _ : < < < < < < [ } } } } } } | $ # # ", "# # $ 1 2 2 3 4 4 5 6 6 6 7 8 8 8 8 8 9 $ # # ", "# # $ 0 a a 5 5 b 6 c d c 6 e f f f f g $ # # ", "# # $ h b b i j k 6 l m n 6 o e e e p q $ # # ", "r r s t u u v v w 6 w v w 6 x y y y y z s r r ", "A A B C D D E E F G 6 6 6 G H I I I I J B A A ", "A A B K L L M N O P Q R Q S T U U U U V B A A ", "A A B W X X X X T Y Z ` ...T +.+.+.+.@.B A A ", "A A B #.$.$.$.$.$.$.%.%.&.&.*.*.*.*.*.=.B A A ", "A A B -.-.;.;.>.>.>.,.,.,.,.'.'.).!.!.!.B A A ", "A A A B B B B B B B B B B B B B B B B B A A A ", "~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.", "{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.", "].].].].].].].].].].].].].].].].].].].].].].].", "^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^."}; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/shadepr.xpm0000644000175000017500000000013212106662425023266 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.587812453 30 ctime=1360750008.303811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/shadepr.xpm0000644000175000017500000000575012106662425021324 0ustar00mgmg00000000000000/* XPM */ static char * shadepr_xpm[] = { "23 23 115 2", " c #FBFAF7", ". c #CBCAC8", "+ c #7D7D7C", "@ c #D3D2DE", "# c #D6D5E1", "$ c #706F7B", "% c #9D9CA5", "& c #9D9DA5", "* c #9E9DA6", "= c #9E9EA6", "- c #9F9EA7", "; c #9F9FA7", "> c #9F9FA8", ", c #A09FA8", "' c #A2A2AA", ") c #95959C", "! c #95959D", "~ c #96959D", "{ c #96969D", "] c #96969E", "^ c #96969F", "/ c #A4A4AD", "( c #A7A6AF", "_ c #9999A1", ": c #9999A2", "< c #9A99A2", "[ c #9A9AA2", "} c #9B9AA2", "| c #9B9BA2", "1 c #AAA9B2", "2 c #ACACB4", "3 c #9E9DA5", "4 c #9F9EA5", "5 c #9F9EA6", "6 c #9F9FA6", "7 c #A09FA7", "8 c #A0A0A8", "9 c #AEAEB7", "0 c #B1B0B9", "a c #A3A2AB", "b c #A3A3AB", "c c #A3A3AC", "d c #A4A3AC", "e c #A4A4AC", "f c #B4B3BC", "g c #B6B5BE", "h c #A7A7AE", "i c #A8A7AF", "j c #A8A8AF", "k c #A9A8B0", "l c #AAA9B1", "m c #A9A9B0", "n c #B9B8C1", "o c #BBBAC3", "p c #ACABB3", "q c #ACABB4", "r c #ADACB4", "s c #ADADB4", "t c #ADADB5", "u c #BEBDC6", "v c #D2CFDA", "w c #6C6974", "x c #BDBBC3", "y c #ADACB3", "z c #AEADB4", "A c #AFADB4", "B c #AFADB5", "C c #B0ADB5", "D c #C0BDC5", "E c #CCC7CF", "F c #666169", "G c #BEBAC0", "H c #AEABB0", "I c #AEACB0", "J c #AEACB1", "K c #AFACB1", "L c #AFADB1", "M c #AFADB2", "N c #B0ADB1", "O c #B0ADB2", "P c #C0BCC3", "Q c #C3BFC5", "R c #B3AFB5", "S c #B3AFB6", "T c #B0ACB2", "U c #B3B0B6", "V c #B4B0B6", "W c #B4B1B6", "X c #B4B1B7", "Y c #B5B1B7", "Z c #B5B2B7", "` c #C5C2C8", " . c #C8C4CA", ".. c #B8B4B9", "+. c #B8B5B9", "@. c #A4A1A5", "#. c #525153", "$. c #3E3D3F", "%. c #3D3C3E", "&. c #3D3D3E", "*. c #535153", "=. c #A5A2A6", "-. c #B9B6BB", ";. c #CAC7CC", ">. c #BBB7BE", ",. c #B7B3BA", "'. c #A29FA5", "). c #9D9A9F", "!. c #9C999F", "~. c #A19EA4", "{. c #B6B2B9", "]. c #CAC5CD", "^. c #767576", "/. c #C4C0BC", "(. c #F1ECE5", " ", ". . . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ # # # ", "# # $ % % & * * * * = = - - - - ; ; > , $ # # ", "# # $ ' ) ! ~ ~ ~ ~ { { ] ] ] ] ] ^ ^ / $ # # ", "# # $ ( _ _ : < < < [ } } } } } } | | 1 $ # # ", "# # $ 2 3 4 5 5 5 5 6 6 6 7 7 7 7 , 8 9 $ # # ", "# # $ 0 ' ' ' a a a b c d d d d d e e f $ # # ", "# # $ g h h i i i i i j j k k k k l m n $ # # ", "# # $ o p q 2 r r r s s t t t t t t t u $ # # ", "v v w x y y z z z z z z A B B B B B C D w v v ", "E E F G H I J J J K K K L M N O O O O P F E E ", "E E F Q R R S T U V V V W X X T Y Y Z ` F E E ", "E E F ...+.+.@.#.$.%.%.&.&.*.=.-.-.-.;.F E E ", "E E F E >.>.>.,.'.).!.!.!.!.~.{.>.>.>.E F E E ", "E E F E E E E E E E E E E E E E E E E E F E E ", "E E E F F F F F F F F F F F F F F F F F E E E ", "].].].].].].].].].].].].].].].].].].].].].].].", "^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.", "/././././././././././././././././././././././.", "(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(."}; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/selected.xpm0000644000175000017500000000013212106662425023430 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.587812453 30 ctime=1360750008.303811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/selected.xpm0000644000175000017500000000074312106662425021463 0ustar00mgmg00000000000000/* XPM */ static char *selected[] = { /* columns rows colors chars-per-pixel */ "16 16 4 1", " c black", ". c #E7E7E7", "X c gray100", "o c None", /* pixels */ "oooooooooooooooo", "oooooooooooooooo", "oooooooooooooooo", "o.........oXoooo", "o.ooooooo.XXoooo", "o.oooooooXXXoooo", "o.ooooooXXXXoooo", "o.oXoooXXXXooooo", "o.oXXoXXXXoooooo", "o.oXXXXXX.oooooo", "o.oXXXXXo.oooooo", "o.ooXXXoo.oooooo", "o.oooXooo.oooooo", "o.........oooooo", "oooooooooooooooo", "oooooooooooooooo" }; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/minpr.xpm0000644000175000017500000000013212106662425022765 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.583812453 30 ctime=1360750008.303811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/minpr.xpm0000644000175000017500000000576612106662425021032 0ustar00mgmg00000000000000/* XPM */ static char * minpr_xpm[] = { "23 23 116 2", " c #FBFAF7", ". c #CBCAC8", "+ c #7D7D7C", "@ c #D3D2DE", "# c #D6D5E1", "$ c #706F7B", "% c #9D9CA5", "& c #9D9DA5", "* c #9E9DA6", "= c #9E9EA6", "- c #9F9EA7", "; c #9F9FA7", "> c #9F9FA8", ", c #A09FA8", "' c #A2A2AA", ") c #95959C", "! c #95959D", "~ c #96959D", "{ c #96969D", "] c #96969E", "^ c #96969F", "/ c #A4A4AD", "( c #A7A6AF", "_ c #9999A1", ": c #9999A2", "< c #9A99A2", "[ c #9A9AA2", "} c #9B9AA2", "| c #9B9BA2", "1 c #AAA9B2", "2 c #ACACB4", "3 c #9E9DA5", "4 c #9F9EA5", "5 c #9F9EA6", "6 c #9F9FA6", "7 c #A09FA7", "8 c #A0A0A8", "9 c #AEAEB7", "0 c #B1B0B9", "a c #A3A2AB", "b c #A3A3AB", "c c #A3A3AC", "d c #A4A3AC", "e c #A4A4AC", "f c #B4B3BC", "g c #B6B5BE", "h c #A7A7AE", "i c #A8A7AF", "j c #A8A8AF", "k c #A9A8B0", "l c #AAA9B1", "m c #A9A9B0", "n c #B9B8C1", "o c #BBBAC3", "p c #ACABB3", "q c #ACABB4", "r c #ADACB4", "s c #ADADB4", "t c #ADADB5", "u c #BEBDC6", "v c #D2CFDA", "w c #6C6974", "x c #BDBBC3", "y c #ADACB3", "z c #AEADB4", "A c #AFADB4", "B c #AFADB5", "C c #B0ADB5", "D c #C0BDC5", "E c #CCC7CF", "F c #666169", "G c #BEBAC0", "H c #AEABB0", "I c #AEACB0", "J c #AEACB1", "K c #AAA8AD", "L c #AFACB1", "M c #AFADB1", "N c #AFADB2", "O c #B0ADB1", "P c #ABA8AD", "Q c #B0ADB2", "R c #C0BCC3", "S c #C3BFC5", "T c #B3AFB5", "U c #B3AFB6", "V c #9C999E", "W c #B3B0B6", "X c #B4B0B6", "Y c #B4B1B6", "Z c #B4B1B7", "` c #B5B1B7", " . c #B5B2B7", ".. c #C5C2C8", "+. c #C8C4CA", "@. c #B8B4B9", "#. c #B8B5B9", "$. c #9F9DA0", "%. c #39383A", "&. c #201F20", "*. c #1F1F1F", "=. c #393839", "-. c #A09DA1", ";. c #B9B6BB", ">. c #CAC7CC", ",. c #BBB7BE", "'. c #B7B3BA", "). c #A29FA5", "!. c #9D9A9F", "~. c #9C999F", "{. c #A19EA4", "]. c #B6B2B9", "^. c #CAC5CD", "/. c #767576", "(. c #C4C0BC", "_. c #F1ECE5", " ", ". . . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ # # # ", "# # $ % % & * * * * = = - - - - ; ; > , $ # # ", "# # $ ' ) ! ~ ~ ~ ~ { { ] ] ] ] ] ^ ^ / $ # # ", "# # $ ( _ _ : < < < [ } } } } } } | | 1 $ # # ", "# # $ 2 3 4 5 5 5 5 6 6 6 7 7 7 7 , 8 9 $ # # ", "# # $ 0 ' ' ' a a a b c d d d d d e e f $ # # ", "# # $ g h h i i i i i j j k k k k l m n $ # # ", "# # $ o p q 2 r r r s s t t t t t t t u $ # # ", "v v w x y y z z z z z z A B B B B B C D w v v ", "E E F G H I J K J L L L M N O P Q Q Q R F E E ", "E E F S T T U V W X X X Y Z Z V ` ` ...F E E ", "E E F +.@.#.#.$.%.&.*.*.*.*.=.-.;.;.;.>.F E E ", "E E F E ,.,.,.'.).!.~.~.~.~.{.].,.,.,.E F E E ", "E E F E E E E E E E E E E E E E E E E E F E E ", "E E E F F F F F F F F F F F F F F F F F E E E ", "^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.", "/././././././././././././././././././././././.", "(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.", "_._._._._._._._._._._._._._._._._._._._._._._."}; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/menuiconufcs.xpm0000644000175000017500000000013212106662425024336 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.583812453 30 ctime=1360750008.303811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/menuiconufcs.xpm0000644000175000017500000000573512106662425022377 0ustar00mgmg00000000000000/* XPM */ static char * menuiconufcs_xpm[] = { "23 23 114 2", " c #FBFAF7", ". c #CBCAC8", "+ c #7D7D7C", "@ c #F7F7F4", "# c #7B7A77", "$ c #FAF9F6", "% c #F9F9F5", "& c #F9F8F5", "* c #F8F7F4", "= c #F8F7F3", "- c #F7F6F3", "; c #F5F4F1", "> c #E1E0DD", ", c #E0DFDC", "' c #DFDEDB", ") c #F3F2EE", "! c #F0EFEC", "~ c #DCDBD9", "{ c #DCDAD8", "] c #DBDAD8", "^ c #DAD9D8", "/ c #DAD9D7", "( c #EDECE9", "_ c #EBEAE7", ": c #D8D7D4", "< c #D7D6D4", "[ c #D7D6D3", "} c #D7D5D3", "| c #D6D5D2", "1 c #E9E7E4", "2 c #E6E5E2", "3 c #D3D2CF", "4 c #D3D1CF", "5 c #D2D1CE", "6 c #CDCCC9", "7 c #FFFFFF", "8 c #D1D0CE", "9 c #E3E2DF", "0 c #CECECB", "a c #CECDCA", "b c #B7B6B4", "c c #5C5C5A", "d c #454544", "e c #454443", "f c #5C5B5A", "g c #B6B6B3", "h c #DEDDDA", "i c #DCDBD8", "j c #CAC9C6", "k c #CAC8C5", "l c #C9C8C5", "m c #BFBEBB", "n c #BDBCB9", "o c #C8C7C4", "p c #C8C6C4", "q c #D9D8D5", "r c #F7F4F0", "s c #777470", "t c #D3D0CC", "u c #C2BFBB", "v c #C1BEBA", "w c #ACA9A6", "x c #565553", "y c #41403F", "z c #403F3E", "A c #565453", "B c #ABA8A5", "C c #C0BDB9", "D c #D1CECA", "E c #F1ECE5", "F c #716C65", "G c #C8C3BC", "H c #B8B3AD", "I c #B8B2AC", "J c #AEA9A3", "K c #ACA7A3", "L c #B6B1AB", "M c #C5C1B9", "N c #C3BEB7", "O c #B3AEA8", "P c #B2AEA7", "Q c #B2ADA7", "R c #9E9A95", "S c #504D4B", "T c #3C3A38", "U c #3B3A38", "V c #504D4A", "W c #9E9A94", "X c #B1ADA6", "Y c #C1BBB4", "Z c #BEB9B2", "` c #AEAAA3", " . c #A9A59E", ".. c #96928C", "+. c #918E88", "@. c #918D87", "#. c #95928C", "$. c #A8A49E", "%. c #ADA8A2", "&. c #BBB6B0", "*. c #B9B4AD", "=. c #AAA59F", "-. c #AAA49F", ";. c #A9A49E", ">. c #A8A39D", ",. c #B6B2AB", "'. c #B4AFA8", "). c #B4AFA7", "!. c #B3AEA7", "~. c #B2ADA8", "{. c #B1ACA8", "]. c #EEE9E2", "^. c #7B7A79", "/. c #C4C0BC", " ", ". . . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", " # # # # # # # # # # # # # # # # # ", " # $ $ $ % & & & & & & * * * * * = - # ", " # ; > > > , , , , , ' ' ' ' ' ' ' ) # ", " # ! ~ ~ { ] ] ] ] ] ] ^ / / / / / ( # ", " # _ : < [ [ [ [ [ [ } | | | | | | 1 # ", " # 2 3 3 4 5 6 7 7 7 7 7 . 8 8 8 8 9 # ", " # > 0 0 a a b c d e e f g 6 6 6 6 h # ", " # i j j k l m 7 7 7 7 7 n o o o p q # ", "r r s t u u v v w x y z z A B C C C C D s r r ", "E E F G H H I I J 7 7 7 7 7 K L L L L M F E E ", "E E F N O O P Q R S T U U V W X X X X Y F E E ", "E E F Z ` ` ` ` ...+.@.@.#.$.%.%.%.%.&.F E E ", "E E F *.=.=.-.;.;.;.;.;.;.$.>.>.>.>.>.,.F E E ", "E E F '.'.'.'.).!.!.!.!.~.~.~.~.~.~.~.{.F E E ", "E E E F F F F F F F F F F F F F F F F F E E E ", "].].].].].].].].].].].].].].].].].].].].].].].", "^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.", "/././././././././././././././././././././././.", "E E E E E E E E E E E E E E E E E E E E E E E "}; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/menuiconfcs.xpm0000644000175000017500000000013212106662425024151 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.579812453 30 ctime=1360750008.307811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/menuiconfcs.xpm0000644000175000017500000000603412106662425022203 0ustar00mgmg00000000000000/* XPM */ static char * menuiconfcs_xpm[] = { "23 23 118 2", " c #FBFAF7", ". c #CBCAC8", "+ c #7D7D7C", "@ c #D3D2DE", "# c #D6D5E1", "$ c #565561", "% c #D5D4E0", "& c #D4D4DF", "* c #D4D3DF", "= c #D3D2DD", "- c #D2D1DD", "; c #D0CFDB", "> c #BFBEC9", ", c #BEBDC8", "' c #BDBCC7", ") c #CECDD8", "! c #CBCAD6", "~ c #BAB9C4", "{ c #BAB8C3", "] c #B9B8C3", "^ c #B8B8C3", "/ c #C8C7D3", "( c #C6C5D1", "_ c #B6B5C0", ": c #B5B4C0", "< c #B5B4BF", "[ c #B5B3BF", "} c #B4B3BE", "| c #C4C2CE", "1 c #C1C0CC", "2 c #B1B0BB", "3 c #B1AFBB", "4 c #B0AFBA", "5 c #ACABB6", "6 c #FFFFFF", "7 c #AAA9B4", "8 c #AFAEB9", "9 c #BEBDC9", "0 c #BCBBC7", "a c #ADACB7", "b c #9998A2", "c c #4D4C51", "d c #3A3A3D", "e c #39393D", "f c #4C4C51", "g c #9897A1", "h c #ABAAB5", "i c #B9B8C4", "j c #B7B6C2", "k c #A8A7B2", "l c #A8A6B1", "m c #A7A6B1", "n c #9E9EA8", "o c #9D9CA6", "p c #A6A5B0", "q c #A6A4B0", "r c #B4B3BF", "s c #D2CFDA", "t c #524F5A", "u c #AEABB6", "v c #A09DA7", "w c #9F9CA6", "x c #8E8B94", "y c #47464A", "z c #363538", "A c #353437", "B c #47454A", "C c #8D8A93", "D c #9E9BA5", "E c #ACA9B4", "F c #CCC7CF", "G c #4C474F", "H c #A39EA6", "I c #969198", "J c #969097", "K c #8D898F", "L c #8C878F", "M c #948F96", "N c #A09CA3", "O c #9E99A1", "P c #918C94", "Q c #908C93", "R c #908B93", "S c #807C83", "T c #403E42", "U c #312F32", "V c #302E31", "W c #403E41", "X c #7F7C82", "Y c #8F8B92", "Z c #9C969E", "` c #99949C", " . c #8C888F", ".. c #88848B", "+. c #78757B", "@. c #757177", "#. c #747177", "$. c #78747B", "%. c #87838A", "&. c #8B868D", "*. c #96919A", "=. c #969397", "-. c #8A888B", ";. c #8B888B", ">. c #8B898B", ",. c #8B898C", "'. c #989699", "). c #9B989C", "!. c #9B999C", "~. c #9B999D", "{. c #9C9A9D", "]. c #9C9A9E", "^. c #9D9A9E", "/. c #9D9B9E", "(. c #CAC5CD", "_. c #767576", ":. c #C4C0BC", "<. c #F1ECE5", " ", ". . . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ # # # ", "# # $ % % % & * * * * * * @ @ @ @ @ = - $ # # ", "# # $ ; > > > , , , , , ' ' ' ' ' ' ' ) $ # # ", "# # $ ! ~ ~ { ] ] ] ] ] ] ^ ^ ^ ^ ^ ^ / $ # # ", "# # $ ( _ : < < < < < < [ } } } } } } | $ # # ", "# # $ 1 2 2 3 4 5 6 6 6 6 6 7 8 8 8 8 9 $ # # ", "# # $ 0 a a 5 5 b c d e e f g h h h h i $ # # ", "# # $ j k k l m n 6 6 6 6 6 o p p p q r $ # # ", "s s t u v v w w x y z A A B C D D D D E t s s ", "F F G H I I J J K 6 6 6 6 6 L M M M M N G F F ", "F F G O P P Q R S T U V V W X Y Y Y Y Z G F F ", "F F G ` . . . ...+.@.#.#.$.%.&.&.&.&.*.G F F ", "F F G =.-.-.-.-.-.-.;.;.>.>.,.,.,.,.,.'.G F F ", "F F G ).).!.!.~.~.~.{.{.{.{.].].^./././.G F F ", "F F F G G G G G G G G G G G G G G G G G F F F ", "(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.", "_._._._._._._._._._._._._._._._._._._._._._._.", ":.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.", "<.<.<.<.<.<.<.<.<.<.<.<.<.<.<.<.<.<.<.<.<.<.<."}; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/maxpr.xpm0000644000175000017500000000013212106662425022767 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.579812453 30 ctime=1360750008.307811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/maxpr.xpm0000644000175000017500000000632612106662425021025 0ustar00mgmg00000000000000/* XPM */ static char * maxpr_xpm[] = { "23 23 130 2", " c #FBFAF7", ". c #CBCAC8", "+ c #7D7D7C", "@ c #D3D2DE", "# c #D6D5E1", "$ c #706F7B", "% c #9D9CA5", "& c #9D9DA5", "* c #9E9DA6", "= c #9E9EA6", "- c #9F9EA7", "; c #9F9FA7", "> c #9F9FA8", ", c #A09FA8", "' c #A2A2AA", ") c #95959C", "! c #95959D", "~ c #96959D", "{ c #96969D", "] c #96969E", "^ c #96969F", "/ c #A4A4AD", "( c #A7A6AF", "_ c #9999A1", ": c #9999A2", "< c #9A99A2", "[ c #9A9AA2", "} c #9B9AA2", "| c #9B9BA2", "1 c #AAA9B2", "2 c #ACACB4", "3 c #9E9DA5", "4 c #9F9EA5", "5 c #9F9EA6", "6 c #9F9FA6", "7 c #A09FA7", "8 c #9C9BA2", "9 c #A0A0A8", "0 c #AEAEB7", "a c #B1B0B9", "b c #8D8C94", "c c #A3A2AB", "d c #A3A3AB", "e c #A3A3AC", "f c #A4A3AC", "g c #8D8D94", "h c #A4A4AC", "i c #B4B3BC", "j c #B6B5BE", "k c #A7A7AE", "l c #A8A7AF", "m c #8D8C93", "n c #181819", "o c #1C1C1E", "p c #19181A", "q c #A9A8B0", "r c #AAA9B1", "s c #A9A9B0", "t c #B9B8C1", "u c #BBBAC3", "v c #ACABB3", "w c #ACABB4", "x c #919096", "y c #ADACB4", "z c #79787E", "A c #919196", "B c #919197", "C c #79797E", "D c #ADADB5", "E c #BEBDC6", "F c #D2CFDA", "G c #6C6974", "H c #BDBBC3", "I c #ADACB3", "J c #AEADB4", "K c #AFADB4", "L c #929197", "M c #AFADB5", "N c #B0ADB5", "O c #C0BDC5", "P c #CCC7CF", "Q c #666169", "R c #BEBAC0", "S c #AEABB0", "T c #AEACB0", "U c #AEACB1", "V c #919094", "W c #929094", "X c #AFACB1", "Y c #AFADB1", "Z c #929195", "` c #B0ADB1", " . c #939195", ".. c #B0ADB2", "+. c #C0BCC3", "@. c #C3BFC5", "#. c #B3AFB5", "$. c #B3AFB6", "%. c #969398", "&. c #B3B0B6", "*. c #B4B0B6", "=. c #B4B1B6", "-. c #B4B1B7", ";. c #979499", ">. c #B5B1B7", ",. c #B5B2B7", "'. c #C5C2C8", "). c #C8C4CA", "!. c #B8B4B9", "~. c #B8B5B9", "{. c #9F9DA0", "]. c #3E3D3F", "^. c #39383A", "/. c #3D3C3E", "(. c #3D3D3E", "_. c #3E3D3E", ":. c #A09DA1", "<. c #B9B6BB", "[. c #CAC7CC", "}. c #BBB7BE", "|. c #B7B3BA", "1. c #A29FA5", "2. c #9D9A9F", "3. c #9C999F", "4. c #A19EA4", "5. c #B6B2B9", "6. c #CAC5CD", "7. c #767576", "8. c #C4C0BC", "9. c #F1ECE5", " ", ". . . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ # # # ", "# # $ % % & * * * * = = - - - - ; ; > , $ # # ", "# # $ ' ) ! ~ ~ ~ ~ { { ] ] ] ] ] ^ ^ / $ # # ", "# # $ ( _ _ : < < < [ } } } } } } | | 1 $ # # ", "# # $ 2 3 4 5 } 5 5 6 6 6 7 7 8 7 , 9 0 $ # # ", "# # $ a ' ' ' b c c d e f f f g f h h i $ # # ", "# # $ j k k l m l n o o o p q m q r s t $ # # ", "# # $ u v w 2 x y z A A B C D B D D D E $ # # ", "F F G H I I J A J A J J K L M L M M N O G F F ", "P P Q R S T U V U W X X Y Z ` .......+.Q P P ", "P P Q @.#.#.$.%.&.*.*.*.=.-.-.;.>.>.,.'.Q P P ", "P P Q ).!.~.~.{.].^././.(.^._.:.<.<.<.[.Q P P ", "P P Q P }.}.}.|.1.2.3.3.3.3.4.5.}.}.}.P Q P P ", "P P Q P P P P P P P P P P P P P P P P P Q P P ", "P P P Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q P P P ", "6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.", "7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.", "8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.", "9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9."}; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/closeufcs.xpm0000644000175000017500000000013212106662425023626 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.579812453 30 ctime=1360750008.307811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/closeufcs.xpm0000644000175000017500000000601212106662425021654 0ustar00mgmg00000000000000/* XPM */ static char * closeufcs_xpm[] = { "23 23 117 2", " c #FBFAF7", ". c #CBCAC8", "+ c #7D7D7C", "@ c #F7F7F4", "# c #7B7A77", "$ c #FAF9F6", "% c #F9F9F5", "& c #F9F8F5", "* c #F8F7F4", "= c #F8F7F3", "- c #F7F6F3", "; c #F5F4F1", "> c #E1E0DD", ", c #E0DFDC", "' c #DFDEDB", ") c #F3F2EE", "! c #F0EFEC", "~ c #DCDBD9", "{ c #DCDAD8", "] c #DBDAD8", "^ c #DAD9D8", "/ c #DAD9D7", "( c #EDECE9", "_ c #EBEAE7", ": c #D8D7D4", "< c #D7D6D4", "[ c #D7D6D3", "} c #D2D1CE", "| c #FFFFFF", "1 c #D1D0CD", "2 c #D2D0CE", "3 c #D0CFCC", "4 c #D6D5D2", "5 c #E9E7E4", "6 c #E6E5E2", "7 c #D3D2CF", "8 c #D3D1CF", "9 c #B6B5B3", "0 c #C6C6C3", "a c #B4B3B2", "b c #D1D0CE", "c c #E3E2DF", "d c #CECECB", "e c #CECDCA", "f c #B3B2AF", "g c #3A3A39", "h c #B1B0AD", "i c #CDCCC9", "j c #DEDDDA", "k c #DCDBD8", "l c #CAC9C6", "m c #CAC8C5", "n c #C4C3C0", "o c #979794", "p c #333332", "q c #979694", "r c #C3C2BF", "s c #C8C7C4", "t c #C8C6C4", "u c #D9D8D5", "v c #F7F4F0", "w c #777470", "x c #D3D0CC", "y c #C2BFBB", "z c #C1BEBA", "A c #B7B4B1", "B c #B5B3AF", "C c #C0BDB9", "D c #D1CECA", "E c #F1ECE5", "F c #716C65", "G c #C8C3BC", "H c #B8B3AD", "I c #B8B2AC", "J c #B4AEA8", "K c #151414", "L c #B1ACA6", "M c #B6B1AB", "N c #C5C1B9", "O c #C3BEB7", "P c #B3AEA8", "Q c #B2AEA7", "R c #9A9691", "S c #2D2C2B", "T c #6E6B67", "U c #99958F", "V c #B1ADA6", "W c #C1BBB4", "X c #BEB9B2", "Y c #AEAAA3", "Z c #97938D", "` c #363432", " . c #31302E", ".. c #827F7A", "+. c #A4A099", "@. c #95918C", "#. c #ADA8A2", "$. c #BBB6B0", "%. c #B9B4AD", "&. c #AAA59F", "*. c #AAA49F", "=. c #A5A09A", "-. c #928E89", ";. c #A4A09A", ">. c #A9A49E", ",. c #928D88", "'. c #A39F99", "). c #A8A39D", "!. c #B6B2AB", "~. c #B4AFA8", "{. c #B4AFA7", "]. c #B3AEA7", "^. c #B2ADA8", "/. c #B1ACA8", "(. c #EEE9E2", "_. c #7B7A79", ":. c #C4C0BC", " ", ". . . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", " # # # # # # # # # # # # # # # # # ", " # $ $ $ % & & & & & & * * * * * = - # ", " # ; > > > , , , , , ' ' ' ' ' ' ' ) # ", " # ! ~ ~ { ] ] ] ] ] ] ^ / / / / / ( # ", " # _ : < [ } | | 1 [ 2 | | 3 4 4 4 5 # ", " # 6 7 7 8 9 | | | 0 | | | a b b b c # ", " # > d d e f g | | | | | g h i i i j # ", " # k l l m n o p | | | p q r s s t u # ", "v v w x y y z z A | | | | | B C C C C D w v v ", "E E F G H H I J | | | K | | | L M M M N F E E ", "E E F O P P Q R | | S T S | | U V V V W F E E ", "E E F X Y Y Y Z ` ...+... .` @.#.#.#.$.F E E ", "E E F %.&.&.*.=.-.-.;.>.=.-.,.'.).).).!.F E E ", "E E F ~.~.~.~.{.].].].].^.^.^.^.^.^.^./.F E E ", "E E E F F F F F F F F F F F F F F F F F E E E ", "(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.", "_._._._._._._._._._._._._._._._._._._._._._._.", ":.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.", "E E E E E E E E E E E E E E E E E E E E E E E "}; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/closefcs.xpm0000644000175000017500000000013212106662425023441 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.575812454 30 ctime=1360750008.307811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/closefcs.xpm0000644000175000017500000000603112106662425021470 0ustar00mgmg00000000000000/* XPM */ static char * closefcs_xpm[] = { "23 23 118 2", " c #FBFAF7", ". c #CBCAC8", "+ c #7D7D7C", "@ c #D3D2DE", "# c #D6D5E1", "$ c #565561", "% c #D5D4E0", "& c #D4D4DF", "* c #D4D3DF", "= c #D3D2DD", "- c #D2D1DD", "; c #D0CFDB", "> c #BFBEC9", ", c #BEBDC8", "' c #BDBCC7", ") c #CECDD8", "! c #CBCAD6", "~ c #BAB9C4", "{ c #BAB8C3", "] c #B9B8C3", "^ c #B8B8C3", "/ c #C8C7D3", "( c #C6C5D1", "_ c #B6B5C0", ": c #B5B4C0", "< c #B5B4BF", "[ c #B1B0BB", "} c #FFFFFF", "| c #B0AFBA", "1 c #B1AFBB", "2 c #AFAEB9", "3 c #B4B3BE", "4 c #C4C2CE", "5 c #C1C0CC", "6 c #9998A1", "7 c #A6A5B0", "8 c #9796A0", "9 c #BEBDC9", "0 c #BCBBC7", "a c #ADACB7", "b c #ACABB6", "c c #95949E", "d c #313033", "e c #303033", "f c #94939C", "g c #ABAAB5", "h c #B9B8C4", "i c #B7B6C2", "j c #A8A7B2", "k c #A8A6B1", "l c #A3A2AD", "m c #7E7D85", "n c #2B2A2D", "o c #2A2A2D", "p c #7D7C85", "q c #A1A0AB", "r c #A6A4B0", "s c #B4B3BF", "t c #D2CFDA", "u c #524F5A", "v c #AEABB6", "w c #A09DA7", "x c #9F9CA6", "y c #97949E", "z c #95929C", "A c #9E9BA5", "B c #ACA9B4", "C c #CCC7CF", "D c #4C474F", "E c #A39EA6", "F c #969198", "G c #969097", "H c #928D93", "I c #111011", "J c #908B92", "K c #948F96", "L c #A09CA3", "M c #9E99A1", "N c #918C94", "O c #908C93", "P c #7D787F", "Q c #252325", "R c #59565B", "S c #7B787E", "T c #8F8B92", "U c #9C969E", "V c #99949C", "W c #8C888F", "X c #79767C", "Y c #2B2A2C", "Z c #272628", "` c #69666B", " . c #838086", ".. c #78747A", "+. c #8B868D", "@. c #96919A", "#. c #969397", "$. c #8A888B", "%. c #878588", "&. c #787678", "*. c #878487", "=. c #8B888B", "-. c #888688", ";. c #787778", ">. c #787779", ",. c #8B898C", "'. c #989699", "). c #9B989C", "!. c #9B999C", "~. c #9B999D", "{. c #9C9A9D", "]. c #9C9A9E", "^. c #9D9A9E", "/. c #9D9B9E", "(. c #CAC5CD", "_. c #767576", ":. c #C4C0BC", "<. c #F1ECE5", " ", ". . . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ # # # ", "# # $ % % % & * * * * * * @ @ @ @ @ = - $ # # ", "# # $ ; > > > , , , , , ' ' ' ' ' ' ' ) $ # # ", "# # $ ! ~ ~ { ] ] ] ] ] ] ^ ^ ^ ^ ^ ^ / $ # # ", "# # $ ( _ : < [ } } | < 1 } } 2 3 3 3 4 $ # # ", "# # $ 5 [ [ 1 6 } } } 7 } } } 8 2 2 2 9 $ # # ", "# # $ 0 a a b c d } } } } } e f g g g h $ # # ", "# # $ i j j k l m n } } } o p q 7 7 r s $ # # ", "t t u v w w x x y } } } } } z A A A A B u t t ", "C C D E F F G H } } } I } } } J K K K L D C C ", "C C D M N N O P } } Q R Q } } S T T T U D C C ", "C C D V W W W X Y Z ` .` Z Y ..+.+.+.@.D C C ", "C C D #.$.$.$.%.&.&.*.=.-.;.>.%.,.,.,.'.D C C ", "C C D ).).!.!.~.~.~.{.{.{.{.].].^./././.D C C ", "C C C D D D D D D D D D D D D D D D D D C C C ", "(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.", "_._._._._._._._._._._._._._._._._._._._._._._.", ":.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.", "<.<.<.<.<.<.<.<.<.<.<.<.<.<.<.<.<.<.<.<.<.<.<."}; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/windowlabelfcs.xpm0000644000175000017500000000013212106662425024643 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.575812454 30 ctime=1360750008.311811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/windowlabelfcs.xpm0000644000175000017500000000152212106662425022672 0ustar00mgmg00000000000000/* XPM */ static char * windowlabelfcs_xpm[] = { "23 23 11 1", " c #FBFAF7", ". c #CBCAC8", "+ c #7D7D7C", "@ c #D3D2DE", "# c #D6D5E1", "$ c #D2CFDA", "% c #CCC7CF", "& c #CAC5CD", "* c #767576", "= c #C4C0BC", "- c #F1ECE5", " ", ".......................", "+++++++++++++++++++++++", "@@@@@@@@@@@@@@@@@@@@@@@", "#######################", "#######################", "#######################", "#######################", "#######################", "#######################", "#######################", "#######################", "$$$$$$$$$$$$$$$$$$$$$$$", "%%%%%%%%%%%%%%%%%%%%%%%", "%%%%%%%%%%%%%%%%%%%%%%%", "%%%%%%%%%%%%%%%%%%%%%%%", "%%%%%%%%%%%%%%%%%%%%%%%", "%%%%%%%%%%%%%%%%%%%%%%%", "%%%%%%%%%%%%%%%%%%%%%%%", "&&&&&&&&&&&&&&&&&&&&&&&", "***********************", "=======================", "-----------------------"}; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/unshadepr.xpm0000644000175000017500000000013212106662425023631 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.575812454 30 ctime=1360750008.311811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/unshadepr.xpm0000644000175000017500000000571212106662425021665 0ustar00mgmg00000000000000/* XPM */ static char * unshadepr_xpm[] = { "23 23 113 2", " c #FBFAF7", ". c #CBCAC8", "+ c #7D7D7C", "@ c #D3D2DE", "# c #D6D5E1", "$ c #706F7B", "% c #9D9CA5", "& c #9D9DA5", "* c #9E9DA6", "= c #9E9EA6", "- c #9F9EA7", "; c #9F9FA7", "> c #9F9FA8", ", c #A09FA8", "' c #A2A2AA", ") c #95959C", "! c #95959D", "~ c #96959D", "{ c #96969D", "] c #96969E", "^ c #96969F", "/ c #A4A4AD", "( c #A7A6AF", "_ c #9999A1", ": c #9999A2", "< c #9A99A2", "[ c #9A9AA2", "} c #9B9AA2", "| c #9B9BA2", "1 c #AAA9B2", "2 c #ACACB4", "3 c #9E9DA5", "4 c #9F9EA5", "5 c #9F9EA6", "6 c #9F9FA6", "7 c #A09FA7", "8 c #9C9BA2", "9 c #A0A0A8", "0 c #AEAEB7", "a c #B1B0B9", "b c #919098", "c c #49484C", "d c #37373A", "e c #363639", "f c #373639", "g c #49494D", "h c #929199", "i c #A4A3AC", "j c #A4A4AC", "k c #B4B3BC", "l c #B6B5BE", "m c #A7A7AE", "n c #A8A7AF", "o c #A4A3AB", "p c #929198", "q c #8D8C93", "r c #8C8B92", "s c #8C8C92", "t c #A9A8B0", "u c #AAA9B1", "v c #A9A9B0", "w c #B9B8C1", "x c #BBBAC3", "y c #ACABB3", "z c #ACABB4", "A c #ADACB4", "B c #ADADB4", "C c #ADADB5", "D c #BEBDC6", "E c #D2CFDA", "F c #6C6974", "G c #BDBBC3", "H c #ADACB3", "I c #AEADB4", "J c #AFADB4", "K c #AFADB5", "L c #B0ADB5", "M c #C0BDC5", "N c #CCC7CF", "O c #666169", "P c #BEBAC0", "Q c #AEABB0", "R c #AEACB0", "S c #AEACB1", "T c #AFACB1", "U c #AFADB1", "V c #AFADB2", "W c #B0ADB1", "X c #B0ADB2", "Y c #C0BCC3", "Z c #C3BFC5", "` c #B3AFB5", " . c #B3AFB6", ".. c #B4B0B6", "+. c #B3B0B6", "@. c #B4B1B6", "#. c #B4B1B7", "$. c #B5B1B7", "%. c #B5B2B7", "&. c #C5C2C8", "*. c #C8C4CA", "=. c #B8B4B9", "-. c #B8B5B9", ";. c #B8B5BA", ">. c #B8B6BA", ",. c #B9B6BA", "'. c #B9B6BB", "). c #CAC7CC", "!. c #BBB7BE", "~. c #CAC5CD", "{. c #767576", "]. c #C4C0BC", "^. c #F1ECE5", " ", ". . . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ # # # ", "# # $ % % & * * * * = = - - - - ; ; > , $ # # ", "# # $ ' ) ! ~ ~ ~ ~ { { ] ] ] ] ] ^ ^ / $ # # ", "# # $ ( _ _ : < < < [ } } } } } } | | 1 $ # # ", "# # $ 2 3 4 5 } 5 5 6 6 6 7 7 8 7 , 9 0 $ # # ", "# # $ a ' ' ' b c d e e f f g h i j j k $ # # ", "# # $ l m m n o p q r s s q p o t u v w $ # # ", "# # $ x y z 2 A A A B B C C C C C C C D $ # # ", "E E F G H H I I I I I I J K K K K K L M F E E ", "N N O P Q R S S S T T T U V W X X X X Y O N N ", "N N O Z ` ` ...+.......@.#.#.$.$.$.%.&.O N N ", "N N O *.=.-.-.-.;.;.;.;.>.>.,.'.'.'.'.).O N N ", "N N O N !.!.!.!.!.!.!.!.!.!.!.!.!.!.!.N O N N ", "N N O N N N N N N N N N N N N N N N N N O N N ", "N N N O O O O O O O O O O O O O O O O O N N N ", "~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.", "{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.", "].].].].].].].].].].].].].].].].].].].].].].].", "^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^."}; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/unselected.xpm0000644000175000017500000000013212106662425023773 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.571812454 30 ctime=1360750008.311811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/unselected.xpm0000644000175000017500000000074512106662425022030 0ustar00mgmg00000000000000/* XPM */ static char *unselected[] = { /* columns rows colors chars-per-pixel */ "16 16 4 1", " c black", ". c #E7E7E7", "X c gray100", "o c None", /* pixels */ "oooooooooooooooo", "oooooooooooooooo", "oooooooooooooooo", "o.........oooooo", "o.ooooooo.oooooo", "o.ooooooo.oooooo", "o.ooooooo.oooooo", "o.ooooooo.oooooo", "o.ooooooo.oooooo", "o.ooooooo.oooooo", "o.ooooooo.oooooo", "o.ooooooo.oooooo", "o.ooooooo.oooooo", "o.........oooooo", "oooooooooooooooo", "oooooooooooooooo" }; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/tbarfcs.xpm0000644000175000017500000000013212106662425023264 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.571812454 30 ctime=1360750008.311811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/tbarfcs.xpm0000644000175000017500000000132212106662425021311 0ustar00mgmg00000000000000/* XPM */ static char * tbarfcs_xpm[] = { "23 23 3 1", " c #D6D5E1", ". c #D2CFDA", "+ c #CCC7CF", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", ".......................", "+++++++++++++++++++++++", "+++++++++++++++++++++++", "+++++++++++++++++++++++", "+++++++++++++++++++++++", "+++++++++++++++++++++++", "+++++++++++++++++++++++", "+++++++++++++++++++++++", "+++++++++++++++++++++++", "+++++++++++++++++++++++", "+++++++++++++++++++++++"}; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/stuckfcs.xpm0000644000175000017500000000013212106662425023465 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.567812454 30 ctime=1360750008.315811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/stuckfcs.xpm0000644000175000017500000000557112106662425021524 0ustar00mgmg00000000000000/* XPM */ static char * stuckfcs_xpm[] = { "23 23 108 2", " c #FBFAF7", ". c #CBCAC8", "+ c #7D7D7C", "@ c #D3D2DE", "# c #D6D5E1", "$ c #565561", "% c #D5D4E0", "& c #D4D4DF", "* c #D4D3DF", "= c #D3D2DD", "- c #D2D1DD", "; c #D0CFDB", "> c #BFBEC9", ", c #BEBDC8", "' c #BDBCC7", ") c #CECDD8", "! c #CBCAD6", "~ c #BAB9C4", "{ c #BAB8C3", "] c #B9B8C3", "^ c #B8B8C3", "/ c #C8C7D3", "( c #C6C5D1", "_ c #B6B5C0", ": c #B5B4C0", "< c #B5B4BF", "[ c #B5B3BF", "} c #B4B3BE", "| c #C4C2CE", "1 c #C1C0CC", "2 c #B1B0BB", "3 c #B1AFBB", "4 c #B0AFBA", "5 c #ACABB6", "6 c #FFFFFF", "7 c #AAA9B5", "8 c #AFAEB9", "9 c #BEBDC9", "0 c #BCBBC7", "a c #ADACB7", "b c #A8A7B2", "c c #A6A5B0", "d c #ABAAB5", "e c #B9B8C4", "f c #B7B6C2", "g c #A8A6B1", "h c #A7A6B1", "i c #919099", "j c #8F8E98", "k c #A6A4B0", "l c #B4B3BF", "m c #D2CFDA", "n c #524F5A", "o c #AEABB6", "p c #A09DA7", "q c #9F9CA6", "r c #85838B", "s c #85828A", "t c #9E9BA5", "u c #ACA9B4", "v c #CCC7CF", "w c #4C474F", "x c #A39EA6", "y c #969198", "z c #969097", "A c #817D83", "B c #3F3C3F", "C c #807B82", "D c #948F96", "E c #A09CA3", "F c #9E99A1", "G c #918C94", "H c #908C93", "I c #908B93", "J c #8D8890", "K c #706C73", "L c #3C3A3E", "M c #312F32", "N c #706C72", "O c #8B878E", "P c #8F8B92", "Q c #9C969E", "R c #99949C", "S c #8C888F", "T c #88848B", "U c #78757B", "V c #757177", "W c #78747B", "X c #87838A", "Y c #8B868D", "Z c #96919A", "` c #969397", " . c #8A888B", ".. c #8B888B", "+. c #8B898B", "@. c #8B898C", "#. c #989699", "$. c #9B989C", "%. c #9B999C", "&. c #9B999D", "*. c #9C9A9D", "=. c #9C9A9E", "-. c #9D9A9E", ";. c #9D9B9E", ">. c #CAC5CD", ",. c #767576", "'. c #C4C0BC", "). c #F1ECE5", " ", ". . . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ # # # ", "# # $ % % % & * * * * * * @ @ @ @ @ = - $ # # ", "# # $ ; > > > , , , , , ' ' ' ' ' ' ' ) $ # # ", "# # $ ! ~ ~ { ] ] ] ] ] ] ^ ^ ^ ^ ^ ^ / $ # # ", "# # $ ( _ : < < < < < < [ } } } } } } | $ # # ", "# # $ 1 2 2 3 4 4 5 6 6 6 7 8 8 8 8 8 9 $ # # ", "# # $ 0 a a 5 5 b 6 6 6 6 6 c d d d d e $ # # ", "# # $ f b b g h i 6 6 6 6 6 j c c c k l $ # # ", "m m n o p p q q r 6 6 6 6 6 s t t t t u n m m ", "v v w x y y z z A B 6 6 6 B C D D D D E w v v ", "v v w F G G H I J K L M L N O P P P P Q w v v ", "v v w R S S S S O T U V W X O Y Y Y Y Z w v v ", "v v w ` . . . . . .....+.+.@.@.@.@.@.#.w v v ", "v v w $.$.%.%.&.&.&.*.*.*.*.=.=.-.;.;.;.w v v ", "v v v w w w w w w w w w w w w w w w w w v v v ", ">.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.>.", ",.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.", "'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.", ").).).).).).).).).).).).).).).).).).).).).).)."}; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/stickpr.xpm0000644000175000017500000000013212106662425023317 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.567812454 30 ctime=1360750008.315811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/stickpr.xpm0000644000175000017500000000603012106662425021345 0ustar00mgmg00000000000000/* XPM */ static char * stickpr_xpm[] = { "23 23 118 2", " c #FBFAF7", ". c #CBCAC8", "+ c #7D7D7C", "@ c #D3D2DE", "# c #D6D5E1", "$ c #706F7B", "% c #9D9CA5", "& c #9D9DA5", "* c #9E9DA6", "= c #9E9EA6", "- c #9F9EA7", "; c #9F9FA7", "> c #9F9FA8", ", c #A09FA8", "' c #A2A2AA", ") c #95959C", "! c #95959D", "~ c #96959D", "{ c #96969D", "] c #96969E", "^ c #96969F", "/ c #A4A4AD", "( c #A7A6AF", "_ c #9999A1", ": c #9999A2", "< c #9A99A2", "[ c #9A9AA2", "} c #9B9AA2", "| c #9B9BA2", "1 c #AAA9B2", "2 c #ACACB4", "3 c #9E9DA5", "4 c #9F9EA5", "5 c #9F9EA6", "6 c #9F9FA6", "7 c #A09FA7", "8 c #A0A0A8", "9 c #AEAEB7", "0 c #B1B0B9", "a c #A3A2AB", "b c #A3A3AB", "c c #A3A3AC", "d c #A4A3AC", "e c #A4A4AC", "f c #B4B3BC", "g c #B6B5BE", "h c #A7A7AE", "i c #A8A7AF", "j c #A4A3AB", "k c #464649", "l c #39393B", "m c #A9A8B0", "n c #AAA9B1", "o c #A9A9B0", "p c #B9B8C1", "q c #BBBAC3", "r c #ACABB3", "s c #ACABB4", "t c #ADACB4", "u c #96959C", "v c #7E7E83", "w c #919196", "x c #ADADB5", "y c #BEBDC6", "z c #D2CFDA", "A c #6C6974", "B c #BDBBC3", "C c #ADACB3", "D c #AEADB4", "E c #929197", "F c #939197", "G c #AFADB5", "H c #939198", "I c #B0ADB5", "J c #C0BDC5", "K c #CCC7CF", "L c #666169", "M c #BEBAC0", "N c #AEABB0", "O c #AEACB0", "P c #AEACB1", "Q c #979599", "R c #49484A", "S c #AFACB1", "T c #AFADB1", "U c #49494B", "V c #989599", "W c #B0ADB2", "X c #C0BCC3", "Y c #C3BFC5", "Z c #B3AFB5", "` c #B3AFB6", " . c #B4B0B6", ".. c #AFACB2", "+. c #8C898E", "@. c #4C4A4C", "#. c #3D3B3D", "$. c #8C8A8F", "%. c #B5B1B7", "&. c #B5B2B7", "*. c #C5C2C8", "=. c #C8C4CA", "-. c #B8B4B9", ";. c #B8B5B9", ">. c #B8B5BA", ",. c #B4B1B6", "'. c #9F9DA1", "). c #9A989C", "!. c #9F9DA0", "~. c #B3B1B5", "{. c #B9B6BA", "]. c #B9B6BB", "^. c #CAC7CC", "/. c #BBB7BE", "(. c #CAC5CD", "_. c #767576", ":. c #C4C0BC", "<. c #F1ECE5", " ", ". . . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ # # # ", "# # $ % % & * * * * = = - - - - ; ; > , $ # # ", "# # $ ' ) ! ~ ~ ~ ~ { { ] ] ] ] ] ^ ^ / $ # # ", "# # $ ( _ _ : < < < [ } } } } } } | | 1 $ # # ", "# # $ 2 3 4 5 5 5 5 6 6 6 7 7 7 7 , 8 9 $ # # ", "# # $ 0 ' ' ' a a - b c d 7 d d d e e f $ # # ", "# # $ g h h i i j i k l k m j m m n o p $ # # ", "# # $ q r s 2 t u t v w v x ) x x x x y $ # # ", "z z A B C C D D E D E D F G H G G G I J A z z ", "K K L M N O P P Q R S S T U V W W W W X L K K ", "K K L Y Z Z ` ...+.@.#.@.$...%.%.%.&.*.L K K ", "K K L =.-.;.;.;.>.,.'.).!.~.{.].].].].^.L K K ", "K K L K /././././././././././././././.K L K K ", "K K L K K K K K K K K K K K K K K K K K L K K ", "K K K L L L L L L L L L L L L L L L L L K K K ", "(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.(.", "_._._._._._._._._._._._._._._._._._._._._._._.", ":.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.", "<.<.<.<.<.<.<.<.<.<.<.<.<.<.<.<.<.<.<.<.<.<.<."}; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/shadeufcs.xpm0000644000175000017500000000013212106662425023605 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.567812454 30 ctime=1360750008.315811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/shadeufcs.xpm0000644000175000017500000000545212106662425021642 0ustar00mgmg00000000000000/* XPM */ static char * shadeufcs_xpm[] = { "23 23 103 2", " c #FBFAF7", ". c #CBCAC8", "+ c #7D7D7C", "@ c #F7F7F4", "# c #7B7A77", "$ c #FAF9F6", "% c #F9F9F5", "& c #F9F8F5", "* c #F8F7F4", "= c #F8F7F3", "- c #F7F6F3", "; c #F5F4F1", "> c #E1E0DD", ", c #E0DFDC", "' c #DFDEDB", ") c #F3F2EE", "! c #F0EFEC", "~ c #DCDBD9", "{ c #DCDAD8", "] c #DBDAD8", "^ c #DAD9D8", "/ c #DAD9D7", "( c #EDECE9", "_ c #EBEAE7", ": c #D8D7D4", "< c #D7D6D4", "[ c #D7D6D3", "} c #D7D5D3", "| c #D6D5D2", "1 c #E9E7E4", "2 c #E6E5E2", "3 c #D3D2CF", "4 c #D3D1CF", "5 c #D2D1CE", "6 c #D1D0CE", "7 c #E3E2DF", "8 c #CECECB", "9 c #CECDCA", "0 c #CDCCC9", "a c #DEDDDA", "b c #DCDBD8", "c c #CAC9C6", "d c #CAC8C5", "e c #C9C8C5", "f c #C8C8C5", "g c #C8C7C4", "h c #C8C6C4", "i c #D9D8D5", "j c #F7F4F0", "k c #777470", "l c #D3D0CC", "m c #C2BFBB", "n c #C1BEBA", "o c #C0BEBA", "p c #C0BDB9", "q c #D1CECA", "r c #F1ECE5", "s c #716C65", "t c #C8C3BC", "u c #B8B3AD", "v c #B8B2AC", "w c #B7B2AC", "x c #B7B2AB", "y c #B6B1AC", "z c #B6B1AB", "A c #C5C1B9", "B c #C3BEB7", "C c #B3AEA8", "D c #B2AEA7", "E c #AEA9A3", "F c #FFFFFF", "G c #ACA8A1", "H c #B1ADA6", "I c #C1BBB4", "J c #BEB9B2", "K c #AEAAA3", "L c #9B9791", "M c #4D4C48", "N c #3A3937", "O c #3A3836", "P c #9A9690", "Q c #ADA8A2", "R c #BBB6B0", "S c #B9B4AD", "T c #AAA59F", "U c #AAA49F", "V c #A5A09A", "W c #928E89", "X c #8E8A85", "Y c #8D8984", "Z c #8C8984", "` c #918D87", " . c #A39F99", ".. c #A8A39D", "+. c #B6B2AB", "@. c #B4AFA8", "#. c #B4AFA7", "$. c #B3AEA7", "%. c #B2ADA8", "&. c #B1ACA8", "*. c #EEE9E2", "=. c #7B7A79", "-. c #C4C0BC", " ", ". . . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", " # # # # # # # # # # # # # # # # # ", " # $ $ $ % & & & & & & * * * * * = - # ", " # ; > > > , , , , , ' ' ' ' ' ' ' ) # ", " # ! ~ ~ { ] ] ] ] ] ] ^ / / / / / ( # ", " # _ : < [ [ [ [ [ [ } | | | | | | 1 # ", " # 2 3 3 4 5 5 5 5 5 5 6 6 6 6 6 6 7 # ", " # > 8 8 9 9 9 9 9 9 9 0 0 0 0 0 0 a # ", " # b c c d e e e e e e f g g g g h i # ", "j j k l m m n n n n n n o p p p p p p q k j j ", "r r s t u u v v w w w w w x y z z z z A s r r ", "r r s B C C D E F F F F F F F G H H H I s r r ", "r r s J K K K L M N O O O O M P Q Q Q R s r r ", "r r s S T T U V W X Y Y Y Z ` .......+.s r r ", "r r s @.@.@.@.#.$.$.$.$.%.%.%.%.%.%.%.&.s r r ", "r r r s s s s s s s s s s s s s s s s s r r r ", "*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.", "=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.", "-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.", "r r r r r r r r r r r r r r r r r r r r r r r "}; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/shadefcs.xpm0000644000175000017500000000013212106662425023420 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.563812454 30 ctime=1360750008.315811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/shadefcs.xpm0000644000175000017500000000547112106662425021456 0ustar00mgmg00000000000000/* XPM */ static char * shadefcs_xpm[] = { "23 23 104 2", " c #FBFAF7", ". c #CBCAC8", "+ c #7D7D7C", "@ c #D3D2DE", "# c #D6D5E1", "$ c #565561", "% c #D5D4E0", "& c #D4D4DF", "* c #D4D3DF", "= c #D3D2DD", "- c #D2D1DD", "; c #D0CFDB", "> c #BFBEC9", ", c #BEBDC8", "' c #BDBCC7", ") c #CECDD8", "! c #CBCAD6", "~ c #BAB9C4", "{ c #BAB8C3", "] c #B9B8C3", "^ c #B8B8C3", "/ c #C8C7D3", "( c #C6C5D1", "_ c #B6B5C0", ": c #B5B4C0", "< c #B5B4BF", "[ c #B5B3BF", "} c #B4B3BE", "| c #C4C2CE", "1 c #C1C0CC", "2 c #B1B0BB", "3 c #B1AFBB", "4 c #B0AFBA", "5 c #AFAEBA", "6 c #AFAEB9", "7 c #BEBDC9", "8 c #BCBBC7", "9 c #ADACB7", "0 c #ACABB6", "a c #ABAAB5", "b c #B9B8C4", "c c #B7B6C2", "d c #A8A7B2", "e c #A8A6B1", "f c #A7A6B1", "g c #A6A6B1", "h c #A6A5B0", "i c #A6A4B0", "j c #B4B3BF", "k c #D2CFDA", "l c #524F5A", "m c #AEABB6", "n c #A09DA7", "o c #9F9CA6", "p c #9E9CA6", "q c #9E9BA5", "r c #ACA9B4", "s c #CCC7CF", "t c #4C474F", "u c #A39EA6", "v c #969198", "w c #969097", "x c #959097", "y c #959096", "z c #948F97", "A c #948F96", "B c #A09CA3", "C c #9E99A1", "D c #918C94", "E c #908C93", "F c #8D8890", "G c #FFFFFF", "H c #8B878E", "I c #8F8B92", "J c #9C969E", "K c #99949C", "L c #8C888F", "M c #7D797F", "N c #3E3C3F", "O c #2F2E30", "P c #2E2D2F", "Q c #7C777E", "R c #8B868D", "S c #96919A", "T c #969397", "U c #8A888B", "V c #878588", "W c #787678", "X c #747275", "Y c #747274", "Z c #787679", "` c #8B898C", " . c #989699", ".. c #9B989C", "+. c #9B999C", "@. c #9B999D", "#. c #9C9A9D", "$. c #9C9A9E", "%. c #9D9A9E", "&. c #9D9B9E", "*. c #CAC5CD", "=. c #767576", "-. c #C4C0BC", ";. c #F1ECE5", " ", ". . . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ # # # ", "# # $ % % % & * * * * * * @ @ @ @ @ = - $ # # ", "# # $ ; > > > , , , , , ' ' ' ' ' ' ' ) $ # # ", "# # $ ! ~ ~ { ] ] ] ] ] ] ^ ^ ^ ^ ^ ^ / $ # # ", "# # $ ( _ : < < < < < < [ } } } } } } | $ # # ", "# # $ 1 2 2 3 4 4 4 4 4 4 5 6 6 6 6 6 7 $ # # ", "# # $ 8 9 9 0 0 0 0 0 0 0 a a a a a a b $ # # ", "# # $ c d d e f f f f f f g h h h h i j $ # # ", "k k l m n n o o o o o o p q q q q q q r l k k ", "s s t u v v w w x x x x x y z A A A A B t s s ", "s s t C D D E F G G G G G G G H I I I J t s s ", "s s t K L L L M N O P P P P N Q R R R S t s s ", "s s t T U U U V W X Y Y Y Y Z V ` ` ` .t s s ", "s s t ....+.+.@.@.@.#.#.#.#.$.$.%.&.&.&.t s s ", "s s s t t t t t t t t t t t t t t t t t s s s ", "*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.", "=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.", "-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.", ";.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;."}; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/minufcs.xpm0000644000175000017500000000013212106662425023304 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.563812454 30 ctime=1360750008.315811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/minufcs.xpm0000644000175000017500000000545012106662425021337 0ustar00mgmg00000000000000/* XPM */ static char * minufcs_xpm[] = { "23 23 103 2", " c #FBFAF7", ". c #CBCAC8", "+ c #7D7D7C", "@ c #F7F7F4", "# c #7B7A77", "$ c #FAF9F6", "% c #F9F9F5", "& c #F9F8F5", "* c #F8F7F4", "= c #F8F7F3", "- c #F7F6F3", "; c #F5F4F1", "> c #E1E0DD", ", c #E0DFDC", "' c #DFDEDB", ") c #F3F2EE", "! c #F0EFEC", "~ c #DCDBD9", "{ c #DCDAD8", "] c #DBDAD8", "^ c #DAD9D8", "/ c #DAD9D7", "( c #EDECE9", "_ c #EBEAE7", ": c #D8D7D4", "< c #D7D6D4", "[ c #D7D6D3", "} c #D7D5D3", "| c #D6D5D2", "1 c #E9E7E4", "2 c #E6E5E2", "3 c #D3D2CF", "4 c #D3D1CF", "5 c #D2D1CE", "6 c #D1D0CE", "7 c #E3E2DF", "8 c #CECECB", "9 c #CECDCA", "0 c #CDCCC9", "a c #DEDDDA", "b c #DCDBD8", "c c #CAC9C6", "d c #CAC8C5", "e c #C9C8C5", "f c #C8C8C5", "g c #C8C7C4", "h c #C8C6C4", "i c #D9D8D5", "j c #F7F4F0", "k c #777470", "l c #D3D0CC", "m c #C2BFBB", "n c #C1BEBA", "o c #C0BEBA", "p c #C0BDB9", "q c #D1CECA", "r c #F1ECE5", "s c #716C65", "t c #C8C3BC", "u c #B8B3AD", "v c #B8B2AC", "w c #B4AEA8", "x c #FFFFFF", "y c #B1ACA6", "z c #B6B1AB", "A c #C5C1B9", "B c #C3BEB7", "C c #B3AEA8", "D c #B2AEA7", "E c #9A9691", "F c #99958F", "G c #B1ADA6", "H c #C1BBB4", "I c #BEB9B2", "J c #AEAAA3", "K c #97938D", "L c #363432", "M c #1E1D1C", "N c #1D1D1B", "O c #353432", "P c #95918C", "Q c #ADA8A2", "R c #BBB6B0", "S c #B9B4AD", "T c #AAA59F", "U c #AAA49F", "V c #A5A09A", "W c #928E89", "X c #8E8A85", "Y c #8D8984", "Z c #8C8984", "` c #918D87", " . c #A39F99", ".. c #A8A39D", "+. c #B6B2AB", "@. c #B4AFA8", "#. c #B4AFA7", "$. c #B3AEA7", "%. c #B2ADA8", "&. c #B1ACA8", "*. c #EEE9E2", "=. c #7B7A79", "-. c #C4C0BC", " ", ". . . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", " # # # # # # # # # # # # # # # # # ", " # $ $ $ % & & & & & & * * * * * = - # ", " # ; > > > , , , , , ' ' ' ' ' ' ' ) # ", " # ! ~ ~ { ] ] ] ] ] ] ^ / / / / / ( # ", " # _ : < [ [ [ [ [ [ } | | | | | | 1 # ", " # 2 3 3 4 5 5 5 5 5 5 6 6 6 6 6 6 7 # ", " # > 8 8 9 9 9 9 9 9 9 0 0 0 0 0 0 a # ", " # b c c d e e e e e e f g g g g h i # ", "j j k l m m n n n n n n o p p p p p p q k j j ", "r r s t u u v w x x x x x x x y z z z A s r r ", "r r s B C C D E x x x x x x x F G G G H s r r ", "r r s I J J J K L M N N N N O P Q Q Q R s r r ", "r r s S T T U V W X Y Y Y Z ` .......+.s r r ", "r r s @.@.@.@.#.$.$.$.$.%.%.%.%.%.%.%.&.s r r ", "r r r s s s s s s s s s s s s s s s s s r r r ", "*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.", "=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.", "-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.", "r r r r r r r r r r r r r r r r r r r r r r r "}; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/minfcs.xpm0000644000175000017500000000013212106662425023117 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.559812454 30 ctime=1360750008.319811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/minfcs.xpm0000644000175000017500000000546712106662425021162 0ustar00mgmg00000000000000/* XPM */ static char * minfcs_xpm[] = { "23 23 104 2", " c #FBFAF7", ". c #CBCAC8", "+ c #7D7D7C", "@ c #D3D2DE", "# c #D6D5E1", "$ c #565561", "% c #D5D4E0", "& c #D4D4DF", "* c #D4D3DF", "= c #D3D2DD", "- c #D2D1DD", "; c #D0CFDB", "> c #BFBEC9", ", c #BEBDC8", "' c #BDBCC7", ") c #CECDD8", "! c #CBCAD6", "~ c #BAB9C4", "{ c #BAB8C3", "] c #B9B8C3", "^ c #B8B8C3", "/ c #C8C7D3", "( c #C6C5D1", "_ c #B6B5C0", ": c #B5B4C0", "< c #B5B4BF", "[ c #B5B3BF", "} c #B4B3BE", "| c #C4C2CE", "1 c #C1C0CC", "2 c #B1B0BB", "3 c #B1AFBB", "4 c #B0AFBA", "5 c #AFAEBA", "6 c #AFAEB9", "7 c #BEBDC9", "8 c #BCBBC7", "9 c #ADACB7", "0 c #ACABB6", "a c #ABAAB5", "b c #B9B8C4", "c c #B7B6C2", "d c #A8A7B2", "e c #A8A6B1", "f c #A7A6B1", "g c #A6A6B1", "h c #A6A5B0", "i c #A6A4B0", "j c #B4B3BF", "k c #D2CFDA", "l c #524F5A", "m c #AEABB6", "n c #A09DA7", "o c #9F9CA6", "p c #9E9CA6", "q c #9E9BA5", "r c #ACA9B4", "s c #CCC7CF", "t c #4C474F", "u c #A39EA6", "v c #969198", "w c #969097", "x c #928D93", "y c #FFFFFF", "z c #908B92", "A c #948F96", "B c #A09CA3", "C c #9E99A1", "D c #918C94", "E c #908C93", "F c #7D787F", "G c #7B787E", "H c #8F8B92", "I c #9C969E", "J c #99949C", "K c #8C888F", "L c #79767C", "M c #2B2A2C", "N c #181719", "O c #171718", "P c #2B292B", "Q c #78747A", "R c #8B868D", "S c #96919A", "T c #969397", "U c #8A888B", "V c #878588", "W c #787678", "X c #747275", "Y c #747274", "Z c #787679", "` c #8B898C", " . c #989699", ".. c #9B989C", "+. c #9B999C", "@. c #9B999D", "#. c #9C9A9D", "$. c #9C9A9E", "%. c #9D9A9E", "&. c #9D9B9E", "*. c #CAC5CD", "=. c #767576", "-. c #C4C0BC", ";. c #F1ECE5", " ", ". . . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ # # # ", "# # $ % % % & * * * * * * @ @ @ @ @ = - $ # # ", "# # $ ; > > > , , , , , ' ' ' ' ' ' ' ) $ # # ", "# # $ ! ~ ~ { ] ] ] ] ] ] ^ ^ ^ ^ ^ ^ / $ # # ", "# # $ ( _ : < < < < < < [ } } } } } } | $ # # ", "# # $ 1 2 2 3 4 4 4 4 4 4 5 6 6 6 6 6 7 $ # # ", "# # $ 8 9 9 0 0 0 0 0 0 0 a a a a a a b $ # # ", "# # $ c d d e f f f f f f g h h h h i j $ # # ", "k k l m n n o o o o o o p q q q q q q r l k k ", "s s t u v v w x y y y y y y y z A A A B t s s ", "s s t C D D E F y y y y y y y G H H H I t s s ", "s s t J K K K L M N O O O O P Q R R R S t s s ", "s s t T U U U V W X Y Y Y Y Z V ` ` ` .t s s ", "s s t ....+.+.@.@.@.#.#.#.#.$.$.%.&.&.&.t s s ", "s s s t t t t t t t t t t t t t t t t t s s s ", "*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.*.", "=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.=.", "-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.", ";.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;."}; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/menuiconpr.xpm0000644000175000017500000000013212106662425024017 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.559812454 30 ctime=1360750008.319811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/menuiconpr.xpm0000644000175000017500000000615312106662425022053 0ustar00mgmg00000000000000/* XPM */ static char * menuiconpr_xpm[] = { "23 23 123 2", " c #FBFAF7", ". c #CBCAC8", "+ c #7D7D7C", "@ c #D3D2DE", "# c #D6D5E1", "$ c #706F7B", "% c #9D9CA5", "& c #9D9DA5", "* c #9E9DA6", "= c #9E9EA6", "- c #9F9EA7", "; c #9F9FA7", "> c #9F9FA8", ", c #A09FA8", "' c #A2A2AA", ") c #95959C", "! c #95959D", "~ c #96959D", "{ c #96969D", "] c #96969E", "^ c #96969F", "/ c #A4A4AD", "( c #A7A6AF", "_ c #9999A1", ": c #9999A2", "< c #9A99A2", "[ c #9A9AA2", "} c #9B9AA2", "| c #9B9BA2", "1 c #AAA9B2", "2 c #ACACB4", "3 c #9E9DA5", "4 c #9F9EA5", "5 c #9F9EA6", "6 c #9F9FA6", "7 c #A09FA7", "8 c #A0A0A8", "9 c #AEAEB7", "0 c #B1B0B9", "a c #A3A2AB", "b c #A3A3AB", "c c #A3A3AC", "d c #A4A3AC", "e c #A4A4AC", "f c #B4B3BC", "g c #B6B5BE", "h c #A7A7AE", "i c #A8A7AF", "j c #96959C", "k c #4B4B4E", "l c #39383B", "m c #38383A", "n c #4C4B4F", "o c #A9A8B0", "p c #AAA9B1", "q c #A9A9B0", "r c #B9B8C1", "s c #BBBAC3", "t c #ACABB3", "u c #ACABB4", "v c #ADACB4", "w c #A4A3AB", "x c #ADADB4", "y c #ADADB5", "z c #A4A4AB", "A c #BEBDC6", "B c #D2CFDA", "C c #6C6974", "D c #BDBBC3", "E c #ADACB3", "F c #AEADB4", "G c #9B9AA0", "H c #4E4D50", "I c #3B3A3D", "J c #3A3A3C", "K c #4E4D51", "L c #9C9AA1", "M c #AFADB5", "N c #B0ADB5", "O c #C0BDC5", "P c #CCC7CF", "Q c #666169", "R c #BEBAC0", "S c #AEABB0", "T c #AEACB0", "U c #AEACB1", "V c #A5A3A8", "W c #AFACB1", "X c #AFADB1", "Y c #AFADB2", "Z c #A6A4A7", "` c #B0ADB2", " . c #C0BCC3", ".. c #C3BFC5", "+. c #B3AFB5", "@. c #B3AFB6", "#. c #B4B0B6", "$. c #9F9DA2", "%. c #504F51", "&. c #3D3B3D", "*. c #3C3B3D", "=. c #504F52", "-. c #A09EA3", ";. c #B5B1B7", ">. c #B5B2B7", ",. c #C5C2C8", "'. c #C8C4CA", "). c #B8B4B9", "!. c #B8B5B9", "~. c #B4B1B6", "{. c #9F9DA1", "]. c #9A989C", "^. c #9A979B", "/. c #9A989B", "(. c #9F9DA0", "_. c #B4B1B5", ":. c #B9B6BB", "<. c #CAC7CC", "[. c #BBB7BE", "}. c #CAC5CD", "|. c #767576", "1. c #C4C0BC", "2. c #F1ECE5", " ", ". . . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ # # # ", "# # $ % % & * * * * = = - - - - ; ; > , $ # # ", "# # $ ' ) ! ~ ~ ~ ~ { { ] ] ] ] ] ^ ^ / $ # # ", "# # $ ( _ _ : < < < [ } } } } } } | | 1 $ # # ", "# # $ 2 3 4 5 5 5 5 6 6 6 7 7 7 7 , 8 9 $ # # ", "# # $ 0 ' ' ' a - a b c d d 7 d d e e f $ # # ", "# # $ g h h i i j k l m m n { o o p q r $ # # ", "# # $ s t u 2 v w v x x y y z y y y y A $ # # ", "B B C D E E F F G H I J J K L M M M N O C B B ", "P P Q R S T U U V W W W X Y Z ` ` ` ` .Q P P ", "P P Q ..+.+.@.#.$.%.&.*.*.=.-.;.;.;.>.,.Q P P ", "P P Q '.).!.!.!.~.{.].^./.(._.:.:.:.:.<.Q P P ", "P P Q P [.[.[.[.[.[.[.[.[.[.[.[.[.[.[.P Q P P ", "P P Q P P P P P P P P P P P P P P P P P Q P P ", "P P P Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q P P P ", "}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.", "|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.", "1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.", "2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2."}; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/maxufcs.xpm0000644000175000017500000000013212106662425023306 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.559812454 30 ctime=1360750008.319811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/maxufcs.xpm0000644000175000017500000000573012106662425021342 0ustar00mgmg00000000000000/* XPM */ static char * maxufcs_xpm[] = { "23 23 114 2", " c #FBFAF7", ". c #CBCAC8", "+ c #7D7D7C", "@ c #F7F7F4", "# c #7B7A77", "$ c #FAF9F6", "% c #F9F9F5", "& c #F9F8F5", "* c #F8F7F4", "= c #F8F7F3", "- c #F7F6F3", "; c #F5F4F1", "> c #E1E0DD", ", c #E0DFDC", "' c #DFDEDB", ") c #F3F2EE", "! c #F0EFEC", "~ c #DCDBD9", "{ c #DCDAD8", "] c #DBDAD8", "^ c #DAD9D8", "/ c #DAD9D7", "( c #EDECE9", "_ c #EBEAE7", ": c #D8D7D4", "< c #D7D6D4", "[ c #D7D6D3", "} c #D2D1CE", "| c #FFFFFF", "1 c #D0CFCC", "2 c #D6D5D2", "3 c #E9E7E4", "4 c #E6E5E2", "5 c #D3D2CF", "6 c #D3D1CF", "7 c #B6B5B3", "8 c #B4B3B2", "9 c #D1D0CE", "0 c #E3E2DF", "a c #CECECB", "b c #CECDCA", "c c #ADACAA", "d c #1E1E1D", "e c #232322", "f c #ABAAA8", "g c #CDCCC9", "h c #DEDDDA", "i c #DCDBD8", "j c #CAC9C6", "k c #CAC8C5", "l c #A8A7A5", "m c #8C8C8A", "n c #A7A6A4", "o c #C8C7C4", "p c #C8C6C4", "q c #D9D8D5", "r c #F7F4F0", "s c #777470", "t c #D3D0CC", "u c #C2BFBB", "v c #C1BEBA", "w c #A19F9B", "x c #C0BEBA", "y c #A09E9B", "z c #C0BDB9", "A c #D1CECA", "B c #F1ECE5", "C c #716C65", "D c #C8C3BC", "E c #B8B3AD", "F c #B8B2AC", "G c #9A9590", "H c #999590", "I c #B7B2AC", "J c #99958F", "K c #98948F", "L c #B6B1AB", "M c #C5C1B9", "N c #C3BEB7", "O c #B3AEA8", "P c #B2AEA7", "Q c #95918B", "R c #94918B", "S c #B1ADA6", "T c #C1BBB4", "U c #BEB9B2", "V c #AEAAA3", "W c #97938D", "X c #3A3937", "Y c #363432", "Z c #3A3836", "` c #95918C", " . c #ADA8A2", ".. c #BBB6B0", "+. c #B9B4AD", "@. c #AAA59F", "#. c #AAA49F", "$. c #A5A09A", "%. c #928E89", "&. c #8E8A85", "*. c #8D8984", "=. c #8C8984", "-. c #918D87", ";. c #A39F99", ">. c #A8A39D", ",. c #B6B2AB", "'. c #B4AFA8", "). c #B4AFA7", "!. c #B3AEA7", "~. c #B2ADA8", "{. c #B1ACA8", "]. c #EEE9E2", "^. c #7B7A79", "/. c #C4C0BC", " ", ". . . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", " # # # # # # # # # # # # # # # # # ", " # $ $ $ % & & & & & & * * * * * = - # ", " # ; > > > , , , , , ' ' ' ' ' ' ' ) # ", " # ! ~ ~ { ] ] ] ] ] ] ^ / / / / / ( # ", " # _ : < [ } | | | | | | | 1 2 2 2 3 # ", " # 4 5 5 6 7 | | | | | | | 8 9 9 9 0 # ", " # > a a b c | d e e e d | f g g g h # ", " # i j j k l | m l l l m | n o o p q # ", "r r s t u u v w | w v v x y | y z z z A s r r ", "B B C D E E F G | H I I I J | K L L L M C B B ", "B B C N O O P Q | | | | | | | R S S S T C B B ", "B B C U V V V W X Y Z Z Z Y Z ` . . ...C B B ", "B B C +.@.@.#.$.%.&.*.*.*.=.-.;.>.>.>.,.C B B ", "B B C '.'.'.'.).!.!.!.!.~.~.~.~.~.~.~.{.C B B ", "B B B C C C C C C C C C C C C C C C C C B B B ", "].].].].].].].].].].].].].].].].].].].].].].].", "^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.", "/././././././././././././././././././././././.", "B B B B B B B B B B B B B B B B B B B B B B B "}; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/maxfcs.xpm0000644000175000017500000000013212106662425023121 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.555812454 30 ctime=1360750008.319811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/maxfcs.xpm0000644000175000017500000000570712106662425021161 0ustar00mgmg00000000000000/* XPM */ static char * maxfcs_xpm[] = { "23 23 113 2", " c #FBFAF7", ". c #CBCAC8", "+ c #7D7D7C", "@ c #D3D2DE", "# c #D6D5E1", "$ c #565561", "% c #D5D4E0", "& c #D4D4DF", "* c #D4D3DF", "= c #D3D2DD", "- c #D2D1DD", "; c #D0CFDB", "> c #BFBEC9", ", c #BEBDC8", "' c #BDBCC7", ") c #CECDD8", "! c #CBCAD6", "~ c #BAB9C4", "{ c #BAB8C3", "] c #B9B8C3", "^ c #B8B8C3", "/ c #C8C7D3", "( c #C6C5D1", "_ c #B6B5C0", ": c #B5B4C0", "< c #B5B4BF", "[ c #B1B0BB", "} c #FFFFFF", "| c #AFAEB9", "1 c #B4B3BE", "2 c #C4C2CE", "3 c #C1C0CC", "4 c #B1AFBB", "5 c #9998A1", "6 c #9796A0", "7 c #BEBDC9", "8 c #BCBBC7", "9 c #ADACB7", "0 c #ACABB6", "a c #909099", "b c #19191A", "c c #1D1D1F", "d c #8F8E97", "e c #ABAAB5", "f c #B9B8C4", "g c #B7B6C2", "h c #A8A7B2", "i c #A8A6B1", "j c #8B8B94", "k c #75747C", "l c #74747C", "m c #8B8A93", "n c #A6A5B0", "o c #A6A4B0", "p c #B4B3BF", "q c #D2CFDA", "r c #524F5A", "s c #AEABB6", "t c #A09DA7", "u c #9F9CA6", "v c #85828B", "w c #9E9CA6", "x c #84818A", "y c #9E9BA5", "z c #ACA9B4", "A c #CCC7CF", "B c #4C474F", "C c #A39EA6", "D c #969198", "E c #969097", "F c #7D787E", "G c #7C787E", "H c #959097", "I c #7C787D", "J c #7C777D", "K c #948F96", "L c #A09CA3", "M c #9E99A1", "N c #918C94", "O c #908C93", "P c #78747B", "Q c #77747A", "R c #8F8B92", "S c #9C969E", "T c #99949C", "U c #8C888F", "V c #79767C", "W c #2F2E30", "X c #2B2A2C", "Y c #2E2D2F", "Z c #78747A", "` c #8B868D", " . c #96919A", ".. c #969397", "+. c #8A888B", "@. c #878588", "#. c #787678", "$. c #747275", "%. c #747274", "&. c #787679", "*. c #8B898C", "=. c #989699", "-. c #9B989C", ";. c #9B999C", ">. c #9B999D", ",. c #9C9A9D", "'. c #9C9A9E", "). c #9D9A9E", "!. c #9D9B9E", "~. c #CAC5CD", "{. c #767576", "]. c #C4C0BC", "^. c #F1ECE5", " ", ". . . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ # # # ", "# # $ % % % & * * * * * * @ @ @ @ @ = - $ # # ", "# # $ ; > > > , , , , , ' ' ' ' ' ' ' ) $ # # ", "# # $ ! ~ ~ { ] ] ] ] ] ] ^ ^ ^ ^ ^ ^ / $ # # ", "# # $ ( _ : < [ } } } } } } } | 1 1 1 2 $ # # ", "# # $ 3 [ [ 4 5 } } } } } } } 6 | | | 7 $ # # ", "# # $ 8 9 9 0 a } b c c c b } d e e e f $ # # ", "# # $ g h h i j } k j j j l } m n n o p $ # # ", "q q r s t t u v } v u u w x } x y y y z r q q ", "A A B C D D E F } G H H H I } J K K K L B A A ", "A A B M N N O P } } } } } } } Q R R R S B A A ", "A A B T U U U V W X Y Y Y X Y Z ` ` ` .B A A ", "A A B ..+.+.+.@.#.$.%.%.%.%.&.@.*.*.*.=.B A A ", "A A B -.-.;.;.>.>.>.,.,.,.,.'.'.).!.!.!.B A A ", "A A A B B B B B B B B B B B B B B B B B A A A ", "~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.", "{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.", "].].].].].].].].].].].].].].].].].].].].].].].", "^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^."}; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/frame.xpm0000644000175000017500000000013212106662425022732 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.555812454 30 ctime=1360750008.323811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/frame.xpm0000644000175000017500000000120512106662425020757 0ustar00mgmg00000000000000/* XPM */ static char *frame[] = { /* columns rows colors chars-per-pixel */ "21 21 1 1", " c #23155F", /* pixels */ " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " " }; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/closepr.xpm0000644000175000017500000000013212106662425023307 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.555812454 30 ctime=1360750008.323811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/closepr.xpm0000644000175000017500000000621012106662425021335 0ustar00mgmg00000000000000/* XPM */ static char * closepr_xpm[] = { "23 23 125 2", " c #FBFAF7", ". c #CBCAC8", "+ c #7D7D7C", "@ c #D3D2DE", "# c #D6D5E1", "$ c #706F7B", "% c #9D9CA5", "& c #9D9DA5", "* c #9E9DA6", "= c #9E9EA6", "- c #9F9EA7", "; c #9F9FA7", "> c #9F9FA8", ", c #A09FA8", "' c #A2A2AA", ") c #95959C", "! c #95959D", "~ c #96959D", "{ c #96969D", "] c #96969E", "^ c #96969F", "/ c #A4A4AD", "( c #A7A6AF", "_ c #9999A1", ": c #9999A2", "< c #9A99A2", "[ c #9A9AA2", "} c #9B9AA2", "| c #9B9BA2", "1 c #AAA9B2", "2 c #ACACB4", "3 c #9E9DA5", "4 c #9F9EA5", "5 c #9F9EA6", "6 c #9B9BA1", "7 c #9F9FA6", "8 c #A09FA7", "9 c #9C9BA2", "0 c #A0A0A8", "a c #AEAEB7", "b c #B1B0B9", "c c #8D8C94", "d c #A3A2AB", "e c #A3A3AB", "f c #9A9AA3", "g c #A4A3AC", "h c #8D8D94", "i c #A4A4AC", "j c #B4B3BC", "k c #B6B5BE", "l c #A7A7AE", "m c #A8A7AF", "n c #929198", "o c #2F2F31", "p c #A8A8AF", "q c #A9A8B0", "r c #302F32", "s c #AAA9B1", "t c #A9A9B0", "u c #B9B8C1", "v c #BBBAC3", "w c #ACABB3", "x c #ACABB4", "y c #828288", "z c #2C2C2E", "A c #ADADB4", "B c #ADADB5", "C c #A8A8B0", "D c #BEBDC6", "E c #D2CFDA", "F c #6C6974", "G c #BDBBC3", "H c #ADACB3", "I c #AEADB4", "J c #A5A4AB", "K c #AFADB4", "L c #AFADB5", "M c #B0ADB5", "N c #C0BDC5", "O c #CCC7CF", "P c #666169", "Q c #BEBAC0", "R c #AEABB0", "S c #AEACB0", "T c #AEACB1", "U c #AAA8AD", "V c #AFACB1", "W c #141414", "X c #AFADB1", "Y c #AFADB2", "Z c #B0ADB1", "` c #ABA8AD", " . c #B0ADB2", ".. c #C0BCC3", "+. c #C3BFC5", "@. c #B3AFB5", "#. c #B3AFB6", "$. c #9C999E", "%. c #B3B0B6", "&. c #B4B0B6", "*. c #2E2D2E", "=. c #6F6C70", "-. c #B4B1B7", ";. c #B5B1B7", ">. c #B5B2B7", ",. c #C5C2C8", "'. c #C8C4CA", "). c #B8B4B9", "!. c #B8B5B9", "~. c #9F9DA0", "{. c #39383A", "]. c #343335", "^. c #8B888C", "/. c #8B898C", "(. c #A09DA1", "_. c #B9B6BB", ":. c #CAC7CC", "<. c #BBB7BE", "[. c #B7B3BA", "}. c #A29FA5", "|. c #B6B2B9", "1. c #CAC5CD", "2. c #767576", "3. c #C4C0BC", "4. c #F1ECE5", " ", ". . . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ # # # ", "# # $ % % & * * * * = = - - - - ; ; > , $ # # ", "# # $ ' ) ! ~ ~ ~ ~ { { ] ] ] ] ] ^ ^ / $ # # ", "# # $ ( _ _ : < < < [ } } } } } } | | 1 $ # # ", "# # $ 2 3 4 5 } 5 5 6 7 | 8 8 9 8 , 0 a $ # # ", "# # $ b ' ' ' c d d e f g g g h g i i j $ # # ", "# # $ k l l m n o m m p p q r n q s t u $ # # ", "# # $ v w x 2 q y z A A B z y C B B B D $ # # ", "E E F G H H I I J I I I K L J L L L M N F E E ", "O O P Q R S T U T V V W X Y Z ` . . ...P O O ", "O O P +.@.@.#.$.%.&.*.=.*.-.-.$.;.;.>.,.P O O ", "O O P '.).!.!.~.{.].^.R /.].{.(._._._.:.P O O ", "O O P O <.<.<.[.}.}.|.<.[.}.}.|.<.<.<.O P O O ", "O O P O O O O O O O O O O O O O O O O O P O O ", "O O O P P P P P P P P P P P P P P P P P O O O ", "1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.", "2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.", "3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.", "4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4."}; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/bullet.xpm0000644000175000017500000000013212106662425023127 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.551812454 30 ctime=1360750008.323811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/bullet.xpm0000644000175000017500000000074112106662425021160 0ustar00mgmg00000000000000/* XPM */ static char *bullet[] = { /* columns rows colors chars-per-pixel */ "16 16 4 1", " c black", ". c #A0A0A0", "X c #E7E7E7", "o c None", /* pixels */ "oooooooooooooooo", "oooooooooooooooo", "oooooooooooooooo", "oooooooooooooooo", "oooooooooooooooo", "oooooooooooooooo", "ooooooooXooooooo", "ooooooooXXoooooo", "oooooXXXXXXooooo", "oooooXXXXXXXoooo", "oooooXXXXXX.oooo", "ooooo...XX.ooooo", "ooooooooX.oooooo", "oooooooo.ooooooo", "oooooooooooooooo", "oooooooooooooooo" }; fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603023155 xustar000000000000000030 mtime=1360749955.375811956 30 atime=1360750003.383811648 30 ctime=1360750008.323811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/Makefile.in0000644000175000017500000003202612106662603021207 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(srcdir)/../../Makefile.include $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in subdir = data/styles/bloe/pixmaps ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(styledir)" DATA = $(style_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ styledir = $(pkgdatadir)/styles/bloe/pixmaps style_DATA = bullet.xpm closepr.xpm frame.xpm maxfcs.xpm \ maxufcs.xpm menuiconpr.xpm minfcs.xpm minufcs.xpm \ shadefcs.xpm shadeufcs.xpm stickpr.xpm stuckfcs.xpm \ tbarfcs.xpm unselected.xpm unshadepr.xpm \ windowlabelfcs.xpm closefcs.xpm closeufcs.xpm \ maxpr.xpm menuiconfcs.xpm menuiconufcs.xpm \ minpr.xpm selected.xpm shadepr.xpm stickfcs.xpm \ stickufcs.xpm stuckufcs.xpm tbarufcs.xpm \ unshadefcs.xpm unshadeufcs.xpm windowlabelufcs.xpm MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = $(style_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/../../Makefile.include $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/styles/bloe/pixmaps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/styles/bloe/pixmaps/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(srcdir)/../../Makefile.include: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-styleDATA: $(style_DATA) @$(NORMAL_INSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(styledir)'"; \ $(MKDIR_P) "$(DESTDIR)$(styledir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(styledir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(styledir)" || exit $$?; \ done uninstall-styleDATA: @$(NORMAL_UNINSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(styledir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(styledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-styleDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-styleDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-strip uninstall-am .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distclean-local distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip install-styleDATA \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-hook \ uninstall-styleDATA uninstall-hook: rmdir $(DESTDIR)$(styledir) distclean-local: rm -f *\~ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/data/styles/bloe/pixmaps/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425023146 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749853.231812609 30 ctime=1360750008.327811617 fluxbox-1.3.5/data/styles/bloe/pixmaps/Makefile.am0000644000175000017500000000102312106662425021171 0ustar00mgmg00000000000000styledir = $(pkgdatadir)/styles/bloe/pixmaps style_DATA = bullet.xpm closepr.xpm frame.xpm maxfcs.xpm \ maxufcs.xpm menuiconpr.xpm minfcs.xpm minufcs.xpm \ shadefcs.xpm shadeufcs.xpm stickpr.xpm stuckfcs.xpm \ tbarfcs.xpm unselected.xpm unshadepr.xpm \ windowlabelfcs.xpm closefcs.xpm closeufcs.xpm \ maxpr.xpm menuiconfcs.xpm menuiconufcs.xpm \ minpr.xpm selected.xpm shadepr.xpm stickfcs.xpm \ stickufcs.xpm stuckufcs.xpm tbarufcs.xpm \ unshadefcs.xpm unshadeufcs.xpm windowlabelufcs.xpm include ../../Makefile.include fluxbox-1.3.5/data/styles/bloe/PaxHeaders.25974/theme.cfg0000644000175000017500000000013212106662425021214 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.515812454 30 ctime=1360750008.327811617 fluxbox-1.3.5/data/styles/bloe/theme.cfg0000644000175000017500000001573312106662425017254 0ustar00mgmg00000000000000#This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License. #(http://creativecommons.org/licenses/by-sa/3.0/de/deed.en) ############################################################################### # # name: bloe # made: tenner # date: 03-10-2007 # http://www.tenr.de # ############################################################## BACKGROUND ###### background: flat background.color: #B2B2BF background.colorTo: #B2B2BF ############################################################## FONTS ########## menu.frame.font: sans-9:bold menu.title.font: sans-10:bold toolbar.clock.font: sans-9:bold toolbar.workspace.font: tahoma-10:bold toolbar.iconbar.focused.font: sans-8:bold toolbar.iconbar.unfocused.font: sans-8 window.font: sans-8 ############################################################## MENU ########### menu.bevelWidth: 1 #menu.itemHeight: 35 #menu.titleHeight: 21 menu.borderColor: #000000 menu.borderWidth: 1 menu.bullet.position: Right menu.bullet: triangle menu.frame.underlineColor: #6f6f6f menu.submenu.pixmap: menu.hilite.submenu.pixmap: menu.selected.pixmap: menu.hilite.selected.pixmap: menu.unselected.pixmap: menu.hilite.unselected.pixmap: menu.title: flat menu.title.pixmap: tbarfcs.xpm menu.title.justify: center menu.title.color: #CCC7CF menu.title.colorTo: #CCC7CF menu.title.textColor: #312466 menu.frame: Raised Bevel1 Gradient Vertical menu.frame.pixmap: menu.frame.justify: left menu.frame.color: #f6f3ef menu.frame.colorTo: #f1ece5 menu.frame.textColor: #6f6f6f menu.frame.disableColor: #6f5cb7 menu.hilite: flat menu.hilite.pixmap: menu.hilite.color: #d3d2e0 menu.hilite.colorTo: menu.hilite.textColor: #000000 ############################################################## TOOLBAR ######## toolbar.bevelWidth: 1 toolbar.borderWidth: 1 toolbar.borderColor: #000000 toolbar.height: 23 toolbar.justify: center toolbar: flat toolbar.pixmap: tbarufcs.xpm toolbar.color: #FBFAF7 toolbar.colorTo: #FBFAF7 toolbar.clock: flat toolbar.clock.pixmap: tbarufcs.xpm toolbar.clock.justify: center toolbar.clock.color: #FBFAF7 toolbar.clock.colorTo: #FBFAF7 toolbar.clock.textColor: #6f6f6f toolbar.workspace: flat toolbar.workspace.pixmap: tbarufcs.xpm toolbar.workspace.justify: Center toolbar.workspace.color: #FBFAF7 toolbar.workspace.colorTo: #FBFAF7 toolbar.workspace.textColor: #6f6f6f toolbar.button: flat toolbar.button.pixmap: tbarufcs.xpm toolbar.button.color: #FBFAF7 toolbar.button.colorTo: #FBFAF7 toolbar.button.picColor: #6f6f6f toolbar.button.pressed: flat toolbar.button.pressed.pixmap: tbarufcs.xpm toolbar.button.pressed.color: #CCC7CF toolbar.button.pressed.colorTo: #CCC7CF toolbar.button.pressed.picColor: #000000 toolbar.iconbar.borderWidth: 1 toolbar.iconbar.borderColor: #1a1a1a toolbar.iconbar.empty: flat toolbar.iconbar.empty.pixmap: tbarufcs.xpm toolbar.iconbar.empty.color: #FBFAF7 toolbar.iconbar.empty.colorTo: #FBFAF7 toolbar.iconbar.focused.borderWidth: 1 toolbar.iconbar.focused.borderColor: #aeaeae toolbar.iconbar.focused: flat toolbar.iconbar.focused.pixmap: tbarfcs.xpm toolbar.iconbar.focused.color: #CCC7CF toolbar.iconbar.focused.colorTo: #CCC7CF toolbar.iconbar.focused.textColor: #312466 toolbar.iconbar.focused.justify: center toolbar.iconbar.unfocused.borderWidth: 1 toolbar.iconbar.unfocused.borderColor: #aeaeae toolbar.iconbar.unfocused: flat toolbar.iconbar.unfocused.pixmap: tbarufcs.xpm toolbar.iconbar.unfocused.color: #FBFAF7 toolbar.iconbar.unfocused.colorTo: #FBFAF7 toolbar.iconbar.unfocused.textColor: #6f6f6f toolbar.iconbar.unfocused.justify: center ############################################################## WINDOW ######### window.bevelWidth: 0 window.shade: false window.borderWidth: 1 window.borderColor: #000000 window.justify: Center window.title.height: 23 window.title.focus: flat window.title.focus.pixmap: tbarufcs.xpm window.title.focus.color: #CCC7CF window.title.focus.colorTo: #CCC7CF window.title.unfocus: flat window.title.unfocus.pixmap: tbarufcs.xpm window.title.unfocus.color: #FBFAF7 window.title.unfocus.colorTo: #FBFAF7 window.label.focus: flat window.label.focus.pixmap: windowlabelfcs.xpm window.label.focus.color: #CCC7CF window.label.focus.colorTo: #CCC7CF window.label.focus.textColor: #312466 window.label.unfocus: flat window.label.unfocus.pixmap: windowlabelufcs.xpm window.label.unfocus.color: #FBFAF7 window.label.unfocus.colorTo: #FBFAF7 window.label.unfocus.textColor: #6f6f6f window.button.focus: flat window.button.focus.color: #CCC7CF window.button.focus.colorTo: #CCC7CF window.button.focus.picColor: #000000 window.button.unfocus: flat window.button.unfocus.Color: #FBFAF7 window.button.unfocus.ColorTo: #FBFAF7 window.button.unfocus.picColor: #000000 window.button.pressed: flat window.button.pressed.color: #CCC7CF window.button.pressed.colorTo: #CCC7CF window.button.pressed.picColor: #000000 window.shade.pixmap: shadefcs.xpm window.shade.unfocus.pixmap: shadeufcs.xpm window.shade.pressed.pixmap: shadepr.xpm window.unshade.pixmap: unshadefcs.xpm window.unshade.unfocus.pixmap: unshadeufcs.xpm window.unshade.pressed.pixmap: unshadepr.xpm window.menuicon.pixmap: menuiconfcs.xpm window.menuicon.unfocus.pixmap: menuiconufcs.xpm window.menuicon.pressed.pixmap: menuiconpr.xpm window.close.pixmap: closefcs.xpm window.close.unfocus.pixmap: closeufcs.xpm window.close.pressed.pixmap: closepr.xpm window.iconify.pixmap: minfcs.xpm window.iconify.unfocus.pixmap: minufcs.xpm window.iconify.pressed.pixmap: minpr.xpm window.maximize.pixmap: maxfcs.xpm window.maximize.unfocus.pixmap: maxufcs.xpm window.maximize.pressed.pixmap: maxpr.xpm window.stick.pixmap: stickfcs.xpm window.stick.unfocus.pixmap: stickufcs.xpm window.stick.pressed.pixmap: stickpr.xpm window.stuck.pixmap: stuckfcs.xpm window.stuck.unfocus.pixmap: stuckufcs.xpm window.stuck.pressed.pixmap: stuckufcs.xpm window.handle.focus: flat window.handle.focus.pixmap: tbarufcs.xpm window.handle.focus.color: #CCC7CF window.handle.focus.colorTo: #CCC7CF window.handle.unfocus: flat window.handle.unfocus.pixmap: tbarufcs.xpm window.handle.unfocus.color: #FBFAF7 window.handle.unfocus.colorTo: #FBFAF7 window.handleWidth: 3 window.grip.focus: flat window.grip.focus.pixmap: tbarfcs.xpm window.grip.focus.color: # CCC7CF window.grip.focus.colorTo: #CCC7CF window.grip.unfocus: flat window.grip.unfocus.pixmap: tbarufcs.xpm window.grip.unfocus.color: #FBFAF7 window.grip.unfocus.colorTo: #FBFAF7 ############################################################################### # EOF fluxbox-1.3.5/data/styles/bloe/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603021474 xustar000000000000000030 mtime=1360749955.351811956 30 atime=1360750003.363811648 30 ctime=1360750008.327811617 fluxbox-1.3.5/data/styles/bloe/Makefile.in0000644000175000017500000004712312106662603017532 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(srcdir)/../Makefile.include $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in subdir = data/styles/bloe ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(styledir)" DATA = $(style_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = pixmaps styledir = $(pkgdatadir)/styles/bloe style_DATA = theme.cfg MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = $(style_DATA) all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/../Makefile.include $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/styles/bloe/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/styles/bloe/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(srcdir)/../Makefile.include: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-styleDATA: $(style_DATA) @$(NORMAL_INSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(styledir)'"; \ $(MKDIR_P) "$(DESTDIR)$(styledir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(styledir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(styledir)" || exit $$?; \ done uninstall-styleDATA: @$(NORMAL_UNINSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(styledir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(styledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-styleDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-styleDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive uninstall-am .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic ctags \ ctags-recursive distclean distclean-generic distclean-local \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip install-styleDATA installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-hook uninstall-styleDATA uninstall-hook: rmdir $(DESTDIR)$(styledir) distclean-local: rm -f *\~ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/data/styles/bloe/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425021465 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749853.207812609 30 ctime=1360750008.327811617 fluxbox-1.3.5/data/styles/bloe/Makefile.am0000644000175000017500000000015212106662425017512 0ustar00mgmg00000000000000SUBDIRS=pixmaps styledir = $(pkgdatadir)/styles/bloe style_DATA = theme.cfg include ../Makefile.include fluxbox-1.3.5/data/styles/PaxHeaders.25974/green_tea0000644000175000017500000000013212106662670020366 xustar000000000000000030 mtime=1360750008.167811618 30 atime=1360750008.331811617 30 ctime=1360750008.327811617 fluxbox-1.3.5/data/styles/green_tea/0000755000175000017500000000000012106662670016472 5ustar00mgmg00000000000000fluxbox-1.3.5/data/styles/green_tea/PaxHeaders.25974/theme.cfg0000644000175000017500000000013212106662425022224 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.479812454 30 ctime=1360750008.331811617 fluxbox-1.3.5/data/styles/green_tea/theme.cfg0000644000175000017500000001110112106662425020245 0ustar00mgmg00000000000000#This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License. #(http://creativecommons.org/licenses/by-sa/3.0/de/deed.en) ############################################################################### # # name: green_tea # made: tenner # date: 19-09-2006 # http://www.tenr.de # ############################################################## FONTS ########## menu.frame.font: sans-9:bold menu.title.font: sans-10:bold toolbar.clock.font: sans-9:bold toolbar.workspace.font: tahoma-10:bold toolbar.iconbar.focused.font: sans-8:bold toolbar.iconbar.unfocused.font: sans-8 window.font: sans-8 ############################################################## MENU ########### menu.bevelWidth: 1 #menu.itemHeight: 35 #menu.titleHeight: 21 menu.borderColor: #4F6F55 menu.borderWidth: 1 menu.bullet: triangle menu.bullet.position: Right menu.title: flat menu.title.justify: center menu.title.color: #3F5F42 menu.title.colorTo: #3F5F42 menu.title.textColor: #e7e7e7 menu.frame: flat menu.frame.justify: left menu.frame.color: #212121 menu.frame.colorTo: #212121 menu.frame.textColor: #e7e7e7 menu.frame.disableColor: #4F6F55 menu.hilite: flat menu.hilite.color: #4C4C4C menu.hilite.colorTo: #4C4C4C menu.hilite.textColor: #ffffff ############################################################## TOOLBAR ######## toolbar.bevelWidth: 1 toolbar.borderWidth: 1 toolbar.borderColor: #4F6F55 toolbar.height: 16 toolbar.justify: center toolbar: flat toolbar.pixmap: toolbar.color: #212121 toolbar.colorTo: #212121 toolbar.clock: flat toolbar.clock.justify: center toolbar.clock.color: #4C4C4C toolbar.clock.colorTo: #4C4C4C toolbar.clock.textColor: #e7e7e7 toolbar.workspace: flat toolbar.workspace.justify: Center toolbar.workspace.color: #4C4C4C toolbar.workspace.colorTo: #4C4C4C toolbar.workspace.textColor: #e7e7e7 toolbar.button: flat toolbar.button.color: #4C4C4C toolbar.button.colorTo: #4C4C4C toolbar.button.picColor: #C5C5C5 toolbar.button.pressed: flat toolbar.button.pressed.color: #4C4C4C toolbar.button.pressed.colorTo: #4C4C4C toolbar.button.pressed.picColor: #000000 toolbar.iconbar.empty: flat toolbar.iconbar.empty.color: #212121 toolbar.iconbar.empty.colorTo: #212121 toolbar.iconbar.focused: flat toolbar.iconbar.focused.color: #3F5F42 toolbar.iconbar.focused.colorTo: #3F5F42 toolbar.iconbar.focused.textColor: #e7e7e7 toolbar.iconbar.focused.justify: center toolbar.iconbar.unfocused: flat toolbar.iconbar.unfocused.color: #212121 toolbar.iconbar.unfocused.colorTo: #212121 toolbar.iconbar.unfocused.textColor: #6f6f6f toolbar.iconbar.unfocused.justify: center ############################################################## WINDOW ######### window.bevelWidth: 1 window.shade: false window.borderWidth: 1 window.borderColor: #4F6F55 window.justify: Center window.title.height: 16 window.title.focus: flat window.title.focus.color: #212121 window.title.focus.colorTo: #212121 window.title.unfocus: flat window.title.unfocus.color: #212121 window.title.unfocus.colorTo: #212121 window.label.focus: flat window.label.focus.color: #3F5F42 window.label.focus.colorTo: #3F5F42 window.label.focus.textColor: #e7e7e7 window.label.unfocus: flat window.label.unfocus.color: #212121 window.label.unfocus.colorTo: #212121 window.label.unfocus.textColor: #6f6f6f window.button.focus: flat window.button.focus.color: #4C4C4C window.button.focus.colorTo: #4C4C4C window.button.focus.picColor: #C5C5C5 window.button.unfocus: flat window.button.unfocus.Color: #4C4C4C window.button.unfocus.ColorTo: #4C4C4C window.button.unfocus.picColor: #797979 window.button.pressed: flat window.button.pressed.color: #4C4C4C window.button.pressed.colorTo: #4C4C4C window.button.pressed.picColor: #C5C5C5 window.handle.focus: flat window.handle.focus.color: #212121 window.handle.focus.colorTo: #212121 window.handle.unfocus: flat window.handle.unfocus.color: #212121 window.handle.unfocus.colorTo: #212121 window.handleWidth: 3 window.grip.focus: flat window.grip.focus.color: #3F5F42 window.grip.focus.colorTo: #3F5F42 window.grip.unfocus: flat window.grip.unfocus.color: #212121 window.grip.unfocus.colorTo: #212121 ############################################################################### # EOF fluxbox-1.3.5/data/styles/green_tea/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603022504 xustar000000000000000030 mtime=1360749955.487811955 30 atime=1360750003.275811649 30 ctime=1360750008.331811617 fluxbox-1.3.5/data/styles/green_tea/Makefile.in0000644000175000017500000003112212106662603020532 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(srcdir)/../Makefile.include $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in subdir = data/styles/green_tea ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(styledir)" DATA = $(style_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ styledir = $(pkgdatadir)/styles/green_tea style_DATA = theme.cfg MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = $(style_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/../Makefile.include $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/styles/green_tea/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/styles/green_tea/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(srcdir)/../Makefile.include: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-styleDATA: $(style_DATA) @$(NORMAL_INSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(styledir)'"; \ $(MKDIR_P) "$(DESTDIR)$(styledir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(styledir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(styledir)" || exit $$?; \ done uninstall-styleDATA: @$(NORMAL_UNINSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(styledir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(styledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-styleDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-styleDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-strip uninstall-am .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distclean-local distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip install-styleDATA \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-hook \ uninstall-styleDATA uninstall-hook: rmdir $(DESTDIR)$(styledir) distclean-local: rm -f *\~ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/data/styles/green_tea/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425022475 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749853.343812609 30 ctime=1360750008.331811617 fluxbox-1.3.5/data/styles/green_tea/Makefile.am0000644000175000017500000000013712106662425020525 0ustar00mgmg00000000000000styledir = $(pkgdatadir)/styles/green_tea style_DATA = theme.cfg include ../Makefile.include fluxbox-1.3.5/data/styles/PaxHeaders.25974/ostrich0000644000175000017500000000013212106662670020110 xustar000000000000000030 mtime=1360750008.131811618 30 atime=1360750008.331811617 30 ctime=1360750008.331811617 fluxbox-1.3.5/data/styles/ostrich/0000755000175000017500000000000012106662670016214 5ustar00mgmg00000000000000fluxbox-1.3.5/data/styles/ostrich/PaxHeaders.25974/theme.cfg0000644000175000017500000000013212106662425021746 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.447812454 30 ctime=1360750008.335811617 fluxbox-1.3.5/data/styles/ostrich/theme.cfg0000644000175000017500000001231712106662425020001 0ustar00mgmg00000000000000############################################################ # This work is licensed under the Creative Commons # # Attribution-ShareAlike 3.0 License. # # To view a copy of this license, visit # # http://creativecommons.org/licenses/by-sa/3.0/ # # or send a letter to Creative Commons, # # 559 Nathan Abbott Way, Stanford, California 94305, USA. # ############################################################ ############################################################################### # # name: ostrich # made: tenner # date: 12-12-2006 # http://www.tenr.de # ############################################################## BACKGROUND ##### background: flat gradient elliptic background.color: #404040 background.colorTo: #535353 ############################################################## FONTS ########## menu.frame.font: sans-9:bold menu.title.font: sans-10:bold toolbar.clock.font: sans-9:bold toolbar.workspace.font: tahoma-10:bold toolbar.iconbar.focused.font: sans-8:bold toolbar.iconbar.unfocused.font: sans-8 window.font: sans-8 ############################################################## MENU ########### menu.bevelWidth: 1 #menu.itemHeight: 35 #menu.titleHeight: 21 menu.borderColor: #895D52 menu.borderWidth: 1 menu.bullet: triangle menu.bullet.position: Right menu.title: flat menu.title.justify: center menu.title.color: #895D52 menu.title.colorTo: #895D52 menu.title.textColor: #e7e7e7 menu.frame: flat menu.frame.justify: left menu.frame.color: #171717 menu.frame.colorTo: #171717 menu.frame.textColor: #ffffff menu.frame.disableColor: #895D52 menu.hilite: flat menu.hilite.color: #895D52 menu.hilite.colorTo: #895D52 menu.hilite.textColor: #e7e7e7 ############################################################## TOOLBAR ######## toolbar.bevelWidth: 1 toolbar.borderWidth: 1 toolbar.borderColor: #895D52 toolbar.height: 15 toolbar.justify: center toolbar: flat toolbar.pixmap: toolbar.color: #171717 toolbar.colorTo: #171717 toolbar.clock: flat toolbar.clock.justify: center toolbar.clock.color: #583b35 toolbar.clock.colorTo: #583b35 toolbar.clock.textColor: #e7e7e7 toolbar.workspace: flat toolbar.workspace.justify: Center toolbar.workspace.color: #583b35 toolbar.workspace.colorTo: #583b35 toolbar.workspace.textColor: #e7e7e7 toolbar.button: flat toolbar.button.color: #5c5c5c toolbar.button.colorTo: #5c5c5c toolbar.button.picColor: #e7e7e7 toolbar.button.pressed: sunken toolbar.button.pressed.color: #5c5c5c toolbar.button.pressed.colorTo: #5c5c5c toolbar.button.pressed.picColor: #000000 toolbar.iconbar.empty: flat toolbar.iconbar.empty.color: #583b35 toolbar.iconbar.empty.colorTo: #583b35 !toolbar.iconbar.focused.borderWidth: 1 !toolbar.iconbar.focused.borderColor: #aeaeae toolbar.iconbar.focused: flat toolbar.iconbar.focused.color: #895D52 toolbar.iconbar.focused.colorTo: #895D52 toolbar.iconbar.focused.textColor: #e7e7e7 toolbar.iconbar.focused.justify: center !toolbar.iconbar.unfocused.borderWidth: 1 !toolbar.iconbar.unfocused.borderColor: #aeaeae toolbar.iconbar.unfocused: flat toolbar.iconbar.unfocused.color: #583b35 toolbar.iconbar.unfocused.colorTo: #583b35 toolbar.iconbar.unfocused.textColor: #6f6f6f toolbar.iconbar.unfocused.justify: center ############################################################## WINDOW ######### window.bevelWidth: 1 window.shade: false window.borderWidth: 1 window.borderColor: #895D52 window.justify: Center window.title.height: 15 window.title.focus: flat window.title.focus.color: #171717 window.title.focus.colorTo: #171717 window.title.unfocus: flat window.title.unfocus.color: #171717 window.title.unfocus.colorTo: #171717 window.label.focus: flat window.label.focus.color: #895D52 window.label.focus.colorTo: #895D52 window.label.focus.textColor: #e7e7e7 window.label.unfocus: flat window.label.unfocus.color: #583b35 window.label.unfocus.colorTo: #583b35 window.label.unfocus.textColor: #6f6f6f window.button.focus: flat window.button.focus.color: #5c5c5c window.button.focus.colorTo: #5c5c5c window.button.focus.picColor: #f3f3f3 window.button.unfocus: flat window.button.unfocus.Color: #414141 window.button.unfocus.ColorTo: #414141 window.button.unfocus.picColor: #838383 window.button.pressed: sunken window.button.pressed.color: #5c5c5c window.button.pressed.colorTo: #5c5c5c window.button.pressed.picColor: #000000 window.handle.focus: flat window.handle.focus.color: # window.handle.focus.colorTo: # window.handle.unfocus: flat window.handle.unfocus.color: # window.handle.unfocus.colorTo: # window.handleWidth: 0 window.grip.focus: flat window.grip.focus.color: # window.grip.focus.colorTo: # window.grip.unfocus: flat window.grip.unfocus.color: # window.grip.unfocus.colorTo: # ############################################################################### # EOF fluxbox-1.3.5/data/styles/ostrich/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603022226 xustar000000000000000030 mtime=1360749955.511811955 30 atime=1360750003.255811649 30 ctime=1360750008.335811617 fluxbox-1.3.5/data/styles/ostrich/Makefile.in0000644000175000017500000003111212106662603020253 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(srcdir)/../Makefile.include $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in subdir = data/styles/ostrich ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(styledir)" DATA = $(style_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ styledir = $(pkgdatadir)/styles/ostrich style_DATA = theme.cfg MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = $(style_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/../Makefile.include $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/styles/ostrich/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/styles/ostrich/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(srcdir)/../Makefile.include: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-styleDATA: $(style_DATA) @$(NORMAL_INSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(styledir)'"; \ $(MKDIR_P) "$(DESTDIR)$(styledir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(styledir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(styledir)" || exit $$?; \ done uninstall-styleDATA: @$(NORMAL_UNINSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(styledir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(styledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-styleDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-styleDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-strip uninstall-am .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distclean-local distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip install-styleDATA \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-hook \ uninstall-styleDATA uninstall-hook: rmdir $(DESTDIR)$(styledir) distclean-local: rm -f *\~ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/data/styles/ostrich/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425022217 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749853.367812608 30 ctime=1360750008.335811617 fluxbox-1.3.5/data/styles/ostrich/Makefile.am0000644000175000017500000000013512106662425020245 0ustar00mgmg00000000000000styledir = $(pkgdatadir)/styles/ostrich style_DATA = theme.cfg include ../Makefile.include fluxbox-1.3.5/data/styles/PaxHeaders.25974/carp0000644000175000017500000000013212106662670017362 xustar000000000000000030 mtime=1360750008.099811618 30 atime=1360750008.335811617 30 ctime=1360750008.335811617 fluxbox-1.3.5/data/styles/carp/0000755000175000017500000000000012106662670015466 5ustar00mgmg00000000000000fluxbox-1.3.5/data/styles/carp/PaxHeaders.25974/theme.cfg0000644000175000017500000000013212106662425021220 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.411812455 30 ctime=1360750008.339811617 fluxbox-1.3.5/data/styles/carp/theme.cfg0000644000175000017500000001275112106662425017255 0ustar00mgmg00000000000000#This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License. #(http://creativecommons.org/licenses/by-sa/3.0/de/deed.en) ############################################################################### # # name: carp # made: tenner # date: 20-09-2006 # http://www.tenr.de # ############################################################## FONTS ########## menu.frame.font: sans-7:bold menu.title.font: sans-7:bold toolbar.clock.font: sans-7:bold toolbar.workspace.font: tahoma-7:bold toolbar.iconbar.focused.font: sans-7:bold toolbar.iconbar.unfocused.font: sans-7 window.font: sans-7 ############################################################## MENU ########### menu.bevelWidth: 1 #menu.itemHeight: 35 #menu.titleHeight: 21 menu.borderColor: #000000 menu.borderWidth: 1 menu.bullet: triangle menu.bullet.position: Right menu.title: flat menu.title.justify: center menu.title.color: #313131 menu.title.colorTo: #313131 menu.title.textColor: #ffffff menu.frame: flat menu.frame.justify: left menu.frame.color: #ffffff menu.frame.colorTo: #ffffff menu.frame.textColor: #323232 menu.frame.disableColor: #C1C1C1 menu.hilite: flat menu.hilite.color: #868686 menu.hilite.colorTo: #868686 menu.hilite.textColor: #ffffff ############################################################## TOOLBAR ######## toolbar.bevelWidth: 0 toolbar.borderWidth: 2 toolbar.borderColor: #000000 toolbar.height: 15 toolbar.justify: center toolbar: flat toolbar.pixmap: toolbar.color: #313131 toolbar.colorTo: #313131 toolbar.clock: flat toolbar.clock.justify: center toolbar.clock.color: #313131 toolbar.clock.colorTo: #313131 toolbar.clock.textColor: #F1F1F1 toolbar.workspace: flat toolbar.workspace.justify: Center toolbar.workspace.color: #313131 toolbar.workspace.colorTo: #313131 toolbar.workspace.textColor: #F1F1F1 toolbar.button: flat toolbar.button.color: #313131 toolbar.button.colorTo: #313131 toolbar.button.picColor: #F1F1F1 toolbar.button.pressed: sunken toolbar.button.pressed.color: #313131 toolbar.button.pressed.colorTo: #313131 toolbar.button.pressed.picColor: #000000 toolbar.iconbar.empty: flat toolbar.iconbar.empty.color: #313131 toolbar.iconbar.empty.colorTo: #313131 toolbar.iconbar.focused.borderWidth: 0 toolbar.iconbar.focused.borderColor: #000000 toolbar.iconbar.focused: sunken bevel2 gradient vertical toolbar.iconbar.focused.color: #ffffff toolbar.iconbar.focused.colorTo: #ffffff toolbar.iconbar.focused.textColor: #313131 toolbar.iconbar.focused.justify: center toolbar.iconbar.unfocused.borderWidth: 0 toolbar.iconbar.unfocused.borderColor: #000000 toolbar.iconbar.unfocused: flat toolbar.iconbar.unfocused.color: #313131 toolbar.iconbar.unfocused.colorTo: #313131 toolbar.iconbar.unfocused.textColor: #F1F1F1 toolbar.iconbar.unfocused.justify: center ############################################################## WINDOW ######### window.bevelWidth: 0 window.shade: false window.borderWidth: 2 window.borderColor: #000000 window.justify: Center window.title.height: 15 window.title.focus: flat window.title.focus.color: #313131 window.title.focus.colorTo: #313131 window.title.unfocus: flat window.title.unfocus.color: #313131 window.title.unfocus.colorTo: #313131 window.label.focus: sunken bevel2 gradient vertical window.label.focus.color: #ffffff window.label.focus.colorTo: #ffffff window.label.focus.textColor: #313131 window.label.unfocus: flat window.label.unfocus.color: #313131 window.label.unfocus.colorTo: #313131 window.label.unfocus.textColor: #F1F1F1 window.button.focus: flat window.button.focus.color: #313131 window.button.focus.colorTo: #313131 window.button.focus.picColor: #f1f1f1 window.button.unfocus: flat window.button.unfocus.Color: #313131 window.button.unfocus.ColorTo: #3A3A35 window.button.unfocus.picColor: #313131 window.button.pressed: flat window.button.pressed.color: #313131 window.button.pressed.colorTo: #313131 window.button.pressed.picColor: #313131 window.shade.pixmap: shade.xpm window.shade.unfocus.pixmap: blank.xpm window.shade.pressed.pixmap: blank.xpm window.unshade.pixmap: unshade.xpm window.unshade.unfocus.pixmap: blank.xpm window.unshade.pressed.pixmap: blank.xpm window.close.pixmap: close.xpm window.close.unfocus.pixmap: blank.xpm window.close.pressed.pixmap: blank.xpm window.iconify.pixmap: min.xpm window.iconify.unfocus.pixmap: blank.xpm window.iconify.pressed.pixmap: blank.xpm window.maximize.pixmap: max.xpm window.maximize.unfocus.pixmap: blank.xpm window.maximize.pressed.pixmap: blank.xpm window.menuicon.pixmap: blank.xpm window.menuicon.unfocus.pixmap: blank.xpm window.menuicon.pressed.pixmap: blank.xpm window.handle.focus: flat window.handle.focus.color: #313131 window.handle.focus.colorTo: #313131 window.handle.unfocus: flat window.handle.unfocus.color: #313131 window.handle.unfocus.colorTo: #313131 window.handleWidth: 2 window.grip.focus: flat window.grip.focus.color: #ffffff window.grip.focus.colorTo: #ffffff window.grip.unfocus: flat window.grip.unfocus.color: #313131 window.grip.unfocus.colorTo: #313131 ############################################################################### # EOF fluxbox-1.3.5/data/styles/carp/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603021500 xustar000000000000000030 mtime=1360749955.467811955 30 atime=1360750003.347811649 30 ctime=1360750008.339811617 fluxbox-1.3.5/data/styles/carp/Makefile.in0000644000175000017500000003107612106662603017536 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(srcdir)/../Makefile.include $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in subdir = data/styles/carp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(styledir)" DATA = $(style_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ styledir = $(pkgdatadir)/styles/carp style_DATA = theme.cfg MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = $(style_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/../Makefile.include $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/styles/carp/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/styles/carp/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(srcdir)/../Makefile.include: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-styleDATA: $(style_DATA) @$(NORMAL_INSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(styledir)'"; \ $(MKDIR_P) "$(DESTDIR)$(styledir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(styledir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(styledir)" || exit $$?; \ done uninstall-styleDATA: @$(NORMAL_UNINSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(styledir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(styledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-styleDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-styleDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-strip uninstall-am .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distclean-local distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip install-styleDATA \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-hook \ uninstall-styleDATA uninstall-hook: rmdir $(DESTDIR)$(styledir) distclean-local: rm -f *\~ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/data/styles/carp/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425021471 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749853.323812609 30 ctime=1360750008.339811617 fluxbox-1.3.5/data/styles/carp/Makefile.am0000644000175000017500000000013212106662425017514 0ustar00mgmg00000000000000styledir = $(pkgdatadir)/styles/carp style_DATA = theme.cfg include ../Makefile.include fluxbox-1.3.5/data/styles/PaxHeaders.25974/arch0000644000175000017500000000013212106662667017360 xustar000000000000000030 mtime=1360750007.983811619 30 atime=1360750008.339811617 30 ctime=1360750008.339811617 fluxbox-1.3.5/data/styles/arch/0000755000175000017500000000000012106662667015464 5ustar00mgmg00000000000000fluxbox-1.3.5/data/styles/arch/PaxHeaders.25974/pixmaps0000644000175000017500000000013212106662670021033 xustar000000000000000030 mtime=1360750008.063811618 30 atime=1360750008.343811617 30 ctime=1360750008.343811617 fluxbox-1.3.5/data/styles/arch/pixmaps/0000755000175000017500000000000012106662670017137 5ustar00mgmg00000000000000fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/unshadepr.xpm0000644000175000017500000000013212106662425023625 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.375812455 30 ctime=1360750008.343811617 fluxbox-1.3.5/data/styles/arch/pixmaps/unshadepr.xpm0000644000175000017500000000132112106662425021651 0ustar00mgmg00000000000000/* XPM */ static char * unshadepr_xpm[] = { "19 19 15 1", " c #A7A7A7", ". c #BCBCBC", "+ c #D3D3D3", "@ c #DFDFDF", "# c #E2E2E2", "$ c #E3E3E3", "% c #E5E5E5", "& c #E7E7E7", "* c #E8E8E8", "= c #E9E9E9", "- c #3A3A3A", "; c #E6E6E6", "> c #E4E4E4", ", c #E1E1E1", "' c #DCDCDC", " ", "...................", "+++++++++++++++++++", "@@@@@@@@@@@@@@@@@@@", "###################", "$$$$$$$$$$$$$$$$$$$", "%%%%%%%%%%%%%%%%%%%", "&&&&&&&&&&&&&&&&&&&", "*******************", "===================", "*******************", "********-*-********", "*********-*********", ";;;;;;;;;;;;;;;;;;;", ">>>>>>>>>>>>>>>>>>>", ",,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,", "'''''''''''''''''''"}; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/tbarufcs.xpm0000644000175000017500000000013212106662425023445 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.375812455 30 ctime=1360750008.343811617 fluxbox-1.3.5/data/styles/arch/pixmaps/tbarufcs.xpm0000644000175000017500000000137512106662425021502 0ustar00mgmg00000000000000/* XPM */ static char * tbarufcs_xpm[] = { "19 19 18 1", " c #A7A7A7", ". c #A8A8A8", "+ c #BCBCBC", "@ c #BDBDBD", "# c #D3D3D3", "$ c #D2D2D2", "% c #DFDFDF", "& c #E0E0E0", "* c #E2E2E2", "= c #E3E3E3", "- c #E4E4E4", "; c #E5E5E5", "> c #E7E7E7", ", c #E6E6E6", "' c #E8E8E8", ") c #E9E9E9", "! c #E1E1E1", "~ c #DCDCDC", " . . . . . . . . . ", "+@+@+@+@+@+@+@+@+@+", "#$$##$#$#$$##$#$#$$", "%%&%&%%%%%&%&%%%%%&", "*==*=****==*=****==", "=-========-==--==-=", ";;----;---;;;;;;;;=", ">>,,,,;,,,>>>>,>>>;", "''>>>>>>>>''''''''>", "))''''''''))))))))'", "''''''''''''''''''>", "''>>>>>>>>''''''''>", "''>>>>>>>>''''''''>", ",,,,,,,,,,,,,,,,,,,", "-------------------", "!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!", "~~~~~~~~~~~~~~~~~~~"}; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/stuckfcs.xpm0000644000175000017500000000013212106662425023461 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.371812455 30 ctime=1360750008.343811617 fluxbox-1.3.5/data/styles/arch/pixmaps/stuckfcs.xpm0000644000175000017500000000246712106662425021521 0ustar00mgmg00000000000000/* XPM */ static char * stuckfcs_xpm[] = { "19 19 56 1", " c #A7A7A7", ". c #BCBCBC", "+ c #D3D3D3", "@ c #DFDFDF", "# c #E2E2E2", "$ c #DDDDDD", "% c #E3E3E3", "& c #787878", "* c #B3B3B3", "= c #E1E1E1", "- c #E9EAEA", "; c #EAEAEB", "> c #EBEBEB", ", c #EAEAEA", "' c #E8E8E8", ") c #E6E6E6", "! c #E5E5E5", "~ c #E0E0E0", "{ c #747474", "] c #B7B7B7", "^ c #EFEFEF", "/ c #EEEEEE", "( c #ECECEC", "_ c #E7E7E7", ": c #787777", "< c #F3F3F3", "[ c #F2F2F2", "} c #F0F0F0", "| c #EDEDED", "1 c #E9E9E9", "2 c #7A7B7A", "3 c #C1C1C1", "4 c #F1F0F0", "5 c #F6F6F6", "6 c #EFEEEE", "7 c #7E7E7E", "8 c #C5C5C5", "9 c #F5F5F4", "0 c #F1F1F1", "a c #C4C4C4", "b c #7F7F7F", "c c #C2C2C2", "d c #F1F2F2", "e c #F5F5F5", "f c #7C7C7C", "g c #BEBEBE", "h c #E8E9E8", "i c #F4F4F4", "j c #797879", "k c #B9B9B9", "l c #E4E4E4", "m c #757575", "n c #B4B4B4", "o c #EBEBEA", "p c #797979", "q c #DCDCDC", " ", "...................", "+++++++++++++++++++", "@@@@@@@@@@@@@@@@@@@", "######$############", "%%%%%&*=-;>,')%%%%%", "!!!!~*{])^^/(,)!!!!", "_____#]:.(<[}|1____", "'''''1_.2345<^>''''", "11111,6|378[9}(1111", "''''',^<0abc/0(''''", "'''''-/de[cfgh>''''", "''''''(^[i/gjkl''''", ")))))!1(/}}1kmn))))", "lllll%)'o((>lnpllll", "===================", "===================", "===================", "qqqqqqqqqqqqqqqqqqq"}; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/stickfcs.xpm0000644000175000017500000000013212106662425023445 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.371812455 30 ctime=1360750008.343811617 fluxbox-1.3.5/data/styles/arch/pixmaps/stickfcs.xpm0000644000175000017500000000237312106662425021501 0ustar00mgmg00000000000000/* XPM */ static char * stickfcs_xpm[] = { "19 19 52 1", " c #A7A7A7", ". c #BCBCBC", "+ c #D3D3D3", "@ c #DFDFDF", "# c #E2E2E2", "$ c #E3E3E3", "% c #E5E5E5", "& c #E7E7E7", "* c #E9EAEA", "= c #EAEAEB", "- c #EBEBEB", "; c #EAEAEA", "> c #E8E8E8", ", c #E6E6E6", "' c #EDEDED", ") c #EFEFEF", "! c #EEEEEE", "~ c #ECECEC", "{ c #EFEEEE", "] c #F1F1F1", "^ c #F3F3F3", "/ c #F2F2F2", "( c #F0F0F0", "_ c #E9E9E9", ": c #F4F5F4", "< c #F7F7F7", "[ c #F8F7F7", "} c #F6F6F6", "| c #FBFBFB", "1 c #FCFCFC", "2 c #F9F9F9", "3 c #F5F5F4", "4 c #9D9D9D", "5 c #A0A0A0", "6 c #A3A3A3", "7 c #A6A6A6", "8 c #A8A8A8", "9 c #AAAAAA", "0 c #A4A4A4", "a c #A2A2A2", "b c #9E9E9E", "c c #F1F2F2", "d c #F5F5F5", "e c #F8F8F8", "f c #EFF0EF", "g c #F4F4F4", "h c #F1F0F1", "i c #E4E4E4", "j c #EBEBEA", "k c #EAEAE9", "l c #E1E1E1", "m c #DCDCDC", " ", "...................", "+++++++++++++++++++", "@@@@@@@@@@@@@@@@@@@", "###################", "$$$$$#%&*=-;>,$$$$$", "%%%%%%>-'))!~;,%%%%", "&&&&&&-{]^^/('_&&&&", ">>>>>_']:<[}^)->>>>", "_____;{^<|123(~____", ">>>>>456789 0ab>>>>", ">>>>>*!cde2<^f->>>>", ">>>>>>~)/gg^h';>>>>", ",,,,,%_~!(()';&,,,,", "iiiii$,>j~~-k&iiiii", "lllllllllllllllllll", "lllllllllllllllllll", "lllllllllllllllllll", "mmmmmmmmmmmmmmmmmmm"}; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/shadefcs.xpm0000644000175000017500000000013212106662425023414 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.371812455 30 ctime=1360750008.347811617 fluxbox-1.3.5/data/styles/arch/pixmaps/shadefcs.xpm0000644000175000017500000000132012106662425021437 0ustar00mgmg00000000000000/* XPM */ static char * shadefcs_xpm[] = { "19 19 15 1", " c #A7A7A7", ". c #BCBCBC", "+ c #D3D3D3", "@ c #DFDFDF", "# c #E2E2E2", "$ c #E3E3E3", "% c #E5E5E5", "& c #E7E7E7", "* c #E8E8E8", "= c #E9E9E9", "- c #3A3A3A", "; c #E6E6E6", "> c #E4E4E4", ", c #E1E1E1", "' c #DCDCDC", " ", "...................", "+++++++++++++++++++", "@@@@@@@@@@@@@@@@@@@", "###################", "$$$$$$$$$$$$$$$$$$$", "%%%%%%%%%%%%%%%%%%%", "&&&&&&&&&&&&&&&&&&&", "*******************", "===================", "*******************", "*********-*********", "********-*-********", ";;;;;;;;;;;;;;;;;;;", ">>>>>>>>>>>>>>>>>>>", ",,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,", "'''''''''''''''''''"}; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/minpr.xpm0000644000175000017500000000013212106662425022761 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.367812455 30 ctime=1360750008.347811617 fluxbox-1.3.5/data/styles/arch/pixmaps/minpr.xpm0000644000175000017500000000334712106662425021017 0ustar00mgmg00000000000000/* XPM */ static char * minpr_xpm[] = { "19 19 85 1", " c #A7A7A7", ". c #BCBCBC", "+ c #D3D3D3", "@ c #D0D0D0", "# c #CDCDCD", "$ c #CACACA", "% c #CFCFCF", "& c #D2D2D2", "* c #DFDFDF", "= c #DADADA", "- c #C9C9C9", "; c #C2C2C2", "> c #C0C0C0", ", c #C3C3C3", "' c #CCCCCC", ") c #D6D6D6", "! c #D9D9D9", "~ c #E2E2E2", "{ c #BBBBBB", "] c #979797", "^ c #8F8F8F", "/ c #919191", "( c #9C9C9C", "_ c #A9A9A9", ": c #BABABA", "< c #CBCBCB", "[ c #DCDCDC", "} c #E3E3E3", "| c #DBDBDB", "1 c #C8C8C8", "2 c #ADADAD", "3 c #8A8A8A", "4 c #959595", "5 c #EAEAEA", "6 c #F9F9F9", "7 c #ECECEC", "8 c #B3B3B3", "9 c #AFAFAF", "0 c #C6C6C6", "a c #DDDDDD", "b c #E5E5E5", "c c #ACACAC", "d c #818181", "e c #FAFAFA", "f c #F5F5F5", "g c #F6F6F6", "h c #F7F7F7", "i c #D5D5D5", "j c #B2B2B2", "k c #E0E0E0", "l c #B6B6B6", "m c #868686", "n c #D1D1D1", "o c #F8F8F8", "p c #E7E7E7", "q c #BEBEBE", "r c #D3D3D6", "s c #939393", "t c #C5C5C5", "u c #AEAEAE", "v c #FBFBFB", "w c #D8D8D8", "x c #FCFCFC", "y c #FDFDFD", "z c #F1F1F1", "A c #E1E1E1", "B c #ABABAB", "C c #F4F4F4", "D c #F2F2F2", "E c #000000", "F c #E8E8E8", "G c #C4C4C4", "H c #F3F3F3", "I c #EEEEEE", "J c #F0F0F0", "K c #EFEFEF", "L c #E9E9E9", "M c #B1B1B1", "N c #EBEBEB", "O c #B4B4B4", "P c #E6E6E6", "Q c #EFF1F1", "R c #C1C1C1", "S c #FEFEFE", "T c #C3C0C3", " ", "...................", "++++++@#$$$#%&+++++", "****=&-;>>,'@)!****", "~~~='{ ]^/(_:<)[~~~", "}}|1234,567%890)a}}", "ba-cd>efffgheij#[kb", "~ilmnohhfgghoopqrkb", "[;stohhooooooeo~#a~", "nu_hh6o6veveee6o[w~", "0(|fghh6xyxv6666z=A", "{BCffDEfevegEge6oFA", "jGDHDIEEzCzEEJheoDp", "9=zHH7~EEEEE}Koe6fL", "MzzCCzp|EEE|FH6ve6N", "OJDCgozb!E!PDevve6Q", "{JDg6v6zF~FDeyxv6ez", "RHfoxSyvgHgvyxve6eD", "THg6xSSSyxySSxv6e6K"}; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/menuiconpr.xpm0000644000175000017500000000013212106662425024013 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.367812455 30 ctime=1360750008.347811617 fluxbox-1.3.5/data/styles/arch/pixmaps/menuiconpr.xpm0000644000175000017500000000132212106662425022040 0ustar00mgmg00000000000000/* XPM */ static char * menuiconpr_xpm[] = { "19 19 15 1", " c #A7A7A7", ". c #BCBCBC", "+ c #D3D3D3", "@ c #DFDFDF", "# c #E2E2E2", "$ c #E3E3E3", "% c #E5E5E5", "& c #E7E7E7", "* c #E8E8E8", "= c #E9E9E9", "- c #454545", "; c #E6E6E6", "> c #E4E4E4", ", c #E1E1E1", "' c #DCDCDC", " ", "...................", "+++++++++++++++++++", "@@@@@@@@@@@@@@@@@@@", "###################", "$$$$$$$$$$$$$$$$$$$", "%%%%%%%%%%%%%%%%%%%", "&&&&&&&&&&&&&&&&&&&", "*******************", "=======-----=======", "*******************", "*******-----*******", "*******************", ";;;;;;;;;;;;;;;;;;;", ">>>>>>>>>>>>>>>>>>>", ",,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,", "'''''''''''''''''''"}; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/maxpr.xpm0000644000175000017500000000013212106662425022763 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.363812455 30 ctime=1360750008.347811617 fluxbox-1.3.5/data/styles/arch/pixmaps/maxpr.xpm0000644000175000017500000000336612106662425021022 0ustar00mgmg00000000000000/* XPM */ static char * maxpr_xpm[] = { "19 19 86 1", " c #A7A7A7", ". c #BCBCBC", "+ c #D3D3D3", "@ c #D0D0D0", "# c #CDCDCD", "$ c #CACACA", "% c #CFCFCF", "& c #D2D2D2", "* c #DFDFDF", "= c #DADADA", "- c #C9C9C9", "; c #C2C2C2", "> c #C0C0C0", ", c #C3C3C3", "' c #CCCCCC", ") c #D6D6D6", "! c #D9D9D9", "~ c #E2E2E2", "{ c #BBBBBB", "] c #979797", "^ c #8F8F8F", "/ c #919191", "( c #9C9C9C", "_ c #A9A9A9", ": c #BABABA", "< c #CBCBCB", "[ c #DCDCDC", "} c #E3E3E3", "| c #DBDBDB", "1 c #C8C8C8", "2 c #ADADAD", "3 c #8A8A8A", "4 c #959595", "5 c #EAEAEA", "6 c #F9F9F9", "7 c #ECECEC", "8 c #B3B3B3", "9 c #AFAFAF", "0 c #C6C6C6", "a c #DDDDDD", "b c #E5E5E5", "c c #ACACAC", "d c #818181", "e c #FAFAFA", "f c #F5F5F5", "g c #F6F6F6", "h c #F7F7F7", "i c #D5D5D5", "j c #B2B2B2", "k c #E0E0E0", "l c #B6B6B6", "m c #868686", "n c #D1D1D1", "o c #F8F8F8", "p c #E7E7E7", "q c #BEBEBE", "r c #D3D3D6", "s c #939393", "t c #C5C5C5", "u c #AEAEAE", "v c #FBFBFB", "w c #D8D8D8", "x c #FCFCFC", "y c #F1F1F1", "z c #E1E1E1", "A c #ABABAB", "B c #F4F4F4", "C c #000000", "D c #E8E8E8", "E c #C4C4C4", "F c #F2F2F2", "G c #F0F0F0", "H c #E9E9E9", "I c #B1B1B1", "J c #F3F3F3", "K c #EBEBEB", "L c #B4B4B4", "M c #EEEEEE", "N c #DEDEDE", "O c #EFF1F1", "P c #C1C1C1", "Q c #C3C0C3", "R c #FDFDFD", "S c #FEFEFE", "T c #FFFFFF", "U c #EFEFEF", " ", "...................", "++++++@#$$$#%&+++++", "****=&-;>>,'@)!****", "~~~='{ ]^/(_:<)[~~~", "}}|1234,567%890)a}}", "ba-cd>efffgheij#[kb", "~ilmnohhfgghoopqrkb", "[;stohhooooooeo~#a~", "nu_hh6o6veveee6o[w~", "0(|fho6evevxvee6y=z", "{ABfhoe6fCfexxx6oDz", "jEFBg6oyCCCy6vvvoFp", "9=yBggGCCCCCy6vv6fH", "IyyBByCCi+iCCJ6ve6K", "LGFJJMCNz}z*CGoee6O", "{GFffGH5yByK5Foe6ey", "PJfoeoBhvxvhBg6e6eF", "QJg6vRxRSTSRxve6e6U"}; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/frame.xpm0000644000175000017500000000013212106662425022726 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.363812455 30 ctime=1360750008.351811617 fluxbox-1.3.5/data/styles/arch/pixmaps/frame.xpm0000644000175000017500000000120512106662425020753 0ustar00mgmg00000000000000/* XPM */ static char *frame[] = { /* columns rows colors chars-per-pixel */ "21 21 1 1", " c #23155F", /* pixels */ " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " " }; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/closefcs.xpm0000644000175000017500000000013212106662425023435 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.363812455 30 ctime=1360750008.351811617 fluxbox-1.3.5/data/styles/arch/pixmaps/closefcs.xpm0000644000175000017500000000443012106662425021465 0ustar00mgmg00000000000000/* XPM */ static char * closefcs_xpm[] = { "19 19 92 2", " c #A7A7A7", ". c #BCBCBC", "+ c #D3D3D3", "@ c #D0D0D0", "# c #CDCDCD", "$ c #CACACA", "% c #CFCFCF", "& c #D2D2D2", "* c #DFDFDF", "= c #DADADA", "- c #C9C9C9", "; c #C2C2C2", "> c #C0C0C0", ", c #C3C3C3", "' c #CCCCCC", ") c #D6D6D6", "! c #D9D9D9", "~ c #E2E2E2", "{ c #BBBBBB", "] c #979797", "^ c #8F8F8F", "/ c #919191", "( c #9C9C9C", "_ c #A9A9A9", ": c #BABABA", "< c #CBCBCB", "[ c #DCDCDC", "} c #E3E3E3", "| c #DBDBDB", "1 c #C8C8C8", "2 c #ADADAD", "3 c #8A8A8A", "4 c #959595", "5 c #EAEAEA", "6 c #F9F9F9", "7 c #ECECEC", "8 c #B3B3B3", "9 c #AFAFAF", "0 c #C6C6C6", "a c #DDDDDD", "b c #E5E5E5", "c c #ACACAC", "d c #818181", "e c #FAFAFA", "f c #F5F5F5", "g c #F6F6F6", "h c #F7F7F7", "i c #D5D5D5", "j c #B2B2B2", "k c #E0E0E0", "l c #B6B6B6", "m c #868686", "n c #D1D1D1", "o c #F4F4F4", "p c #E7E7E7", "q c #BEBEBE", "r c #D3D3D6", "s c #939393", "t c #C5C5C5", "u c #F2F2F2", "v c #EDEDED", "w c #EEEEEE", "x c #AEAEAE", "y c #000000", "z c #E1E1E1", "A c #E8E8E8", "B c #D8D8D8", "C c #D7D7D7", "D c #F0F0F0", "E c #F8F8F8", "F c #F1F1F1", "G c #ABABAB", "H c #D4D4D4", "I c #B1B1B1", "J c #C4C4C4", "K c #F3F3F3", "L c #EFEFEF", "M c #BFBFBF", "N c #A3A3A3", "O c #9E9E9E", "P c #E6E6E6", "Q c #A2A2A2", "R c #E9E9E9", "S c #FBFBFB", "T c #EBEBEB", "U c #B4B4B4", "V c #A4A4A4", "W c #EFF1F1", "X c #BDBDBD", "Y c #CECECE", "Z c #C1C1C1", "` c #C3C0C3", " ", ". . . . . . . . . . . . . . . . . . . ", "+ + + + + + @ # $ $ $ # % & + + + + + ", "* * * * = & - ; > > , ' @ ) ! * * * * ", "~ ~ ~ = ' { ] ^ / ( _ : < ) [ ~ ~ ~ ", "} } | 1 2 3 4 , 5 6 7 % 8 9 0 ) a } } ", "b a - c d > e f f f g h e i j # [ k b ", "~ i l m n h g g o g f g h h p q r k b ", "[ ; s t h u v w u o u w w f h ~ # a ~ ", "n x _ g u p y y z p z y y A o h [ B ~ ", "0 ( | o v C y y y ' y y y ! D E F = z ", "{ G o o 7 H 9 y y 2 y y I C F E E A z ", "j J u K L k M N O y O N > z o e E u p ", "9 = F o K P ' y y Q y y # R E S 6 f R ", "I F F K D k y y y Q y y y ~ f e e 6 T ", "U D u K 7 C y y V x V y y ! F e e 6 W ", "{ D u f L = X I ; Y ; j q [ u e 6 e F ", "Z K f h h 7 [ = b 7 b = [ 5 g 6 6 e u ", "` K g 6 S 6 o f 6 S 6 f o h e 6 e 6 L "}; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/unshadefcs.xpm0000644000175000017500000000013212106662425023757 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.359812455 30 ctime=1360750008.351811617 fluxbox-1.3.5/data/styles/arch/pixmaps/unshadefcs.xpm0000644000175000017500000000132212106662425022004 0ustar00mgmg00000000000000/* XPM */ static char * unshadefcs_xpm[] = { "19 19 15 1", " c #A7A7A7", ". c #BCBCBC", "+ c #D3D3D3", "@ c #DFDFDF", "# c #E2E2E2", "$ c #E3E3E3", "% c #E5E5E5", "& c #E7E7E7", "* c #E8E8E8", "= c #E9E9E9", "- c #3A3A3A", "; c #E6E6E6", "> c #E4E4E4", ", c #E1E1E1", "' c #DCDCDC", " ", "...................", "+++++++++++++++++++", "@@@@@@@@@@@@@@@@@@@", "###################", "$$$$$$$$$$$$$$$$$$$", "%%%%%%%%%%%%%%%%%%%", "&&&&&&&&&&&&&&&&&&&", "*******************", "===================", "*******************", "********-*-********", "*********-*********", ";;;;;;;;;;;;;;;;;;;", ">>>>>>>>>>>>>>>>>>>", ",,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,", "'''''''''''''''''''"}; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/tbarfcs.xpm0000644000175000017500000000013212106662425023260 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.359812455 30 ctime=1360750008.351811617 fluxbox-1.3.5/data/styles/arch/pixmaps/tbarfcs.xpm0000644000175000017500000000130012106662425021301 0ustar00mgmg00000000000000/* XPM */ static char * tbarfcs_xpm[] = { "19 19 14 1", " c #A7A7A7", ". c #BCBCBC", "+ c #D3D3D3", "@ c #DFDFDF", "# c #E2E2E2", "$ c #E3E3E3", "% c #E5E5E5", "& c #E7E7E7", "* c #E8E8E8", "= c #E9E9E9", "- c #E6E6E6", "; c #E4E4E4", "> c #E1E1E1", ", c #DCDCDC", " ", "...................", "+++++++++++++++++++", "@@@@@@@@@@@@@@@@@@@", "###################", "$$$$$$$$$$$$$$$$$$$", "%%%%%%%%%%%%%%%%%%%", "&&&&&&&&&&&&&&&&&&&", "*******************", "===================", "*******************", "*******************", "*******************", "-------------------", ";;;;;;;;;;;;;;;;;;;", ">>>>>>>>>>>>>>>>>>>", ">>>>>>>>>>>>>>>>>>>", ">>>>>>>>>>>>>>>>>>>", ",,,,,,,,,,,,,,,,,,,"}; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/stickufcs.xpm0000644000175000017500000000013212106662425023632 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.359812455 30 ctime=1360750008.355811616 fluxbox-1.3.5/data/styles/arch/pixmaps/stickufcs.xpm0000644000175000017500000000237412106662425021667 0ustar00mgmg00000000000000/* XPM */ static char * stickufcs_xpm[] = { "19 19 52 1", " c #A7A7A7", ". c #BCBCBC", "+ c #D3D3D3", "@ c #DFDFDF", "# c #E2E2E2", "$ c #E3E3E3", "% c #E5E5E5", "& c #E7E7E7", "* c #E9EAEA", "= c #EAEAEB", "- c #EBEBEB", "; c #EAEAEA", "> c #E8E8E8", ", c #E6E6E6", "' c #EDEDED", ") c #EFEFEF", "! c #EEEEEE", "~ c #ECECEC", "{ c #EFEEEE", "] c #F1F1F1", "^ c #F3F3F3", "/ c #F2F2F2", "( c #F0F0F0", "_ c #E9E9E9", ": c #F4F5F4", "< c #F7F7F7", "[ c #F8F7F7", "} c #F6F6F6", "| c #FBFBFB", "1 c #FCFCFC", "2 c #F9F9F9", "3 c #F5F5F4", "4 c #9D9D9D", "5 c #A0A0A0", "6 c #A3A3A3", "7 c #A6A6A6", "8 c #A8A8A8", "9 c #AAAAAA", "0 c #A4A4A4", "a c #A2A2A2", "b c #9E9E9E", "c c #F1F2F2", "d c #F5F5F5", "e c #F8F8F8", "f c #EFF0EF", "g c #F4F4F4", "h c #F1F0F1", "i c #E4E4E4", "j c #EBEBEA", "k c #EAEAE9", "l c #E1E1E1", "m c #DCDCDC", " ", "...................", "+++++++++++++++++++", "@@@@@@@@@@@@@@@@@@@", "###################", "$$$$$#%&*=-;>,$$$$$", "%%%%%%>-'))!~;,%%%%", "&&&&&&-{]^^/('_&&&&", ">>>>>_']:<[}^)->>>>", "_____;{^<|123(~____", ">>>>>456789 0ab>>>>", ">>>>>*!cde2<^f->>>>", ">>>>>>~)/gg^h';>>>>", ",,,,,%_~!(()';&,,,,", "iiiii$,>j~~-k&iiiii", "lllllllllllllllllll", "lllllllllllllllllll", "lllllllllllllllllll", "mmmmmmmmmmmmmmmmmmm"}; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/shadeufcs.xpm0000644000175000017500000000013212106662425023601 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.355812455 30 ctime=1360750008.355811616 fluxbox-1.3.5/data/styles/arch/pixmaps/shadeufcs.xpm0000644000175000017500000000132112106662425021625 0ustar00mgmg00000000000000/* XPM */ static char * shadeufcs_xpm[] = { "19 19 15 1", " c #A7A7A7", ". c #BCBCBC", "+ c #D3D3D3", "@ c #DFDFDF", "# c #E2E2E2", "$ c #E3E3E3", "% c #E5E5E5", "& c #E7E7E7", "* c #E8E8E8", "= c #E9E9E9", "- c #3A3A3A", "; c #E6E6E6", "> c #E4E4E4", ", c #E1E1E1", "' c #DCDCDC", " ", "...................", "+++++++++++++++++++", "@@@@@@@@@@@@@@@@@@@", "###################", "$$$$$$$$$$$$$$$$$$$", "%%%%%%%%%%%%%%%%%%%", "&&&&&&&&&&&&&&&&&&&", "*******************", "===================", "*******************", "*********-*********", "********-*-********", ";;;;;;;;;;;;;;;;;;;", ">>>>>>>>>>>>>>>>>>>", ",,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,", "'''''''''''''''''''"}; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/selected.xpm0000644000175000017500000000013212106662425023424 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.355812455 30 ctime=1360750008.355811616 fluxbox-1.3.5/data/styles/arch/pixmaps/selected.xpm0000644000175000017500000000074312106662425021457 0ustar00mgmg00000000000000/* XPM */ static char *selected[] = { /* columns rows colors chars-per-pixel */ "16 16 4 1", " c black", ". c #E7E7E7", "X c gray100", "o c None", /* pixels */ "oooooooooooooooo", "oooooooooooooooo", "oooooooooooooooo", "o.........oXoooo", "o.ooooooo.XXoooo", "o.oooooooXXXoooo", "o.ooooooXXXXoooo", "o.oXoooXXXXooooo", "o.oXXoXXXXoooooo", "o.oXXXXXX.oooooo", "o.oXXXXXo.oooooo", "o.ooXXXoo.oooooo", "o.oooXooo.oooooo", "o.........oooooo", "oooooooooooooooo", "oooooooooooooooo" }; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/minfcs.xpm0000644000175000017500000000013212106662425023113 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.351812455 30 ctime=1360750008.355811616 fluxbox-1.3.5/data/styles/arch/pixmaps/minfcs.xpm0000644000175000017500000000350212106662425021142 0ustar00mgmg00000000000000/* XPM */ static char * minfcs_xpm[] = { "19 19 91 1", " c #A7A7A7", ". c #BCBCBC", "+ c #D3D3D3", "@ c #D0D0D0", "# c #CDCDCD", "$ c #CACACA", "% c #CFCFCF", "& c #D2D2D2", "* c #DFDFDF", "= c #DADADA", "- c #C9C9C9", "; c #C2C2C2", "> c #C0C0C0", ", c #C3C3C3", "' c #CCCCCC", ") c #D6D6D6", "! c #D9D9D9", "~ c #E2E2E2", "{ c #BBBBBB", "] c #979797", "^ c #8F8F8F", "/ c #919191", "( c #9C9C9C", "_ c #A9A9A9", ": c #BABABA", "< c #CBCBCB", "[ c #DCDCDC", "} c #E3E3E3", "| c #DBDBDB", "1 c #C8C8C8", "2 c #ADADAD", "3 c #8A8A8A", "4 c #959595", "5 c #EAEAEA", "6 c #F9F9F9", "7 c #ECECEC", "8 c #B3B3B3", "9 c #AFAFAF", "0 c #C6C6C6", "a c #DDDDDD", "b c #E5E5E5", "c c #ACACAC", "d c #818181", "e c #FAFAFA", "f c #F5F5F5", "g c #F6F6F6", "h c #F7F7F7", "i c #D5D5D5", "j c #B2B2B2", "k c #E0E0E0", "l c #B6B6B6", "m c #868686", "n c #D1D1D1", "o c #F8F8F8", "p c #E7E7E7", "q c #BEBEBE", "r c #D3D3D6", "s c #939393", "t c #C5C5C5", "u c #AEAEAE", "v c #FBFBFB", "w c #D8D8D8", "x c #F3F3F3", "y c #000000", "z c #FCFCFC", "A c #F1F1F1", "B c #E1E1E1", "C c #ABABAB", "D c #F4F4F4", "E c #E6E6E6", "F c #F0F0F0", "G c #E9E9E9", "H c #E8E8E8", "I c #C4C4C4", "J c #F2F2F2", "K c #D7D7D7", "L c #BFBFBF", "M c #EFEFEF", "N c #B1B1B1", "O c #808080", "P c #EBEBEB", "Q c #B4B4B4", "R c #8B8B8B", "S c #797979", "T c #EFF1F1", "U c #B9B9B9", "V c #A8A8A8", "W c #C1C1C1", "X c #FEFEFE", "Y c #E4E4E4", "Z c #C3C0C3", " ", "...................", "++++++@#$$$#%&+++++", "****=&-;>>,'@)!****", "~~~='{ ]^/(_:<)[~~~", "}}|1234,567%890)a}}", "ba-cd>efffgheij#[kb", "~ilmnohhfgghoopqrkb", "[;stohhooooooeo~#a~", "nu_hh6h6veve6e6o[w~", "0(|ffxygezeoyfo6A=B", "{CDDAEyyFgFyyGgooHB", "jIJJ5KLyyyyy>wM6oJp", "9=AJ5nu(yyy(u+M66fG", "NAAxMa:4OyO4:*Dee6P", "QFJDDMwNRSRj!A6ve6T", "{FJg6oFwUVU!Aezv6eA", "WxfozXeJY[YJezve6eJ", "Zxg6zXXz6g6zXzv6e6M"}; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/menuiconfcs.xpm0000644000175000017500000000013212106662425024145 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.351812455 30 ctime=1360750008.355811616 fluxbox-1.3.5/data/styles/arch/pixmaps/menuiconfcs.xpm0000644000175000017500000000132312106662425022173 0ustar00mgmg00000000000000/* XPM */ static char * menuiconfcs_xpm[] = { "19 19 15 1", " c #A7A7A7", ". c #BCBCBC", "+ c #D3D3D3", "@ c #DFDFDF", "# c #E2E2E2", "$ c #E3E3E3", "% c #E5E5E5", "& c #E7E7E7", "* c #E8E8E8", "= c #E9E9E9", "- c #454545", "; c #E6E6E6", "> c #E4E4E4", ", c #E1E1E1", "' c #DCDCDC", " ", "...................", "+++++++++++++++++++", "@@@@@@@@@@@@@@@@@@@", "###################", "$$$$$$$$$$$$$$$$$$$", "%%%%%%%%%%%%%%%%%%%", "&&&&&&&&&&&&&&&&&&&", "*******************", "=======-----=======", "*******************", "*******-----*******", "*******************", ";;;;;;;;;;;;;;;;;;;", ">>>>>>>>>>>>>>>>>>>", ",,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,", "'''''''''''''''''''"}; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/maxfcs.xpm0000644000175000017500000000013212106662425023115 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.351812455 30 ctime=1360750008.359811616 fluxbox-1.3.5/data/styles/arch/pixmaps/maxfcs.xpm0000644000175000017500000000444612106662425021154 0ustar00mgmg00000000000000/* XPM */ static char * maxfcs_xpm[] = { "19 19 93 2", " c #A7A7A7", ". c #BCBCBC", "+ c #D3D3D3", "@ c #D0D0D0", "# c #CDCDCD", "$ c #CACACA", "% c #CFCFCF", "& c #D2D2D2", "* c #DFDFDF", "= c #DADADA", "- c #C9C9C9", "; c #C2C2C2", "> c #C0C0C0", ", c #C3C3C3", "' c #CCCCCC", ") c #D6D6D6", "! c #D9D9D9", "~ c #E2E2E2", "{ c #BBBBBB", "] c #979797", "^ c #8F8F8F", "/ c #919191", "( c #9C9C9C", "_ c #A9A9A9", ": c #BABABA", "< c #CBCBCB", "[ c #DCDCDC", "} c #E3E3E3", "| c #DBDBDB", "1 c #C8C8C8", "2 c #ADADAD", "3 c #8A8A8A", "4 c #959595", "5 c #EAEAEA", "6 c #F9F9F9", "7 c #ECECEC", "8 c #B3B3B3", "9 c #AFAFAF", "0 c #C6C6C6", "a c #DDDDDD", "b c #E5E5E5", "c c #ACACAC", "d c #818181", "e c #FAFAFA", "f c #F5F5F5", "g c #F6F6F6", "h c #F7F7F7", "i c #D5D5D5", "j c #B2B2B2", "k c #E0E0E0", "l c #B6B6B6", "m c #868686", "n c #D1D1D1", "o c #F8F8F8", "p c #E7E7E7", "q c #BEBEBE", "r c #D3D3D6", "s c #939393", "t c #C5C5C5", "u c #AEAEAE", "v c #FBFBFB", "w c #D8D8D8", "x c #000000", "y c #F1F1F1", "z c #E1E1E1", "A c #ABABAB", "B c #F4F4F4", "C c #F0F0F0", "D c #FCFCFC", "E c #E8E8E8", "F c #C4C4C4", "G c #F2F2F2", "H c #EFEFEF", "I c #EDEDED", "J c #797979", "K c #8B8B8B", "L c #E9E9E9", "M c #B1B1B1", "N c #F3F3F3", "O c #808080", "P c #7A7A7A", "Q c #EBEBEB", "R c #B4B4B4", "S c #A4A4A4", "T c #AAAAAA", "U c #9D9D9D", "V c #D4D4D4", "W c #EFF1F1", "X c #C1C1C1", "Y c #DEDEDE", "Z c #E6E6E6", "` c #C3C0C3", " . c #FEFEFE", " ", ". . . . . . . . . . . . . . . . . . . ", "+ + + + + + @ # $ $ $ # % & + + + + + ", "* * * * = & - ; > > , ' @ ) ! * * * * ", "~ ~ ~ = ' { ] ^ / ( _ : < ) [ ~ ~ ~ ", "} } | 1 2 3 4 , 5 6 7 % 8 9 0 ) a } } ", "b a - c d > e f f f g h e i j # [ k b ", "~ i l m n o h h f g g h o o p q r k b ", "[ ; s t o h h o o o o o o e o ~ # a ~ ", "n u _ h h 6 o 6 v 6 v e e e 6 o [ w ~ ", "0 ( | f h o 6 o h x h e v e e 6 y = z ", "{ A B f h o h C x x x y 6 D D 6 o E z ", "j F G B g g H x x x x x C o v v o G p ", "9 = y B B I x x 3 J K x x C 6 v 6 f L ", "M y y N H a x 4 O P O 4 x * B e e 6 Q ", "R C G G 5 & u ( S T S U 9 V H 6 e 6 W ", "{ C G B I w > X V Y V ; X = C 6 6 e y ", "X N f h g Q z Z y h y Z z L f 6 6 e G ", "` N g 6 e 6 h e D .D e h h 6 6 e 6 H "}; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/closeufcs.xpm0000644000175000017500000000013212106662425023622 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.347812455 30 ctime=1360750008.359811616 fluxbox-1.3.5/data/styles/arch/pixmaps/closeufcs.xpm0000644000175000017500000000331512106662425021653 0ustar00mgmg00000000000000/* XPM */ static char * closeufcs_xpm[] = { "19 19 83 1", " c #A7A7A7", ". c #BCBCBC", "+ c #D3D3D3", "@ c #D0D0D0", "# c #CDCDCD", "$ c #CACACA", "% c #CFCFCF", "& c #D2D2D2", "* c #DFDFDF", "= c #DADADA", "- c #C9C9C9", "; c #C2C2C2", "> c #C0C0C0", ", c #C3C3C3", "' c #CCCCCC", ") c #D6D6D6", "! c #D9D9D9", "~ c #E2E2E2", "{ c #BBBBBB", "] c #979797", "^ c #8F8F8F", "/ c #919191", "( c #9C9C9C", "_ c #A9A9A9", ": c #BABABA", "< c #CBCBCB", "[ c #DCDCDC", "} c #E3E3E3", "| c #DBDBDB", "1 c #C8C8C8", "2 c #ADADAD", "3 c #8A8A8A", "4 c #959595", "5 c #EAEAEA", "6 c #F9F9F9", "7 c #ECECEC", "8 c #B3B3B3", "9 c #AFAFAF", "0 c #C6C6C6", "a c #DDDDDD", "b c #E5E5E5", "c c #ACACAC", "d c #818181", "e c #FAFAFA", "f c #F5F5F5", "g c #F6F6F6", "h c #F7F7F7", "i c #D5D5D5", "j c #B2B2B2", "k c #E0E0E0", "l c #B6B6B6", "m c #868686", "n c #D1D1D1", "o c #F8F8F8", "p c #E7E7E7", "q c #BEBEBE", "r c #D3D3D6", "s c #939393", "t c #C5C5C5", "u c #AEAEAE", "v c #FBFBFB", "w c #D8D8D8", "x c #FDFDFD", "y c #F1F1F1", "z c #E1E1E1", "A c #ABABAB", "B c #F4F4F4", "C c #FEFEFE", "D c #FCFCFC", "E c #E8E8E8", "F c #C4C4C4", "G c #F2F2F2", "H c #FFFFFF", "I c #E9E9E9", "J c #B1B1B1", "K c #EBEBEB", "L c #B4B4B4", "M c #F0F0F0", "N c #EFF1F1", "O c #C1C1C1", "P c #F3F3F3", "Q c #C3C0C3", "R c #EFEFEF", " ", "...................", "++++++@#$$$#%&+++++", "****=&-;>>,'@)!****", "~~~='{ ]^/(_:<)[~~~", "}}|1234,567%890)a}}", "ba-cd>efffgheij#[kb", "~ilmnohhfgghoopqrkb", "[;stohhooooooeo~#a~", "nu_hh6o6veveee6o[w~", "0(|fho6vxxxxvee6y=z", "{ABfhovxCCCCxDD6oEz", "jFGBgexCHHHCCDvvoGp", "9=yBhexCCHHCCxDv6fI", "JyyBhvxCHHHCCxDve6K", "LMGBhDCCHHHHHCDve6N", "{MGg6DCCHHHHHCDv6ey", "OPfoDCCHHHHHCDve6eG", "QPg6DCCHHHHHCDv6e6R"}; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/bullet.xpm0000644000175000017500000000013212106662425023123 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.347812455 30 ctime=1360750008.359811616 fluxbox-1.3.5/data/styles/arch/pixmaps/bullet.xpm0000644000175000017500000000074112106662425021154 0ustar00mgmg00000000000000/* XPM */ static char *bullet[] = { /* columns rows colors chars-per-pixel */ "16 16 4 1", " c black", ". c #A0A0A0", "X c #E7E7E7", "o c None", /* pixels */ "oooooooooooooooo", "oooooooooooooooo", "oooooooooooooooo", "oooooooooooooooo", "oooooooooooooooo", "oooooooooooooooo", "ooooooooXooooooo", "ooooooooXXoooooo", "oooooXXXXXXooooo", "oooooXXXXXXXoooo", "oooooXXXXXX.oooo", "ooooo...XX.ooooo", "ooooooooX.oooooo", "oooooooo.ooooooo", "oooooooooooooooo", "oooooooooooooooo" }; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/unshadeufcs.xpm0000644000175000017500000000013212106662425024144 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.343812455 30 ctime=1360750008.359811616 fluxbox-1.3.5/data/styles/arch/pixmaps/unshadeufcs.xpm0000644000175000017500000000132312106662425022172 0ustar00mgmg00000000000000/* XPM */ static char * unshadeufcs_xpm[] = { "19 19 15 1", " c #A7A7A7", ". c #BCBCBC", "+ c #D3D3D3", "@ c #DFDFDF", "# c #E2E2E2", "$ c #E3E3E3", "% c #E5E5E5", "& c #E7E7E7", "* c #E8E8E8", "= c #E9E9E9", "- c #3A3A3A", "; c #E6E6E6", "> c #E4E4E4", ", c #E1E1E1", "' c #DCDCDC", " ", "...................", "+++++++++++++++++++", "@@@@@@@@@@@@@@@@@@@", "###################", "$$$$$$$$$$$$$$$$$$$", "%%%%%%%%%%%%%%%%%%%", "&&&&&&&&&&&&&&&&&&&", "*******************", "===================", "*******************", "********-*-********", "*********-*********", ";;;;;;;;;;;;;;;;;;;", ">>>>>>>>>>>>>>>>>>>", ",,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,", "'''''''''''''''''''"}; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/unselected.xpm0000644000175000017500000000013212106662425023767 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.343812455 30 ctime=1360750008.363811616 fluxbox-1.3.5/data/styles/arch/pixmaps/unselected.xpm0000644000175000017500000000074512106662425022024 0ustar00mgmg00000000000000/* XPM */ static char *unselected[] = { /* columns rows colors chars-per-pixel */ "16 16 4 1", " c black", ". c #E7E7E7", "X c gray100", "o c None", /* pixels */ "oooooooooooooooo", "oooooooooooooooo", "oooooooooooooooo", "o.........oooooo", "o.ooooooo.oooooo", "o.ooooooo.oooooo", "o.ooooooo.oooooo", "o.ooooooo.oooooo", "o.ooooooo.oooooo", "o.ooooooo.oooooo", "o.ooooooo.oooooo", "o.ooooooo.oooooo", "o.ooooooo.oooooo", "o.........oooooo", "oooooooooooooooo", "oooooooooooooooo" }; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/stuckufcs.xpm0000644000175000017500000000013212106662425023646 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.343812455 30 ctime=1360750008.363811616 fluxbox-1.3.5/data/styles/arch/pixmaps/stuckufcs.xpm0000644000175000017500000000247012106662425021700 0ustar00mgmg00000000000000/* XPM */ static char * stuckufcs_xpm[] = { "19 19 56 1", " c #A7A7A7", ". c #BCBCBC", "+ c #D3D3D3", "@ c #DFDFDF", "# c #E2E2E2", "$ c #DDDDDD", "% c #E3E3E3", "& c #787878", "* c #B3B3B3", "= c #E1E1E1", "- c #E9EAEA", "; c #EAEAEB", "> c #EBEBEB", ", c #EAEAEA", "' c #E8E8E8", ") c #E6E6E6", "! c #E5E5E5", "~ c #E0E0E0", "{ c #747474", "] c #B7B7B7", "^ c #EFEFEF", "/ c #EEEEEE", "( c #ECECEC", "_ c #E7E7E7", ": c #787777", "< c #F3F3F3", "[ c #F2F2F2", "} c #F0F0F0", "| c #EDEDED", "1 c #E9E9E9", "2 c #7A7B7A", "3 c #C1C1C1", "4 c #F1F0F0", "5 c #F6F6F6", "6 c #EFEEEE", "7 c #7E7E7E", "8 c #C5C5C5", "9 c #F5F5F4", "0 c #F1F1F1", "a c #C4C4C4", "b c #7F7F7F", "c c #C2C2C2", "d c #F1F2F2", "e c #F5F5F5", "f c #7C7C7C", "g c #BEBEBE", "h c #E8E9E8", "i c #F4F4F4", "j c #797879", "k c #B9B9B9", "l c #E4E4E4", "m c #757575", "n c #B4B4B4", "o c #EBEBEA", "p c #797979", "q c #DCDCDC", " ", "...................", "+++++++++++++++++++", "@@@@@@@@@@@@@@@@@@@", "######$############", "%%%%%&*=-;>,')%%%%%", "!!!!~*{])^^/(,)!!!!", "_____#]:.(<[}|1____", "'''''1_.2345<^>''''", "11111,6|378[9}(1111", "''''',^<0abc/0(''''", "'''''-/de[cfgh>''''", "''''''(^[i/gjkl''''", ")))))!1(/}}1kmn))))", "lllll%)'o((>lnpllll", "===================", "===================", "===================", "qqqqqqqqqqqqqqqqqqq"}; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/stickpr.xpm0000644000175000017500000000013212106662425023313 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.339812455 30 ctime=1360750008.363811616 fluxbox-1.3.5/data/styles/arch/pixmaps/stickpr.xpm0000644000175000017500000000252412106662425021345 0ustar00mgmg00000000000000/* XPM */ static char * stickpr_xpm[] = { "19 19 58 1", " c #A7A7A7", ". c #BCBCBC", "+ c #D3D3D3", "@ c #DFDFDF", "# c #E2E2E2", "$ c #E3E3E3", "% c #E5E5E5", "& c #E7E7E7", "* c #E9EAEA", "= c #EAEAEB", "- c #EBEBEB", "; c #EAEAEA", "> c #E8E8E8", ", c #E6E6E6", "' c #EDEDED", ") c #EFEFEF", "! c #EEEEEE", "~ c #ECECEC", "{ c #C8C8C8", "] c #CCCCCC", "^ c #E8E7E7", "/ c #F1F1F1", "( c #F3F3F3", "_ c #F2F2F2", ": c #F0F0F0", "< c #E9E9E9", "[ c #686868", "} c #636363", "| c #B5B5B5", "1 c #CCCDCC", "2 c #D5D5D5", "3 c #F1F0F0", "4 c #F6F6F6", "5 c #CBCBCB", "6 c #B4B3B3", "7 c #666666", "8 c #535353", "9 c #696969", "0 c #BEBEBE", "a c #D0D0D0", "b c #CFCFCF", "c c #BDBDBD", "d c #6A6A6A", "e c #545454", "f c #676767", "g c #F1F2F2", "h c #F5F5F5", "i c #D8D8D8", "j c #B7B7B7", "k c #646564", "l c #F4F4F4", "m c #EBEAEB", "n c #CDCDCD", "o c #E4E4E4", "p c #EBEBEA", "q c #EAEAE9", "r c #E1E1E1", "s c #DCDCDC", " ", "...................", "+++++++++++++++++++", "@@@@@@@@@@@@@@@@@@@", "###################", "$$$$$#%&*=-;>,$$$$$", "%%%%%%>-'))!~;,%%%%", "&&&&&{]^/((_:'<&&&&", ">>>>>[}|1234()->>>>", "<<<<<567890a+<~<<<<", ">>>>>;<+bcdef|]>>>>", ">>>>>*!gh_ibjk9>>>>", ">>>>>>~)_ll(mn5>>>>", ",,,,,%<~!::)';&,,,,", "ooooo$,>p~~-q&ooooo", "rrrrrrrrrrrrrrrrrrr", "rrrrrrrrrrrrrrrrrrr", "rrrrrrrrrrrrrrrrrrr", "sssssssssssssssssss"}; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/shadepr.xpm0000644000175000017500000000013212106662425023262 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.339812455 30 ctime=1360750008.363811616 fluxbox-1.3.5/data/styles/arch/pixmaps/shadepr.xpm0000644000175000017500000000131712106662425021313 0ustar00mgmg00000000000000/* XPM */ static char * shadepr_xpm[] = { "19 19 15 1", " c #A7A7A7", ". c #BCBCBC", "+ c #D3D3D3", "@ c #DFDFDF", "# c #E2E2E2", "$ c #E3E3E3", "% c #E5E5E5", "& c #E7E7E7", "* c #E8E8E8", "= c #E9E9E9", "- c #3A3A3A", "; c #E6E6E6", "> c #E4E4E4", ", c #E1E1E1", "' c #DCDCDC", " ", "...................", "+++++++++++++++++++", "@@@@@@@@@@@@@@@@@@@", "###################", "$$$$$$$$$$$$$$$$$$$", "%%%%%%%%%%%%%%%%%%%", "&&&&&&&&&&&&&&&&&&&", "*******************", "===================", "*******************", "*********-*********", "********-*-********", ";;;;;;;;;;;;;;;;;;;", ">>>>>>>>>>>>>>>>>>>", ",,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,", "'''''''''''''''''''"}; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/minufcs.xpm0000644000175000017500000000013212106662425023300 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.339812455 30 ctime=1360750008.367811616 fluxbox-1.3.5/data/styles/arch/pixmaps/minufcs.xpm0000644000175000017500000000331312106662425021327 0ustar00mgmg00000000000000/* XPM */ static char * minufcs_xpm[] = { "19 19 83 1", " c #A7A7A7", ". c #BCBCBC", "+ c #D3D3D3", "@ c #D0D0D0", "# c #CDCDCD", "$ c #CACACA", "% c #CFCFCF", "& c #D2D2D2", "* c #DFDFDF", "= c #DADADA", "- c #C9C9C9", "; c #C2C2C2", "> c #C0C0C0", ", c #C3C3C3", "' c #CCCCCC", ") c #D6D6D6", "! c #D9D9D9", "~ c #E2E2E2", "{ c #BBBBBB", "] c #979797", "^ c #8F8F8F", "/ c #919191", "( c #9C9C9C", "_ c #A9A9A9", ": c #BABABA", "< c #CBCBCB", "[ c #DCDCDC", "} c #E3E3E3", "| c #DBDBDB", "1 c #C8C8C8", "2 c #ADADAD", "3 c #8A8A8A", "4 c #959595", "5 c #EAEAEA", "6 c #F9F9F9", "7 c #ECECEC", "8 c #B3B3B3", "9 c #AFAFAF", "0 c #C6C6C6", "a c #DDDDDD", "b c #E5E5E5", "c c #ACACAC", "d c #818181", "e c #FAFAFA", "f c #F5F5F5", "g c #F6F6F6", "h c #F7F7F7", "i c #D5D5D5", "j c #B2B2B2", "k c #E0E0E0", "l c #B6B6B6", "m c #868686", "n c #D1D1D1", "o c #F8F8F8", "p c #E7E7E7", "q c #BEBEBE", "r c #D3D3D6", "s c #939393", "t c #C5C5C5", "u c #AEAEAE", "v c #FBFBFB", "w c #D8D8D8", "x c #FDFDFD", "y c #F1F1F1", "z c #E1E1E1", "A c #ABABAB", "B c #F4F4F4", "C c #FEFEFE", "D c #FCFCFC", "E c #E8E8E8", "F c #C4C4C4", "G c #F2F2F2", "H c #FFFFFF", "I c #E9E9E9", "J c #B1B1B1", "K c #EBEBEB", "L c #B4B4B4", "M c #F0F0F0", "N c #EFF1F1", "O c #C1C1C1", "P c #F3F3F3", "Q c #C3C0C3", "R c #EFEFEF", " ", "...................", "++++++@#$$$#%&+++++", "****=&-;>>,'@)!****", "~~~='{ ]^/(_:<)[~~~", "}}|1234,567%890)a}}", "ba-cd>efffgheij#[kb", "~ilmnohhfgghoopqrkb", "[;stohhooooooeo~#a~", "nu_hh6o6veveee6o[w~", "0(|fho6vxxxxvee6y=z", "{ABfhovxCCCCxDD6oEz", "jFGBgexCHHHCCDvvoGp", "9=yBhexCCHHCCxDv6fI", "JyyBhvxCHHHCCxDve6K", "LMGBhDCCHHHHHCDve6N", "{MGg6DCCHHHHHCDv6ey", "OPfoDCCHHHHHCDve6eG", "QPg6DCCHHHHHCDv6e6R"}; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/menuiconufcs.xpm0000644000175000017500000000013212106662425024332 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.335812455 30 ctime=1360750008.367811616 fluxbox-1.3.5/data/styles/arch/pixmaps/menuiconufcs.xpm0000644000175000017500000000132412106662425022361 0ustar00mgmg00000000000000/* XPM */ static char * menuiconufcs_xpm[] = { "19 19 15 1", " c #A7A7A7", ". c #BCBCBC", "+ c #D3D3D3", "@ c #DFDFDF", "# c #E2E2E2", "$ c #E3E3E3", "% c #E5E5E5", "& c #E7E7E7", "* c #E8E8E8", "= c #E9E9E9", "- c #454545", "; c #E6E6E6", "> c #E4E4E4", ", c #E1E1E1", "' c #DCDCDC", " ", "...................", "+++++++++++++++++++", "@@@@@@@@@@@@@@@@@@@", "###################", "$$$$$$$$$$$$$$$$$$$", "%%%%%%%%%%%%%%%%%%%", "&&&&&&&&&&&&&&&&&&&", "*******************", "=======-----=======", "*******************", "*******-----*******", "*******************", ";;;;;;;;;;;;;;;;;;;", ">>>>>>>>>>>>>>>>>>>", ",,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,", "'''''''''''''''''''"}; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/maxufcs.xpm0000644000175000017500000000013212106662425023302 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.335812455 30 ctime=1360750008.367811616 fluxbox-1.3.5/data/styles/arch/pixmaps/maxufcs.xpm0000644000175000017500000000331312106662425021331 0ustar00mgmg00000000000000/* XPM */ static char * maxufcs_xpm[] = { "19 19 83 1", " c #A7A7A7", ". c #BCBCBC", "+ c #D3D3D3", "@ c #D0D0D0", "# c #CDCDCD", "$ c #CACACA", "% c #CFCFCF", "& c #D2D2D2", "* c #DFDFDF", "= c #DADADA", "- c #C9C9C9", "; c #C2C2C2", "> c #C0C0C0", ", c #C3C3C3", "' c #CCCCCC", ") c #D6D6D6", "! c #D9D9D9", "~ c #E2E2E2", "{ c #BBBBBB", "] c #979797", "^ c #8F8F8F", "/ c #919191", "( c #9C9C9C", "_ c #A9A9A9", ": c #BABABA", "< c #CBCBCB", "[ c #DCDCDC", "} c #E3E3E3", "| c #DBDBDB", "1 c #C8C8C8", "2 c #ADADAD", "3 c #8A8A8A", "4 c #959595", "5 c #EAEAEA", "6 c #F9F9F9", "7 c #ECECEC", "8 c #B3B3B3", "9 c #AFAFAF", "0 c #C6C6C6", "a c #DDDDDD", "b c #E5E5E5", "c c #ACACAC", "d c #818181", "e c #FAFAFA", "f c #F5F5F5", "g c #F6F6F6", "h c #F7F7F7", "i c #D5D5D5", "j c #B2B2B2", "k c #E0E0E0", "l c #B6B6B6", "m c #868686", "n c #D1D1D1", "o c #F8F8F8", "p c #E7E7E7", "q c #BEBEBE", "r c #D3D3D6", "s c #939393", "t c #C5C5C5", "u c #AEAEAE", "v c #FBFBFB", "w c #D8D8D8", "x c #FDFDFD", "y c #F1F1F1", "z c #E1E1E1", "A c #ABABAB", "B c #F4F4F4", "C c #FEFEFE", "D c #FCFCFC", "E c #E8E8E8", "F c #C4C4C4", "G c #F2F2F2", "H c #FFFFFF", "I c #E9E9E9", "J c #B1B1B1", "K c #EBEBEB", "L c #B4B4B4", "M c #F0F0F0", "N c #EFF1F1", "O c #C1C1C1", "P c #F3F3F3", "Q c #C3C0C3", "R c #EFEFEF", " ", "...................", "++++++@#$$$#%&+++++", "****=&-;>>,'@)!****", "~~~='{ ]^/(_:<)[~~~", "}}|1234,567%890)a}}", "ba-cd>efffgheij#[kb", "~ilmnohhfgghoopqrkb", "[;stohhooooooeo~#a~", "nu_hh6o6veveee6o[w~", "0(|fho6vxxxxvee6y=z", "{ABfhovxCCCCxDD6oEz", "jFGBgexCHHHCCDvvoGp", "9=yBhexCCHHCCxDv6fI", "JyyBhvxCHHHCCxDve6K", "LMGBhDCCHHHHHCDve6N", "{MGg6DCCHHHHHCDv6ey", "OPfoDCCHHHHHCDve6eG", "QPg6DCCHHHHHCDv6e6R"}; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/gripfcs.xpm0000644000175000017500000000013212106662425023271 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.331812455 30 ctime=1360750008.367811616 fluxbox-1.3.5/data/styles/arch/pixmaps/gripfcs.xpm0000644000175000017500000001217012106662425021321 0ustar00mgmg00000000000000/* XPM */ static char * gripfcs_xpm[] = { "19 19 274 2", " c #A4A4A5", ". c #A1A2A1", "+ c #9F9F9F", "@ c #9D9D9D", "# c #9B9B9B", "$ c #9A9A99", "% c #999999", "& c #979898", "* c #979897", "= c #989897", "- c #989898", "; c #989998", "> c #9A9999", ", c #9A9A9B", "' c #9C9D9D", ") c #9E9F9E", "! c #A1A1A1", "~ c #A4A4A3", "{ c #A6A7A7", "] c #9D9D9E", "^ c #9B9B9A", "/ c #969695", "( c #949494", "_ c #939392", ": c #919191", "< c #919091", "[ c #8F9090", "} c #909090", "| c #929292", "1 c #959595", "2 c #999A9A", "3 c #9C9C9D", "4 c #A0A0A0", "5 c #979797", "6 c #939493", "7 c #919291", "8 c #8F8E8F", "9 c #8C8D8D", "0 c #8B8B8B", "a c #8A898A", "b c #898989", "c c #888988", "d c #898889", "e c #8A8A89", "f c #8A8A8B", "g c #8C8D8C", "h c #8E8E8E", "i c #909091", "j c #939393", "k c #969596", "l c #919090", "m c #8D8D8D", "n c #8A8B8A", "o c #878787", "p c #868586", "q c #838384", "r c #838383", "s c #828181", "t c #818181", "u c #818182", "v c #828282", "w c #848585", "x c #8C8C8C", "y c #8F8F90", "z c #89898A", "A c #868686", "B c #808080", "C c #7F7E7E", "D c #7C7D7C", "E c #7B7B7B", "F c #7A7A7A", "G c #7A797A", "H c #7B7B7A", "I c #7C7C7C", "J c #7D7E7E", "K c #828283", "L c #858586", "M c #80807F", "N c #797A79", "O c #777777", "P c #767575", "Q c #747374", "R c #737373", "S c #727272", "T c #727273", "U c #757575", "V c #767776", "W c #797878", "X c #7C7B7C", "Y c #7E7F7E", "Z c #828182", "` c #858686", " . c #7D7C7C", ".. c #787878", "+. c #767675", "@. c #707070", "#. c #6E6E6E", "$. c #6C6D6D", "%. c #6B6B6B", "&. c #6A6A6B", "*. c #6C6C6B", "=. c #6E6D6D", "-. c #6F706F", ";. c #727172", ">. c #747575", ",. c #787877", "'. c #7C7B7B", "). c #807F7F", "!. c #767676", "~. c #6F6F6F", "{. c #696969", "]. c #676666", "^. c #656565", "/. c #646464", "(. c #636363", "_. c #646363", ":. c #636464", "<. c #656465", "[. c #666666", "}. c #696868", "|. c #717171", "1. c #797979", "2. c #6C6C6C", "3. c #686868", "4. c #646565", "5. c #626262", "6. c #5F605F", "7. c #5D5D5E", "8. c #5C5C5C", "9. c #5B5C5C", "0. c #5C5B5C", "a. c #5E5D5D", "b. c #5F5F5F", "c. c #616161", "d. c #676767", "e. c #747373", "f. c #6A6A6A", "g. c #656666", "h. c #616261", "i. c #5E5E5E", "j. c #5B5B5B", "k. c #585858", "l. c #565756", "m. c #555555", "n. c #545454", "o. c #565656", "p. c #575857", "q. c #5A5A5A", "r. c #5D5D5D", "s. c #606061", "t. c #646564", "u. c #686969", "v. c #606060", "w. c #575858", "x. c #515252", "y. c #4F4F4F", "z. c #4D4D4E", "A. c #4D4D4D", "B. c #4E4F4F", "C. c #505050", "D. c #535354", "E. c #565657", "F. c #5A5A5B", "G. c #5E5E5F", "H. c #686867", "I. c #5A5A59", "J. c #515151", "K. c #4A4A4B", "L. c #484847", "M. c #464647", "N. c #464546", "O. c #454545", "P. c #474747", "Q. c #4A4949", "R. c #4C4C4C", "S. c #585958", "T. c #636262", "U. c #5A5959", "V. c #4A4A4A", "W. c #474647", "X. c #434444", "Y. c #414041", "Z. c #3F3F3E", "`. c #3E3E3E", " + c #404140", ".+ c #424243", "++ c #494A49", "@+ c #4E4D4E", "#+ c #535353", "$+ c #585757", "%+ c #545455", "&+ c #4F4E4E", "*+ c #454445", "=+ c #3D3D3D", "-+ c #3A393A", ";+ c #383838", ">+ c #373636", ",+ c #373637", "'+ c #373837", ")+ c #393939", "!+ c #3C3C3C", "~+ c #3F3F3F", "{+ c #444344", "]+ c #484849", "^+ c #4E4D4D", "/+ c #595958", "(+ c #4A4A49", "_+ c #444444", ":+ c #3A3B3A", "<+ c #363636", "[+ c #333233", "}+ c #303031", "|+ c #2F2F2F", "1+ c #30302F", "2+ c #323232", "3+ c #353636", "4+ c #434343", "5+ c #484848", "6+ c #4E4E4E", "7+ c #4B4B4B", "8+ c #464545", "9+ c #3A3A39", "0+ c #343434", "a+ c #303030", "b+ c #2C2C2C", "c+ c #292929", "d+ c #272827", "e+ c #282727", "f+ c #282928", "g+ c #2B2B2B", "h+ c #333333", "i+ c #3E3D3E", "j+ c #424141", "k+ c #3B3B3B", "l+ c #353435", "m+ c #292A2A", "n+ c #252626", "o+ c #222222", "p+ c #202020", "q+ c #222122", "r+ c #242424", "s+ c #2E2E2D", "t+ c #343333", "u+ c #393A39", "v+ c #40403F", "w+ c #464646", "x+ c #4D4C4D", "y+ c #373737", "z+ c #313031", "A+ c #2B2A2B", "B+ c #242525", "C+ c #1B1C1C", "D+ c #191918", "E+ c #191819", "F+ c #1A1A1B", "G+ c #1F1E1E", "H+ c #232323", "I+ c #353635", "J+ c #3C3D3C", "K+ c #424242", "L+ c #343534", "M+ c #2E2D2E", "N+ c #262626", "O+ c #1A1A1A", "P+ c #151515", "Q+ c #121112", "R+ c #111111", "S+ c #141414", "T+ c #181819", "U+ c #1E1F1E", "V+ c #252524", "W+ c #2C2C2B", "X+ c #39393A", "Y+ c #414140", " . + @ # $ % & * = - ; > , ' ) ! ~ { ", "] ^ - / ( _ : < [ } } : | ( 1 & 2 3 4 ", "5 6 7 8 9 0 a b c d b e f g h i j k % ", "l m n o p q r s t t u v q w o b x y _ ", "z A r B C D E F F G F H I J B K L b x ", "r M I N O P Q R S S T R U V W X Y Z ` ", " ...+.T @.#.$.%.%.&.%.*.=.-.;.>.,.'.).", "!.S ~.*.{.].^./.(._.:.<.[.}.%.#.|.U 1.", "@.2.3.4.5.6.7.8.9.0.8.a.b.c./.d.%.~.e.", "f.g.h.i.j.k.l.m.n.n.m.o.p.q.r.s.t.u.=.", "/.v.j.w.n.x.y.z.A.A.A.B.C.D.E.F.G.(.H.", "b.I.m.J.A.K.L.M.N.O.N.P.Q.R.C.n.S.7.T.", "U.n.y.V.W.X.Y.Z.`.`.`. +.+N.++@+#+$+7.", "%+&+Q.*+ +=+-+;+>+,+'+)+!+~+{+]+^+#+/+", "y.(+_+~+:+<+[+}+|+|+1+2+3+)+=+4+5+6+n.", "7+8+~+9+0+a+b+c+d+e+f+g+|+h+;+i+X.V.C.", "5+j+k+l+|+m+n+o+p+p+q+r+c+s+t+u+v+w+x+", "O.`.y+z+A+B+p+C+D+E+F+G+H+c+|+I+J+4+V.", "K+k+L+M+N+p+O+P+Q+R+S+T+U+V+W+[+X+Y+5+"}; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/closepr.xpm0000644000175000017500000000013212106662425023303 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.331812455 30 ctime=1360750008.367811616 fluxbox-1.3.5/data/styles/arch/pixmaps/closepr.xpm0000644000175000017500000000335112106662425021334 0ustar00mgmg00000000000000/* XPM */ static char * closepr_xpm[] = { "19 19 85 1", " c #A7A7A7", ". c #BCBCBC", "+ c #D3D3D3", "@ c #D0D0D0", "# c #CDCDCD", "$ c #CACACA", "% c #CFCFCF", "& c #D2D2D2", "* c #DFDFDF", "= c #DADADA", "- c #C9C9C9", "; c #C2C2C2", "> c #C0C0C0", ", c #C3C3C3", "' c #CCCCCC", ") c #D6D6D6", "! c #D9D9D9", "~ c #E2E2E2", "{ c #BBBBBB", "] c #979797", "^ c #8F8F8F", "/ c #919191", "( c #9C9C9C", "_ c #A9A9A9", ": c #BABABA", "< c #CBCBCB", "[ c #DCDCDC", "} c #E3E3E3", "| c #DBDBDB", "1 c #C8C8C8", "2 c #ADADAD", "3 c #8A8A8A", "4 c #959595", "5 c #EAEAEA", "6 c #F9F9F9", "7 c #ECECEC", "8 c #B3B3B3", "9 c #AFAFAF", "0 c #C6C6C6", "a c #DDDDDD", "b c #E5E5E5", "c c #ACACAC", "d c #818181", "e c #FAFAFA", "f c #F5F5F5", "g c #F6F6F6", "h c #F7F7F7", "i c #D5D5D5", "j c #B2B2B2", "k c #E0E0E0", "l c #B6B6B6", "m c #868686", "n c #D1D1D1", "o c #F8F8F8", "p c #E7E7E7", "q c #BEBEBE", "r c #D3D3D6", "s c #939393", "t c #C5C5C5", "u c #F3F3F3", "v c #F4F4F4", "w c #AEAEAE", "x c #F1F1F1", "y c #E9E9E9", "z c #F0F0F0", "A c #F2F2F2", "B c #D8D8D8", "C c #000000", "D c #E8E8E8", "E c #E1E1E1", "F c #ABABAB", "G c #C4C4C4", "H c #EFEFEF", "I c #D7D7D7", "J c #E4E4E4", "K c #FBFBFB", "L c #B1B1B1", "M c #EBEBEB", "N c #B4B4B4", "O c #EEEEEE", "P c #EFF1F1", "Q c #C1C1C1", "R c #C3C0C3", "S c #FCFCFC", "T c #FDFDFD", " ", "...................", "++++++@#$$$#%&+++++", "****=&-;>>,'@)!****", "~~~='{ ]^/(_:<)[~~~", "}}|1234,567%890)a}}", "ba-cd>efffgheij#[kb", "~ilmnoggfggghopqrkb", "[;sthfuvfgfvvoh~#a~", "nw_hfx5yzAz57Aho[B~", "0(|vu5CC}D}CC7gox=E", "{FvvuDCCC[CCC7oooDE", "jGAvuH}CCICCJxoKoAp", "9=xvfAD[)CI[yfeK6fy", "Lxxvvz}CCICCJA6Ke6M", "NzAuu7CCCaCCCOoee6P", "{zAffOCCb5bCCzoe6ex", "QufoegzHvhvHzv6e6eA", "Rug6KSeKSTSKeee6e6H"}; fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/Makefile.in0000644000175000017500000000013112106662603023150 xustar000000000000000030 mtime=1360749955.327811956 29 atime=1360750003.18781165 30 ctime=1360750008.371811616 fluxbox-1.3.5/data/styles/arch/pixmaps/Makefile.in0000644000175000017500000003177212106662603021212 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(srcdir)/../../Makefile.include $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in subdir = data/styles/arch/pixmaps ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(styledir)" DATA = $(style_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ styledir = $(pkgdatadir)/styles/arch/pixmaps style_DATA = closepr.xpm gripfcs.xpm maxufcs.xpm menuiconufcs.xpm \ minufcs.xpm shadepr.xpm stickpr.xpm stuckufcs.xpm unselected.xpm \ unshadeufcs.xpm bullet.xpm closeufcs.xpm maxfcs.xpm \ menuiconfcs.xpm minfcs.xpm selected.xpm shadeufcs.xpm \ stickufcs.xpm tbarfcs.xpm unshadefcs.xpm closefcs.xpm \ frame.xpm maxpr.xpm menuiconpr.xpm minpr.xpm shadefcs.xpm \ stickfcs.xpm stuckfcs.xpm tbarufcs.xpm unshadepr.xpm MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = $(style_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/../../Makefile.include $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/styles/arch/pixmaps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/styles/arch/pixmaps/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(srcdir)/../../Makefile.include: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-styleDATA: $(style_DATA) @$(NORMAL_INSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(styledir)'"; \ $(MKDIR_P) "$(DESTDIR)$(styledir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(styledir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(styledir)" || exit $$?; \ done uninstall-styleDATA: @$(NORMAL_UNINSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(styledir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(styledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-styleDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-styleDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-strip uninstall-am .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distclean-local distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip install-styleDATA \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-hook \ uninstall-styleDATA uninstall-hook: rmdir $(DESTDIR)$(styledir) distclean-local: rm -f *\~ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/data/styles/arch/pixmaps/PaxHeaders.25974/Makefile.am0000644000175000017500000000013112106662425023141 xustar000000000000000030 mtime=1360749845.875812656 29 atime=1360749853.18381261 30 ctime=1360750008.371811616 fluxbox-1.3.5/data/styles/arch/pixmaps/Makefile.am0000644000175000017500000000077012106662425021175 0ustar00mgmg00000000000000styledir = $(pkgdatadir)/styles/arch/pixmaps style_DATA = closepr.xpm gripfcs.xpm maxufcs.xpm menuiconufcs.xpm \ minufcs.xpm shadepr.xpm stickpr.xpm stuckufcs.xpm unselected.xpm \ unshadeufcs.xpm bullet.xpm closeufcs.xpm maxfcs.xpm \ menuiconfcs.xpm minfcs.xpm selected.xpm shadeufcs.xpm \ stickufcs.xpm tbarfcs.xpm unshadefcs.xpm closefcs.xpm \ frame.xpm maxpr.xpm menuiconpr.xpm minpr.xpm shadefcs.xpm \ stickfcs.xpm stuckfcs.xpm tbarufcs.xpm unshadepr.xpm include ../../Makefile.include fluxbox-1.3.5/data/styles/arch/PaxHeaders.25974/theme.cfg0000644000175000017500000000013212106662425021210 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.295812455 30 ctime=1360750008.371811616 fluxbox-1.3.5/data/styles/arch/theme.cfg0000644000175000017500000001601012106662425017235 0ustar00mgmg00000000000000#This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License. #(http://creativecommons.org/licenses/by-sa/3.0/de/deed.en) ############################################################################### # # name: arch # made: tenner # date: 30-11-2006 # http://www.tenr.de # ############################################################## BACKGROUND ###### background: flat background.color: #D5D6DB ############################################################## FONTS ########## menu.frame.font: sans-9:bold menu.title.font: sans-10:bold menu.title.font.effect: shadow menu.title.font.shadow.color: #c8c8c8 toolbar.clock.font: sans-9:bold toolbar.workspace.font: tahoma-10:bold toolbar.iconbar.focused.font: sans-8:bold toolbar.iconbar.focused.font.effect: shadow toolbar.iconbar.focused.font.shadow.color: #c8c8c8 toolbar.iconbar.unfocused.font: sans-8 window.font: sans-8 window.font.effect: shadow window.font.shadow.color: #c8c8c8 ############################################################## MENU ########### menu.bevelWidth: 1 #menu.itemHeight: 35 #menu.titleHeight: 21 menu.borderColor: #3d3d3d menu.borderWidth: 1 menu.bullet.position: Right menu.bullet: triangle menu.submenu.pixmap: menu.hilite.submenu.pixmap: menu.selected.pixmap: menu.hilite.selected.pixmap: menu.unselected.pixmap: menu.hilite.unselected.pixmap: menu.title: flat menu.title.pixmap: tbarufcs.xpm menu.title.justify: center menu.title.color: #E3E3E3 menu.title.colorTo: #E3E3E3 menu.title.textColor: #175996 menu.frame: flat menu.frame.pixmap: menu.frame.justify: left menu.frame.color: #f9f9f9 menu.frame.colorTo: #f9f9f9 menu.frame.textColor: #3f3f3f menu.frame.disableColor: #579fe1 menu.hilite: flat menu.hilite.pixmap: menu.hilite.color: #668bae menu.hilite.colorTo: #668bae menu.hilite.textColor: #e7e7e7 ############################################################## TOOLBAR ######## toolbar.bevelWidth: 0 toolbar.borderWidth: 1 toolbar.borderColor: #3d3d3d toolbar.height: 19 toolbar.justify: center toolbar: flat toolbar.pixmap: tbarufcs.xpm toolbar.color: #E3E3E3 toolbar.colorTo: #E3E3E3 toolbar.clock: flat toolbar.clock.pixmap: tbarufcs.xpm toolbar.clock.justify: center toolbar.clock.color: #E3E3E3 toolbar.clock.colorTo: #E3E3E3 toolbar.clock.textColor: #3f3f3f toolbar.workspace: flat toolbar.workspace.pixmap: tbarufcs.xpm toolbar.workspace.justify: Center toolbar.workspace.color: #E3E3E3 toolbar.workspace.colorTo: #E3E3E3 toolbar.workspace.textColor: #3f3f3f toolbar.button: flat toolbar.button.pixmap: tbarufcs.xpm toolbar.button.color: #E3E3E3 toolbar.button.colorTo: #E3E3E3 toolbar.button.picColor: #3f3f3f toolbar.button.pressed: flat toolbar.button.pressed.pixmap: tbarufcs.xpm toolbar.button.pressed.color: #E3E3E3 toolbar.button.pressed.colorTo: #E3E3E3 toolbar.button.pressed.picColor: #000000 toolbar.iconbar.empty: flat toolbar.iconbar.empty.pixmap: tbarufcs.xpm toolbar.iconbar.empty.color: #E3E3E3 toolbar.iconbar.empty.colorTo: #E3E3E3 toolbar.iconbar.focused.borderWidth: 1 toolbar.iconbar.focused.borderColor: #aeaeae toolbar.iconbar.focused: flat toolbar.iconbar.focused.pixmap: tbarfcs.xpm toolbar.iconbar.focused.color: #E3E3E3 toolbar.iconbar.focused.colorTo: #E3E3E3 toolbar.iconbar.focused.textColor: #175996 toolbar.iconbar.focused.justify: center toolbar.iconbar.unfocused.borderWidth: 1 toolbar.iconbar.unfocused.borderColor: #aeaeae toolbar.iconbar.unfocused: flat toolbar.iconbar.unfocused.pixmap: tbarufcs.xpm toolbar.iconbar.unfocused.color: #E3E3E3 toolbar.iconbar.unfocused.colorTo: #E3E3E3 toolbar.iconbar.unfocused.textColor: #919191 toolbar.iconbar.unfocused.justify: center ############################################################## WINDOW ######### window.bevelWidth: 0 window.shade: false window.borderWidth: 1 window.borderColor: #3d3d3d window.justify: Center window.title.height: 19 window.title.focus: flat window.title.focus.pixmap: tbarfcs.xpm window.title.focus.color: #E3E3E3 window.title.focus.colorTo: #E3E3E3 window.title.unfocus: flat window.title.unfocus.pixmap: tbarufcs.xpm window.title.unfocus.color: #E3E3E3 window.title.unfocus.colorTo: #E3E3E3 window.label.focus: flat window.label.focus.pixmap: tbarfcs.xpm window.label.focus.color: #E3E3E3 window.label.focus.colorTo: #E3E3E3 window.label.focus.textColor: #175996 window.label.unfocus: flat window.label.unfocus.pixmap: tbarufcs.xpm window.label.unfocus.color: #E3E3E3 window.label.unfocus.colorTo: #E3E3E3 window.label.unfocus.textColor: #919191 window.button.focus: flat window.button.focus.color: #E3E3E3 window.button.focus.colorTo: #E3E3E3 window.button.focus.picColor: #000000 window.button.unfocus: flat window.button.unfocus.Color: #E3E3E3 window.button.unfocus.ColorTo: #E3E3E3 window.button.unfocus.picColor: #000000 window.button.pressed: flat window.button.pressed.color: #E3E3E3 window.button.pressed.colorTo: #E3E3E3 window.button.pressed.picColor: #000000 window.shade.pixmap: shadefcs.xpm window.shade.unfocus.pixmap: shadeufcs.xpm window.shade.pressed.pixmap: shadepr.xpm window.unshade.pixmap: unshadefcs.xpm window.unshade.unfocus.pixmap: unshadeufcs.xpm window.unshade.pressed.pixmap: unshadepr.xpm window.menuicon.pixmap: menuiconfcs.xpm window.menuicon.unfocus.pixmap: menuiconufcs.xpm window.menuicon.pressed.pixmap: menuiconpr.xpm window.close.pixmap: closefcs.xpm window.close.unfocus.pixmap: closeufcs.xpm window.close.pressed.pixmap: closepr.xpm window.iconify.pixmap: minfcs.xpm window.iconify.unfocus.pixmap: minufcs.xpm window.iconify.pressed.pixmap: minpr.xpm window.maximize.pixmap: maxfcs.xpm window.maximize.unfocus.pixmap: maxufcs.xpm window.maximize.pressed.pixmap: maxpr.xpm window.stick.pixmap: stickfcs.xpm window.stick.unfocus.pixmap: stickufcs.xpm window.stick.pressed.pixmap: stickpr.xpm window.stuck.pixmap: stuckfcs.xpm window.stuck.unfocus.pixmap: stuckufcs.xpm window.stuck.pressed.pixmap: stuckufcs.xpm window.handle.focus: flat window.handle.focus.pixmap: tbarfcs.xpm window.handle.focus.color: #E3E3E3 window.handle.focus.colorTo: #E3E3E3 window.handle.unfocus: flat window.handle.unfocus.pixmap: tbarufcs.xpm window.handle.unfocus.color: #E3E3E3 window.handle.unfocus.colorTo: #E3E3E3 window.handleWidth: 3 window.grip.focus: flat window.grip.focus.pixmap: gripfcs.xpm window.grip.focus.color: #E3E3E3 window.grip.focus.colorTo: #E3E3E3 window.grip.unfocus: flat window.grip.unfocus.pixmap: tbarufcs.xpm window.grip.unfocus.color: #E3E3E3 window.grip.unfocus.colorTo: #E3E3E3 ############################################################################### # EOF fluxbox-1.3.5/data/styles/arch/PaxHeaders.25974/Makefile.in0000644000175000017500000000013112106662603021467 xustar000000000000000030 mtime=1360749955.303811956 29 atime=1360750003.16781165 30 ctime=1360750008.371811616 fluxbox-1.3.5/data/styles/arch/Makefile.in0000644000175000017500000004712312106662603017526 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(srcdir)/../Makefile.include $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in subdir = data/styles/arch ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(styledir)" DATA = $(style_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = pixmaps styledir = $(pkgdatadir)/styles/arch style_DATA = theme.cfg MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = $(style_DATA) all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/../Makefile.include $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/styles/arch/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/styles/arch/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(srcdir)/../Makefile.include: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-styleDATA: $(style_DATA) @$(NORMAL_INSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(styledir)'"; \ $(MKDIR_P) "$(DESTDIR)$(styledir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(styledir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(styledir)" || exit $$?; \ done uninstall-styleDATA: @$(NORMAL_UNINSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(styledir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(styledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-styleDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-styleDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive uninstall-am .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic ctags \ ctags-recursive distclean distclean-generic distclean-local \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip install-styleDATA installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-hook uninstall-styleDATA uninstall-hook: rmdir $(DESTDIR)$(styledir) distclean-local: rm -f *\~ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/data/styles/arch/PaxHeaders.25974/Makefile.am0000644000175000017500000000013112106662425021460 xustar000000000000000030 mtime=1360749845.875812656 29 atime=1360749853.15981261 30 ctime=1360750008.375811616 fluxbox-1.3.5/data/styles/arch/Makefile.am0000644000175000017500000000015212106662425017506 0ustar00mgmg00000000000000SUBDIRS=pixmaps styledir = $(pkgdatadir)/styles/arch style_DATA = theme.cfg include ../Makefile.include fluxbox-1.3.5/data/styles/PaxHeaders.25974/zimek_green0000644000175000017500000000013212106662667020742 xustar000000000000000030 mtime=1360750007.943811619 30 atime=1360750008.375811616 30 ctime=1360750008.375811616 fluxbox-1.3.5/data/styles/zimek_green/0000755000175000017500000000000012106662667017046 5ustar00mgmg00000000000000fluxbox-1.3.5/data/styles/zimek_green/PaxHeaders.25974/theme.cfg0000644000175000017500000000013212106662425022572 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.259812456 30 ctime=1360750008.375811616 fluxbox-1.3.5/data/styles/zimek_green/theme.cfg0000644000175000017500000001225012106662425020621 0ustar00mgmg00000000000000#This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License. #(http://creativecommons.org/licenses/by-sa/3.0/de/deed.en) ############################################################################### # # name: zimek_green # made: tenner # date: 18-09-2007 # http://www.tenr.de # ############################################################## BACKGROUND ##### background: flat background.color: #4A5241 background.colorTo: #4A5241 ############################################################## FONTS ########## menu.frame.font: sans-9:bold menu.title.font: sans-10:bold toolbar.clock.font: sans-9:bold toolbar.workspace.font: sans-10:bold toolbar.iconbar.focused.font: sans-8:bold toolbar.iconbar.unfocused.font: sans-8 window.font: sans-8 ############################################################## MENU ########### menu.bevelWidth: 1 #menu.itemHeight: 35 #menu.titleHeight: 21 menu.borderColor: #63634A menu.borderWidth: 1 menu.bullet: triangle menu.bullet.position: Right menu.frame.underlineColor: #e7e7e7 menu.title: flat gradient vertical menu.title.justify: center menu.title.color: #ADD07E menu.title.colorTo: #718541 menu.title.textColor: #e7e7e7 menu.frame: flat gradient crossdiagonal menu.frame.justify: left menu.frame.color: #F0EFE9 menu.frame.colorTo: #BFBEB2 menu.frame.textColor: #63634A menu.frame.disableColor: #5E873A menu.hilite: flat gradient vertical menu.hilite.color: #98977B menu.hilite.colorTo: #98977B menu.hilite.textColor: #e7e7e7 ############################################################## TOOLBAR ######## toolbar.bevelWidth: 0 toolbar.borderWidth: 1 toolbar.borderColor: #63634A toolbar.height: 21 toolbar.justify: center toolbar: flat gradient vertical toolbar.pixmap: toolbar.color: #F0EFE9 toolbar.colorTo: #BFBEB2 toolbar.clock: parentrelative toolbar.clock.justify: center toolbar.clock.color: # toolbar.clock.colorTo: # toolbar.clock.textColor: #63634A toolbar.workspace: parentrelative toolbar.workspace.justify: Center toolbar.workspace.color: # toolbar.workspace.colorTo: # toolbar.workspace.textColor: #63634A toolbar.button: parentrelative toolbar.button.color: # toolbar.button.colorTo: # toolbar.button.picColor: #63634A toolbar.button.pressed: parentrelative toolbar.button.pressed.color: # toolbar.button.pressed.colorTo: # toolbar.button.pressed.picColor: #000000 toolbar.iconbar.borderWidth: 1 toolbar.iconbar.borderColor: #63634A toolbar.iconbar.empty: parentrelative toolbar.iconbar.empty.color: # toolbar.iconbar.empty.colorTo: # toolbar.iconbar.focused.borderWidth: 1 toolbar.iconbar.focused.borderColor: #63634A toolbar.iconbar.focused: flat gradient vertical toolbar.iconbar.focused.color: #ADD07E toolbar.iconbar.focused.colorTo: #718541 toolbar.iconbar.focused.textColor: #e7e7e7 toolbar.iconbar.focused.justify: center toolbar.iconbar.unfocused.borderWidth: 1 toolbar.iconbar.unfocused.borderColor: #63634A toolbar.iconbar.unfocused: flat gradient vertical toolbar.iconbar.unfocused.color: #F0EFE9 toolbar.iconbar.unfocused.colorTo: #BFBEB2 toolbar.iconbar.unfocused.textColor: #63634A toolbar.iconbar.unfocused.justify: center ############################################################## WINDOW ######### window.roundCorners: TopRight TopLeft window.bevelWidth: 4 window.shade: false window.borderWidth: 1 window.borderColor: #63634A window.justify: Center window.title.height: 21 window.title.focus: flat gradient vertical window.title.focus.color: #ADD07E window.title.focus.colorTo: #718541 window.title.unfocus: flat gradient vertical window.title.unfocus.color: #F0EFE9 window.title.unfocus.colorTo: #BFBEB2 window.label.focus: parentrelative window.label.focus.color: # window.label.focus.colorTo: # window.label.focus.textColor: #e7e7e7 window.label.unfocus: parentrelative window.label.unfocus.color: # window.label.unfocus.colorTo: # window.label.unfocus.textColor: #63634A window.button.focus: parentrelative window.button.focus.color: # window.button.focus.colorTo: # window.button.focus.picColor: #ffffff window.button.unfocus: parentrelative window.button.unfocus.Color: # window.button.unfocus.ColorTo: # window.button.unfocus.picColor: #63634A window.button.pressed: parentrelative window.button.pressed.color: # window.button.pressed.colorTo: # window.button.pressed.picColor: #000000 window.handle.focus: flat window.handle.focus.color: #ADD07E window.handle.focus.colorTo: #ADD07E window.handle.unfocus: flat window.handle.unfocus.color: #F0EFE9 window.handle.unfocus.colorTo: #F0EFE9 window.handleWidth: 2 window.grip.focus: flat window.grip.focus.color: #63634A window.grip.focus.colorTo: #63634A window.grip.unfocus: flat window.grip.unfocus.color: #63634A window.grip.unfocus.colorTo: #63634A ############################################################################### # EOF fluxbox-1.3.5/data/styles/zimek_green/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603023052 xustar000000000000000030 mtime=1360749955.579811954 30 atime=1360750003.239811649 30 ctime=1360750008.375811616 fluxbox-1.3.5/data/styles/zimek_green/Makefile.in0000644000175000017500000003113212106662603021101 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(srcdir)/../Makefile.include $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in subdir = data/styles/zimek_green ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(styledir)" DATA = $(style_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ styledir = $(pkgdatadir)/styles/zimek_green style_DATA = theme.cfg MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = $(style_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/../Makefile.include $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/styles/zimek_green/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/styles/zimek_green/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(srcdir)/../Makefile.include: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-styleDATA: $(style_DATA) @$(NORMAL_INSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(styledir)'"; \ $(MKDIR_P) "$(DESTDIR)$(styledir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(styledir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(styledir)" || exit $$?; \ done uninstall-styleDATA: @$(NORMAL_UNINSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(styledir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(styledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-styleDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-styleDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-strip uninstall-am .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distclean-local distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip install-styleDATA \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-hook \ uninstall-styleDATA uninstall-hook: rmdir $(DESTDIR)$(styledir) distclean-local: rm -f *\~ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/data/styles/zimek_green/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425023043 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749853.435812608 30 ctime=1360750008.379811616 fluxbox-1.3.5/data/styles/zimek_green/Makefile.am0000644000175000017500000000014112106662425021066 0ustar00mgmg00000000000000styledir = $(pkgdatadir)/styles/zimek_green style_DATA = theme.cfg include ../Makefile.include fluxbox-1.3.5/data/styles/PaxHeaders.25974/zimek_darkblue0000644000175000017500000000013212106662667021433 xustar000000000000000030 mtime=1360750007.911811619 30 atime=1360750008.379811616 30 ctime=1360750008.379811616 fluxbox-1.3.5/data/styles/zimek_darkblue/0000755000175000017500000000000012106662667017537 5ustar00mgmg00000000000000fluxbox-1.3.5/data/styles/zimek_darkblue/PaxHeaders.25974/theme.cfg0000644000175000017500000000013212106662425023263 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.223812456 30 ctime=1360750008.379811616 fluxbox-1.3.5/data/styles/zimek_darkblue/theme.cfg0000644000175000017500000001230412106662425021312 0ustar00mgmg00000000000000#This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License. #(http://creativecommons.org/licenses/by-sa/3.0/de/deed.en) ############################################################################### # # name: zimek_darkblue # made: tenner # date: 18-09-2007 # http://www.tenr.de # ############################################################## BACKGROUND ##### background: flat gradient elliptic background.color: #1C232E background.colorTo: #12233F ############################################################## FONTS ########## menu.frame.font: sans-9:bold menu.title.font: sans-10:bold toolbar.clock.font: sans-9:bold toolbar.workspace.font: sans-10:bold toolbar.iconbar.focused.font: sans-8:bold toolbar.iconbar.unfocused.font: sans-8 window.font: sans-8 ############################################################## MENU ########### menu.bevelWidth: 1 #menu.itemHeight: 35 #menu.titleHeight: 21 menu.borderColor: #2B2B2B menu.borderWidth: 1 menu.bullet: triangle menu.bullet.position: Right menu.frame.underlineColor: #F4F4F4 menu.title: flat gradient vertical menu.title.justify: center menu.title.color: #4E5A6A menu.title.colorTo: #010508 menu.title.textColor: #B6B8C1 menu.frame: flat gradient crossdiagonal menu.frame.justify: left menu.frame.color: #4E5A6A menu.frame.colorTo: #010508 menu.frame.textColor: #ffffff menu.frame.disableColor: #90A2C8 menu.hilite: flat gradient pyramid menu.hilite.color: #010508 menu.hilite.colorTo: #65676B menu.hilite.textColor: #90A2C8 ############################################################## TOOLBAR ######## toolbar.bevelWidth: 0 toolbar.borderWidth: 1 toolbar.borderColor: #2B2B2B toolbar.height: 21 toolbar.justify: center toolbar: flat gradient vertical toolbar.pixmap: toolbar.color: #3C4552 toolbar.colorTo: #010508 toolbar.clock: parentrelative toolbar.clock.justify: center toolbar.clock.color: # toolbar.clock.colorTo: # toolbar.clock.textColor: #B6B8C1 toolbar.workspace: parentrelative toolbar.workspace.justify: Center toolbar.workspace.color: # toolbar.workspace.colorTo: # toolbar.workspace.textColor: #B6B8C1 toolbar.button: parentrelative toolbar.button.color: # toolbar.button.colorTo: # toolbar.button.picColor: #B6B8C1 toolbar.button.pressed: parentrelative toolbar.button.pressed.color: # toolbar.button.pressed.colorTo: # toolbar.button.pressed.picColor: #000000 toolbar.iconbar.borderWidth: 1 toolbar.iconbar.borderColor: #2B2B2B toolbar.iconbar.empty: parentrelative toolbar.iconbar.empty.color: # toolbar.iconbar.empty.colorTo: # toolbar.iconbar.focused.borderWidth: 1 toolbar.iconbar.focused.borderColor: #2B2B2B toolbar.iconbar.focused: flat gradient vertical toolbar.iconbar.focused.color: #4E5A6A toolbar.iconbar.focused.colorTo: #010508 toolbar.iconbar.focused.textColor: #B6B8C1 toolbar.iconbar.focused.justify: center toolbar.iconbar.unfocused.borderWidth: 1 toolbar.iconbar.unfocused.borderColor: #2B2B2B toolbar.iconbar.unfocused: flat gradient vertical toolbar.iconbar.unfocused.color: #3C4552 toolbar.iconbar.unfocused.colorTo: #010508 toolbar.iconbar.unfocused.textColor: #65676B toolbar.iconbar.unfocused.justify: center ############################################################## WINDOW ######### window.roundCorners: TopRight TopLeft window.bevelWidth: 4 window.shade: false window.borderWidth: 1 window.borderColor: #2B2B2B window.justify: Center window.title.height: 21 window.title.focus: flat gradient vertical window.title.focus.color: #4E5A6A window.title.focus.colorTo: #010508 window.title.unfocus: flat gradient vertical window.title.unfocus.color: #3C4552 window.title.unfocus.colorTo: #010508 window.label.focus: parentrelative window.label.focus.color: # window.label.focus.colorTo: # window.label.focus.textColor: #B6B8C1 window.label.unfocus: parentrelative window.label.unfocus.color: # window.label.unfocus.colorTo: # window.label.unfocus.textColor: #65676B window.button.focus: parentrelative window.button.focus.color: # window.button.focus.colorTo: # window.button.focus.picColor: #B6B8C1 window.button.unfocus: parentrelative window.button.unfocus.Color: # window.button.unfocus.ColorTo: # window.button.unfocus.picColor: #65676B window.button.pressed: parentrelative window.button.pressed.color: # window.button.pressed.colorTo: # window.button.pressed.picColor: #000000 window.handle.focus: gradient vertical window.handle.focus.color: #4E5A6A window.handle.focus.colorTo: #010508 window.handle.unfocus: gradient vertical window.handle.unfocus.color: #3C4552 window.handle.unfocus.colorTo: #010508 window.handleWidth: 2 window.grip.focus: raised window.grip.focus.color: #2B2B2B window.grip.focus.colorTo: #2B2B2B window.grip.unfocus: raised window.grip.unfocus.color: #2B2B2B window.grip.unfocus.colorTo: #2B2B2B ############################################################################### # EOF fluxbox-1.3.5/data/styles/zimek_darkblue/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603023543 xustar000000000000000030 mtime=1360749955.555811954 30 atime=1360750003.223811649 30 ctime=1360750008.379811616 fluxbox-1.3.5/data/styles/zimek_darkblue/Makefile.in0000644000175000017500000003114612106662603021577 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(srcdir)/../Makefile.include $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in subdir = data/styles/zimek_darkblue ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(styledir)" DATA = $(style_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ styledir = $(pkgdatadir)/styles/zimek_darkblue style_DATA = theme.cfg MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = $(style_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/../Makefile.include $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/styles/zimek_darkblue/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/styles/zimek_darkblue/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(srcdir)/../Makefile.include: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-styleDATA: $(style_DATA) @$(NORMAL_INSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(styledir)'"; \ $(MKDIR_P) "$(DESTDIR)$(styledir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(styledir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(styledir)" || exit $$?; \ done uninstall-styleDATA: @$(NORMAL_UNINSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(styledir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(styledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-styleDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-styleDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-strip uninstall-am .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distclean-local distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip install-styleDATA \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-hook \ uninstall-styleDATA uninstall-hook: rmdir $(DESTDIR)$(styledir) distclean-local: rm -f *\~ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/data/styles/zimek_darkblue/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425023534 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749853.411812608 30 ctime=1360750008.379811616 fluxbox-1.3.5/data/styles/zimek_darkblue/Makefile.am0000644000175000017500000000014412106662425021562 0ustar00mgmg00000000000000styledir = $(pkgdatadir)/styles/zimek_darkblue style_DATA = theme.cfg include ../Makefile.include fluxbox-1.3.5/data/styles/PaxHeaders.25974/zimek_bisque0000644000175000017500000000013112106662667021131 xustar000000000000000029 mtime=1360750007.87581162 30 atime=1360750008.383811616 30 ctime=1360750008.383811616 fluxbox-1.3.5/data/styles/zimek_bisque/0000755000175000017500000000000012106662667017236 5ustar00mgmg00000000000000fluxbox-1.3.5/data/styles/zimek_bisque/PaxHeaders.25974/theme.cfg0000644000175000017500000000013212106662425022762 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.191812456 30 ctime=1360750008.383811616 fluxbox-1.3.5/data/styles/zimek_bisque/theme.cfg0000644000175000017500000001225212106662425021013 0ustar00mgmg00000000000000#This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License. #(http://creativecommons.org/licenses/by-sa/3.0/de/deed.en) ############################################################################### # # name: zimek_bisque # made: tenner # date: 18-09-2007 # http://www.tenr.de # ############################################################## BACKGROUND ##### background: flat background.color: #B6B6A7 background.colorTo: #B6B6A7 ############################################################## FONTS ########## menu.frame.font: sans-9:bold menu.title.font: sans-10:bold toolbar.clock.font: sans-9:bold toolbar.workspace.font: sans-10:bold toolbar.iconbar.focused.font: sans-8:bold toolbar.iconbar.unfocused.font: sans-8 window.font: sans-8 ############################################################## MENU ########### menu.bevelWidth: 1 #menu.itemHeight: 35 #menu.titleHeight: 21 menu.borderColor: #63634A menu.borderWidth: 1 menu.bullet: triangle menu.bullet.position: Right menu.frame.underlineColor: #ffffff menu.title: flat gradient vertical menu.title.justify: center menu.title.color: #D2D2B7 menu.title.colorTo: #A3A38D menu.title.textColor: #752020 menu.frame: flat gradient crossdiagonal menu.frame.justify: left menu.frame.color: #D2D2B7 menu.frame.colorTo: #A3A38D menu.frame.textColor: #ffffff menu.frame.disableColor: #63634A menu.hilite: flat gradient vertical menu.hilite.color: #8A886A menu.hilite.colorTo: #8A886A menu.hilite.textColor: #752020 ############################################################## TOOLBAR ######## toolbar.bevelWidth: 0 toolbar.borderWidth: 1 toolbar.borderColor: #63634A toolbar.height: 21 toolbar.justify: center toolbar: flat gradient vertical toolbar.pixmap: toolbar.color: #F0EFE9 toolbar.colorTo: #BFBEB2 toolbar.clock: parentrelative toolbar.clock.justify: center toolbar.clock.color: # toolbar.clock.colorTo: # toolbar.clock.textColor: #63634A toolbar.workspace: parentrelative toolbar.workspace.justify: Center toolbar.workspace.color: # toolbar.workspace.colorTo: # toolbar.workspace.textColor: #63634A toolbar.button: parentrelative toolbar.button.color: # toolbar.button.colorTo: # toolbar.button.picColor: #63634A toolbar.button.pressed: parentrelative toolbar.button.pressed.color: # toolbar.button.pressed.colorTo: # toolbar.button.pressed.picColor: #000000 toolbar.iconbar.borderWidth: 1 toolbar.iconbar.borderColor: #63634A toolbar.iconbar.empty: parentrelative toolbar.iconbar.empty.color: # toolbar.iconbar.empty.colorTo: # toolbar.iconbar.focused.borderWidth: 1 toolbar.iconbar.focused.borderColor: #63634A toolbar.iconbar.focused: flat gradient vertical toolbar.iconbar.focused.color: #D2D2B7 toolbar.iconbar.focused.colorTo: #A3A38D toolbar.iconbar.focused.textColor: #752020 toolbar.iconbar.focused.justify: center toolbar.iconbar.unfocused.borderWidth: 1 toolbar.iconbar.unfocused.borderColor: #63634A toolbar.iconbar.unfocused: flat gradient vertical toolbar.iconbar.unfocused.color: #F0EFE9 toolbar.iconbar.unfocused.colorTo: #BFBEB2 toolbar.iconbar.unfocused.textColor: #63634A toolbar.iconbar.unfocused.justify: center ############################################################## WINDOW ######### window.roundCorners: TopRight TopLeft window.bevelWidth: 4 window.shade: false window.borderWidth: 1 window.borderColor: #63634A window.justify: Center window.title.height: 21 window.title.focus: flat gradient vertical window.title.focus.color: #D2D2B7 window.title.focus.colorTo: #A3A38D window.title.unfocus: flat gradient vertical window.title.unfocus.color: #F0EFE9 window.title.unfocus.colorTo: #BFBEB2 window.label.focus: parentrelative window.label.focus.color: # window.label.focus.colorTo: # window.label.focus.textColor: #752020 window.label.unfocus: parentrelative window.label.unfocus.color: # window.label.unfocus.colorTo: # window.label.unfocus.textColor: #63634A window.button.focus: parentrelative window.button.focus.color: # window.button.focus.colorTo: # window.button.focus.picColor: #752020 window.button.unfocus: parentrelative window.button.unfocus.Color: # window.button.unfocus.ColorTo: # window.button.unfocus.picColor: #63634A window.button.pressed: parentrelative window.button.pressed.color: # window.button.pressed.colorTo: # window.button.pressed.picColor: #000000 window.handle.focus: flat window.handle.focus.color: #D2D2B7 window.handle.focus.colorTo: #D2D2B7 window.handle.unfocus: flat window.handle.unfocus.color: #D2D2B7 window.handle.unfocus.colorTo: #D2D2B7 window.handleWidth: 2 window.grip.focus: flat window.grip.focus.color: #63634A window.grip.focus.colorTo: #63634A window.grip.unfocus: flat window.grip.unfocus.color: #D2D2B7 window.grip.unfocus.colorTo: #D2D2B7 ############################################################################### # EOF fluxbox-1.3.5/data/styles/zimek_bisque/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603023242 xustar000000000000000030 mtime=1360749955.535811955 30 atime=1360750003.203811649 30 ctime=1360750008.383811616 fluxbox-1.3.5/data/styles/zimek_bisque/Makefile.in0000644000175000017500000003113612106662603021275 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(srcdir)/../Makefile.include $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in subdir = data/styles/zimek_bisque ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(styledir)" DATA = $(style_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ styledir = $(pkgdatadir)/styles/zimek_bisque style_DATA = theme.cfg MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = $(style_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/../Makefile.include $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/styles/zimek_bisque/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/styles/zimek_bisque/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(srcdir)/../Makefile.include: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-styleDATA: $(style_DATA) @$(NORMAL_INSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(styledir)'"; \ $(MKDIR_P) "$(DESTDIR)$(styledir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(styledir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(styledir)" || exit $$?; \ done uninstall-styleDATA: @$(NORMAL_UNINSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(styledir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(styledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-styleDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-styleDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-strip uninstall-am .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distclean-local distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip install-styleDATA \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-hook \ uninstall-styleDATA uninstall-hook: rmdir $(DESTDIR)$(styledir) distclean-local: rm -f *\~ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/data/styles/zimek_bisque/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425023233 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749853.387812608 30 ctime=1360750008.383811616 fluxbox-1.3.5/data/styles/zimek_bisque/Makefile.am0000644000175000017500000000014212106662425021257 0ustar00mgmg00000000000000styledir = $(pkgdatadir)/styles/zimek_bisque style_DATA = theme.cfg include ../Makefile.include fluxbox-1.3.5/data/styles/PaxHeaders.25974/bora_green0000644000175000017500000000013112106662667020545 xustar000000000000000029 mtime=1360750007.83981162 30 atime=1360750008.387811616 30 ctime=1360750008.387811616 fluxbox-1.3.5/data/styles/bora_green/0000755000175000017500000000000012106662667016652 5ustar00mgmg00000000000000fluxbox-1.3.5/data/styles/bora_green/PaxHeaders.25974/theme.cfg0000644000175000017500000000013212106662425022376 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.155812456 30 ctime=1360750008.387811616 fluxbox-1.3.5/data/styles/bora_green/theme.cfg0000644000175000017500000001207012106662425020425 0ustar00mgmg00000000000000#This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License. #(http://creativecommons.org/licenses/by-sa/3.0/de/deed.en) ############################################################################### # # name: bora_green # made: tenner # date: 18-09-2007 # http://www.tenr.de # ############################################################## BACKGROUND ##### background: flat background.color: #355021 background.colorTo: #355021 ############################################################## FONTS ########## menu.frame.font: sans-9:bold menu.title.font: sans-10:bold toolbar.clock.font: sans-9:bold toolbar.workspace.font: sans-10:bold toolbar.iconbar.focused.font: sans-8:bold toolbar.iconbar.unfocused.font: sans-8 window.font: sans-8 ############################################################## MENU ########### menu.bevelWidth: 1 #menu.itemHeight: 35 #menu.titleHeight: 21 menu.borderColor: #A1D07D menu.borderWidth: 1 menu.bullet: triangle menu.bullet.position: Right menu.frame.underlineColor: #0E2C54 menu.title: flat gradient rectangle menu.title.justify: center menu.title.color: #65A734 menu.title.colorTo: #95CF63 menu.title.textColor: #e7e7e7 menu.frame: flat gradient crossdiagonal menu.frame.justify: left menu.frame.color: #65A734 menu.frame.colorTo: #95CF63 menu.frame.textColor: #ffffff menu.frame.disableColor: #0E2C54 menu.hilite: flat gradient rectangle menu.hilite.color: #B1DF84 menu.hilite.colorTo: #B1DF84 menu.hilite.textColor: #0E2C54 ############################################################## TOOLBAR ######## toolbar.bevelWidth: 0 toolbar.borderWidth: 1 toolbar.borderColor: #A1D07D toolbar.height: 21 toolbar.justify: center toolbar: flat gradient rectangle toolbar.pixmap: toolbar.color: #65A734 toolbar.colorTo: #95CF63 toolbar.clock: parentrelative toolbar.clock.justify: center toolbar.clock.color: # toolbar.clock.colorTo: # toolbar.clock.textColor: #e7e7e7 toolbar.workspace: parentrelative toolbar.workspace.justify: Center toolbar.workspace.color: # toolbar.workspace.colorTo: # toolbar.workspace.textColor: #e7e7e7 toolbar.button: parentrelative toolbar.button.color: # toolbar.button.colorTo: # toolbar.button.picColor: #e7e7e7 toolbar.button.pressed: parentrelative toolbar.button.pressed.color: # toolbar.button.pressed.colorTo: # toolbar.button.pressed.picColor: #000000 toolbar.iconbar.borderWidth: 1 toolbar.iconbar.borderColor: #A1D07D toolbar.iconbar.empty: parentrelative toolbar.iconbar.empty.color: # toolbar.iconbar.empty.colorTo: # toolbar.iconbar.focused.borderWidth: 1 toolbar.iconbar.focused.borderColor: #A1D07D toolbar.iconbar.focused: flat gradient rectangle toolbar.iconbar.focused.color: #65A734 toolbar.iconbar.focused.colorTo: #95CF63 toolbar.iconbar.focused.textColor: #e7e7e7 toolbar.iconbar.focused.justify: center toolbar.iconbar.unfocused.borderWidth: 1 toolbar.iconbar.unfocused.borderColor: #A1D07D toolbar.iconbar.unfocused: flat gradient rectangle toolbar.iconbar.unfocused.color: #669C30 toolbar.iconbar.unfocused.colorTo: #8EBD5A toolbar.iconbar.unfocused.textColor: #0E2C54 toolbar.iconbar.unfocused.justify: center ############################################################## WINDOW ######### window.roundCorners: TopRight TopLeft window.bevelWidth: 4 window.shade: false window.borderWidth: 1 window.borderColor: #A1D07D window.justify: Center s window.title.height: 21 window.title.focus: flat gradient rectangle window.title.focus.color: #65A734 window.title.focus.colorTo: #95CF63 window.title.unfocus: flat gradient rectangle window.title.unfocus.color: #669C30 window.title.unfocus.colorTo: #8EBD5A window.label.focus: parentrelative window.label.focus.color: # window.label.focus.colorTo: # window.label.focus.textColor: #e7e7e7 window.label.unfocus: parentrelative window.label.unfocus.color: # window.label.unfocus.colorTo: # window.label.unfocus.textColor: #0E2C54 window.button.focus: parentrelative window.button.focus.color: # window.button.focus.colorTo: # window.button.focus.picColor: #ffffff window.button.unfocus: parentrelative window.button.unfocus.Color: # window.button.unfocus.ColorTo: # window.button.unfocus.picColor: #0E2C54 window.button.pressed: parentrelative window.button.pressed.color: # window.button.pressed.colorTo: # window.button.pressed.picColor: #000000 window.handle.focus: flat window.handle.focus.color: #65A734 window.handle.focus.colorTo: #65A734 window.handle.unfocus: lat window.handle.unfocus.color: #65A734 window.handle.unfocus.colorTo: #65A734 window.handleWidth: 2 window.grip.focus: flat window.grip.focus.color: #A1D07D window.grip.focus.colorTo: #A1D07D window.grip.unfocus: flat window.grip.unfocus.color: #65A734 window.grip.unfocus.colorTo: #65A734 ############################################################################### # EOF fluxbox-1.3.5/data/styles/bora_green/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603022656 xustar000000000000000030 mtime=1360749955.443811955 30 atime=1360750003.327811649 30 ctime=1360750008.387811616 fluxbox-1.3.5/data/styles/bora_green/Makefile.in0000644000175000017500000003112612106662603020710 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(srcdir)/../Makefile.include $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in subdir = data/styles/bora_green ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(styledir)" DATA = $(style_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ styledir = $(pkgdatadir)/styles/bora_green style_DATA = theme.cfg MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = $(style_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/../Makefile.include $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/styles/bora_green/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/styles/bora_green/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(srcdir)/../Makefile.include: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-styleDATA: $(style_DATA) @$(NORMAL_INSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(styledir)'"; \ $(MKDIR_P) "$(DESTDIR)$(styledir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(styledir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(styledir)" || exit $$?; \ done uninstall-styleDATA: @$(NORMAL_UNINSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(styledir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(styledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-styleDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-styleDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-strip uninstall-am .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distclean-local distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip install-styleDATA \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-hook \ uninstall-styleDATA uninstall-hook: rmdir $(DESTDIR)$(styledir) distclean-local: rm -f *\~ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/data/styles/bora_green/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425022647 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749853.299812609 30 ctime=1360750008.387811616 fluxbox-1.3.5/data/styles/bora_green/Makefile.am0000644000175000017500000000014012106662425020671 0ustar00mgmg00000000000000styledir = $(pkgdatadir)/styles/bora_green style_DATA = theme.cfg include ../Makefile.include fluxbox-1.3.5/data/styles/PaxHeaders.25974/bora_blue0000644000175000017500000000013112106662667020374 xustar000000000000000029 mtime=1360750007.80781162 30 atime=1360750008.391811616 30 ctime=1360750008.391811616 fluxbox-1.3.5/data/styles/bora_blue/0000755000175000017500000000000012106662667016501 5ustar00mgmg00000000000000fluxbox-1.3.5/data/styles/bora_blue/PaxHeaders.25974/theme.cfg0000644000175000017500000000013212106662425022225 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.123812456 30 ctime=1360750008.391811616 fluxbox-1.3.5/data/styles/bora_blue/theme.cfg0000644000175000017500000001225112106662425020255 0ustar00mgmg00000000000000#This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License. #(http://creativecommons.org/licenses/by-sa/3.0/de/deed.en) ############################################################################### # # name: bora_blue # made: tenner # date: 18-09-2007 # http://www.tenr.de # ############################################################## BACKGROUND ##### background: flat background.color: #32436B background.colorTo: # ############################################################## FONTS ########## menu.frame.font: sans-9:bold menu.title.font: sans-10:bold toolbar.clock.font: sans-9:bold toolbar.workspace.font: sans-10:bold toolbar.iconbar.focused.font: sans-8:bold toolbar.iconbar.unfocused.font: sans-8 window.font: sans-8 ############################################################## MENU ########### menu.bevelWidth: 1 #menu.itemHeight: 35 #menu.titleHeight: 21 menu.borderColor: #7DA6D0 menu.borderWidth: 1 menu.bullet: triangle menu.bullet.position: Right menu.frame.underlineColor: #ffffff menu.title: flat gradient rectangle menu.title.justify: center menu.title.color: #3465A7 menu.title.colorTo: #6392CF menu.title.textColor: #e7e7e7 menu.frame: flat gradient crossdiagonal menu.frame.justify: left menu.frame.color: #3465A7 menu.frame.colorTo: #6392CF menu.frame.textColor: #ffffff menu.frame.disableColor: #0E2C54 menu.hilite: flat gradient rectangle menu.hilite.color: #84ACDF menu.hilite.colorTo: #84ACDF menu.hilite.textColor: #e7e7e7 ############################################################## TOOLBAR ######## toolbar.bevelWidth: 0 toolbar.borderWidth: 1 toolbar.borderColor: #7DA6D0 toolbar.height: 21 toolbar.justify: center toolbar: flat gradient rectangle toolbar.pixmap: toolbar.color: #3465A7 toolbar.colorTo: #6392CF toolbar.clock: parentrelative toolbar.clock.justify: center toolbar.clock.color: # toolbar.clock.colorTo: # toolbar.clock.textColor: #e7e7e7 toolbar.workspace: parentrelative toolbar.workspace.justify: Center toolbar.workspace.color: # toolbar.workspace.colorTo: # toolbar.workspace.textColor: #e7e7e7 toolbar.button: parentrelative toolbar.button.color: # toolbar.button.colorTo: # toolbar.button.picColor: #e7e7e7 toolbar.button.pressed: parentrelative toolbar.button.pressed.color: # toolbar.button.pressed.colorTo: # toolbar.button.pressed.picColor: #000000 toolbar.iconbar.borderWidth: 1 toolbar.iconbar.borderColor: #7DA6D0 toolbar.iconbar.empty: parentrelative toolbar.iconbar.empty.color: # toolbar.iconbar.empty.colorTo: # toolbar.iconbar.focused.borderWidth: 1 toolbar.iconbar.focused.borderColor: #7DA6D0 toolbar.iconbar.focused: flat gradient rectangle toolbar.iconbar.focused.color: #3465A7 toolbar.iconbar.focused.colorTo: #6392CF toolbar.iconbar.focused.textColor: #e7e7e7 toolbar.iconbar.focused.justify: center toolbar.iconbar.unfocused.borderWidth: 1 toolbar.iconbar.unfocused.borderColor: #7DA6D0 toolbar.iconbar.unfocused: flat gradient rectangle toolbar.iconbar.unfocused.color: #305E9C toolbar.iconbar.unfocused.colorTo: #5A85BD toolbar.iconbar.unfocused.textColor: #0E2C54 toolbar.iconbar.unfocused.justify: center ############################################################## WINDOW ######### window.roundCorners: TopRight TopLeft window.bevelWidth: 4 window.shade: false window.borderWidth: 1 window.borderColor: #7DA6D0 window.justify: Center window.title.height: 21 window.title.focus: flat gradient rectangle window.title.focus.color: #3465A7 window.title.focus.colorTo: #6392CF window.title.unfocus: flat gradient rectangle window.title.unfocus.color: #305E9C window.title.unfocus.colorTo: #5A85BD window.label.focus: parentrelative window.label.focus.color: # window.label.focus.colorTo: # window.label.focus.textColor: #e7e7e7 window.label.unfocus: parentrelative window.label.unfocus.color: # window.label.unfocus.colorTo: # window.label.unfocus.textColor: #0E2C54 window.button.focus: parentrelative window.button.focus.color: # window.button.focus.colorTo: # window.button.focus.picColor: #ffffff window.button.unfocus: parentrelative window.button.unfocus.Color: # window.button.unfocus.ColorTo: # window.button.unfocus.picColor: #0E2C54 window.button.pressed: parentrelative window.button.pressed.color: # window.button.pressed.colorTo: # window.button.pressed.picColor: #000000 window.handle.focus: flat window.handle.focus.color: #3465A7 window.handle.focus.colorTo: #3465A7 window.handle.unfocus: flat window.handle.unfocus.color: #3465A7 window.handle.unfocus.colorTo: #3465A7 window.handleWidth: 2 window.grip.focus: flat window.grip.focus.color: #7DA6D0 window.grip.focus.colorTo: #7DA6D0 window.grip.unfocus: flat window.grip.unfocus.color: #3465A7 window.grip.unfocus.colorTo: #3465A7 ############################################################################### # EOF fluxbox-1.3.5/data/styles/bora_blue/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603022505 xustar000000000000000030 mtime=1360749955.419811955 30 atime=1360750003.311811649 30 ctime=1360750008.391811616 fluxbox-1.3.5/data/styles/bora_blue/Makefile.in0000644000175000017500000003112212106662603020533 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(srcdir)/../Makefile.include $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in subdir = data/styles/bora_blue ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(styledir)" DATA = $(style_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ styledir = $(pkgdatadir)/styles/bora_blue style_DATA = theme.cfg MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = $(style_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/../Makefile.include $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/styles/bora_blue/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/styles/bora_blue/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(srcdir)/../Makefile.include: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-styleDATA: $(style_DATA) @$(NORMAL_INSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(styledir)'"; \ $(MKDIR_P) "$(DESTDIR)$(styledir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(styledir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(styledir)" || exit $$?; \ done uninstall-styleDATA: @$(NORMAL_UNINSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(styledir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(styledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-styleDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-styleDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-strip uninstall-am .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distclean-local distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip install-styleDATA \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-hook \ uninstall-styleDATA uninstall-hook: rmdir $(DESTDIR)$(styledir) distclean-local: rm -f *\~ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/data/styles/bora_blue/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425022476 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749853.275812609 30 ctime=1360750008.391811616 fluxbox-1.3.5/data/styles/bora_blue/Makefile.am0000644000175000017500000000013712106662425020526 0ustar00mgmg00000000000000styledir = $(pkgdatadir)/styles/bora_blue style_DATA = theme.cfg include ../Makefile.include fluxbox-1.3.5/data/styles/PaxHeaders.25974/bora_black0000644000175000017500000000013112106662667020521 xustar000000000000000029 mtime=1360750007.77181162 30 atime=1360750008.395811616 30 ctime=1360750008.391811616 fluxbox-1.3.5/data/styles/bora_black/0000755000175000017500000000000012106662667016626 5ustar00mgmg00000000000000fluxbox-1.3.5/data/styles/bora_black/PaxHeaders.25974/theme.cfg0000644000175000017500000000013212106662425022352 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749877.087812457 30 ctime=1360750008.395811616 fluxbox-1.3.5/data/styles/bora_black/theme.cfg0000644000175000017500000001207312106662425020404 0ustar00mgmg00000000000000#This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License. #(http://creativecommons.org/licenses/by-sa/3.0/de/deed.en) ############################################################################### # # name: bora_black # made: tenner # date: 18-09-2007 # http://www.tenr.de # ############################################################## BACKGROUND ###### background: flat background.color: #656565 background.colorTo: #656565 ############################################################## FONTS ########## menu.frame.font: sans-9:bold menu.title.font: sans-10:bold toolbar.clock.font: sans-9:bold toolbar.workspace.font: sans-10:bold toolbar.iconbar.focused.font: sans-8:bold toolbar.iconbar.unfocused.font: sans-8 window.font: sans-8 ############################################################## MENU ########### menu.bevelWidth: 1 #menu.itemHeight: 35 #menu.titleHeight: 21 menu.borderColor: #525252 menu.borderWidth: 1 menu.bullet: triangle menu.bullet.position: Right menu.frame.underlineColor: #ffffff menu.title: flat gradient rectangle menu.title.justify: center menu.title.color: #1f1f1f menu.title.colorTo: #505050 menu.title.textColor: #e7e7e7 menu.frame: flat gradient crossdiagonal menu.frame.justify: left menu.frame.color: #1f1f1f menu.frame.colorTo: #505050 menu.frame.textColor: #ffffff menu.frame.disableColor: #888888 menu.hilite: flat gradient rectangle menu.hilite.color: #636363 menu.hilite.colorTo: #636363 menu.hilite.textColor: #ffffff ############################################################## TOOLBAR ######## toolbar.bevelWidth: 0 toolbar.borderWidth: 1 toolbar.borderColor: #525252 toolbar.height: 21 toolbar.justify: center toolbar: flat gradient rectangle toolbar.pixmap: toolbar.color: #1f1f1f toolbar.colorTo: #505050 toolbar.clock: parentrelative toolbar.clock.justify: center toolbar.clock.color: # toolbar.clock.colorTo: # toolbar.clock.textColor: #e7e7e7 toolbar.workspace: parentrelative toolbar.workspace.justify: Center toolbar.workspace.color: # toolbar.workspace.colorTo: # toolbar.workspace.textColor: #e7e7e7 toolbar.button: parentrelative toolbar.button.color: # toolbar.button.colorTo: # toolbar.button.picColor: #e7e7e7 toolbar.button.pressed: parentrelative toolbar.button.pressed.color: # toolbar.button.pressed.colorTo: # toolbar.button.pressed.picColor: #000000 toolbar.iconbar.borderWidth: 1 toolbar.iconbar.borderColor: #525252 toolbar.iconbar.empty: parentrelative toolbar.iconbar.empty.color: # toolbar.iconbar.empty.colorTo: # toolbar.iconbar.focused.borderWidth: 1 toolbar.iconbar.focused.borderColor: #525252 toolbar.iconbar.focused: flat gradient rectangle toolbar.iconbar.focused.color: #1f1f1f toolbar.iconbar.focused.colorTo: #505050 toolbar.iconbar.focused.textColor: #e7e7e7 toolbar.iconbar.focused.justify: center toolbar.iconbar.unfocused.borderWidth: 1 toolbar.iconbar.unfocused.borderColor: #525252 toolbar.iconbar.unfocused: flat gradient rectangle toolbar.iconbar.unfocused.color: #2b2b2b toolbar.iconbar.unfocused.colorTo: #383838 toolbar.iconbar.unfocused.textColor: #888888 toolbar.iconbar.unfocused.justify: center ############################################################## WINDOW ######### window.roundCorners: TopRight TopLeft window.bevelWidth: 4 window.shade: false window.borderWidth: 1 window.borderColor: #525252 window.justify: Center s window.title.height: 21 window.title.focus: flat gradient rectangle window.title.focus.color: #1f1f1f window.title.focus.colorTo: #505050 window.title.unfocus: flat gradient rectangle window.title.unfocus.color: #2b2b2b window.title.unfocus.colorTo: #383838 window.label.focus: parentrelative window.label.focus.color: # window.label.focus.colorTo: # window.label.focus.textColor: #e7e7e7 window.label.unfocus: parentrelative window.label.unfocus.color: # window.label.unfocus.colorTo: # window.label.unfocus.textColor: #888888 window.button.focus: parentrelative window.button.focus.color: # window.button.focus.colorTo: # window.button.focus.picColor: #ffffff window.button.unfocus: parentrelative window.button.unfocus.Color: # window.button.unfocus.ColorTo: # window.button.unfocus.picColor: #888888 window.button.pressed: parentrelative window.button.pressed.color: # window.button.pressed.colorTo: # window.button.pressed.picColor: #000000 window.handle.focus: flat window.handle.focus.color: #1f1f1f window.handle.focus.colorTo: #1f1f1f window.handle.unfocus: lat window.handle.unfocus.color: #1f1f1f window.handle.unfocus.colorTo: #1f1f1f window.handleWidth: 2 window.grip.focus: flat window.grip.focus.color: #525252 window.grip.focus.colorTo: #525252 window.grip.unfocus: flat window.grip.unfocus.color: #1f1f1f window.grip.unfocus.colorTo: #1f1f1f ############################################################################### # EOF fluxbox-1.3.5/data/styles/bora_black/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603022632 xustar000000000000000030 mtime=1360749955.399811955 30 atime=1360750003.291811649 30 ctime=1360750008.395811616 fluxbox-1.3.5/data/styles/bora_black/Makefile.in0000644000175000017500000003112612106662603020664 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(srcdir)/../Makefile.include $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in subdir = data/styles/bora_black ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(styledir)" DATA = $(style_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ styledir = $(pkgdatadir)/styles/bora_black style_DATA = theme.cfg MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = $(style_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/../Makefile.include $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/styles/bora_black/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/styles/bora_black/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(srcdir)/../Makefile.include: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-styleDATA: $(style_DATA) @$(NORMAL_INSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(styledir)'"; \ $(MKDIR_P) "$(DESTDIR)$(styledir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(styledir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(styledir)" || exit $$?; \ done uninstall-styleDATA: @$(NORMAL_UNINSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(styledir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(styledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-styleDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-styleDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-strip uninstall-am .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distclean-local distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip install-styleDATA \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-hook \ uninstall-styleDATA uninstall-hook: rmdir $(DESTDIR)$(styledir) distclean-local: rm -f *\~ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/data/styles/bora_black/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425022623 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749853.255812609 30 ctime=1360750008.395811616 fluxbox-1.3.5/data/styles/bora_black/Makefile.am0000644000175000017500000000014012106662425020645 0ustar00mgmg00000000000000styledir = $(pkgdatadir)/styles/bora_black style_DATA = theme.cfg include ../Makefile.include fluxbox-1.3.5/data/styles/PaxHeaders.25974/BlueFlux0000644000175000017500000000013212106662667020171 xustar000000000000000030 mtime=1360750007.671811621 30 atime=1360750008.395811616 30 ctime=1360750008.395811616 fluxbox-1.3.5/data/styles/BlueFlux/0000755000175000017500000000000012106662667016275 5ustar00mgmg00000000000000fluxbox-1.3.5/data/styles/BlueFlux/PaxHeaders.25974/pixmaps0000644000175000017500000000013112106662667021651 xustar000000000000000029 mtime=1360750007.73581162 30 atime=1360750008.399811616 30 ctime=1360750008.399811616 fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/0000755000175000017500000000000012106662667017756 5ustar00mgmg00000000000000fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/PaxHeaders.25974/toolbar_label.xpm0000644000175000017500000000013212106662425025246 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.051812457 30 ctime=1360750008.399811616 fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/toolbar_label.xpm0000644000175000017500000000501012106662425023271 0ustar00mgmg00000000000000/* XPM */ static char * toolbar_label_xpm[] = { "95 22 22 1", " c None", ". c #D1D5D6", "+ c #C5CACB", "@ c #C7CCCD", "# c #CACFCF", "$ c #CCD1D2", "% c #CFD3D4", "& c #D1D6D6", "* c #D4D8D8", "= c #D7DADB", "- c #D9DCDD", "; c #DCDFDF", "> c #DEE1E1", ", c #E1E3E4", "' c #E4E6E6", ") c #E6E8E8", "! c #E9EAEA", "~ c #EBECED", "{ c #EEEFEF", "] c #F0F1F1", "^ c #F3F3F3", "/ c #F6F6F6", "...............................................................................................", "...............................................................................................", "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", "###############################################################################################", "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&", "***********************************************************************************************", "===============================================================================================", "-----------------------------------------------------------------------------------------------", ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", "'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''", ")))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~", "{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{", "]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "///////////////////////////////////////////////////////////////////////////////////////////////"}; fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/PaxHeaders.25974/toolbar.xpm0000644000175000017500000000013212106662425024107 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.051812457 30 ctime=1360750008.399811616 fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/toolbar.xpm0000644000175000017500000000476312106662425022150 0ustar00mgmg00000000000000/* XPM */ static char * toolbar_xpm[] = { "95 22 21 1", " c None", ". c #7A949B", "+ c #93AAB2", "@ c #678895", "# c #527887", "$ c #507887", "% c #547A8A", "& c #587F8D", "* c #5C8491", "= c #5F8794", "- c #648C99", "; c #67909C", "> c #6B949F", ", c #6F98A4", "' c #739CA7", ") c #77A1AB", "! c #7BA5AE", "~ c #7FA9B2", "{ c #81ADB5", "] c #7FABB3", "^ c #759FA7", "...............................................................................................", "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", "###############################################################################################", "###############################################################################################", "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&", "***********************************************************************************************", "===============================================================================================", "-----------------------------------------------------------------------------------------------", ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", "'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''", ")))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~", "{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{", "{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{", "]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"}; fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/PaxHeaders.25974/title_bar_unfocus.xpm0000644000175000017500000000013212106662425026154 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.047812457 30 ctime=1360750008.399811616 fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/title_bar_unfocus.xpm0000644000175000017500000000477512106662425024220 0ustar00mgmg00000000000000/* XPM */ static char * title_bar_unfocus_xpm[] = { "95 22 21 1", " g None", ". g #5D5D5D", "+ g #7D7D7D", "@ g #A7A7A7", "# g #818181", "$ g #6D6D6D", "% g #717171", "& g #777777", "* g #7B7B7B", "= g #808080", "- g #858585", "; g #898989", "> g #8E8E8E", ", g #929292", "' g #989898", ") g #9C9C9C", "! g #A0A0A0", "~ g #8F8F8F", "{ g #CBCBCB", "] g #E5E5E5", "^ g #F6F6F6", "...............................................................................................", "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", "###############################################################################################", "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&", "***********************************************************************************************", "===============================================================================================", "-----------------------------------------------------------------------------------------------", ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", "'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''", ")))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", ")))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~", "{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{", "]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"}; fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/PaxHeaders.25974/title_bar.xpm0000644000175000017500000000013212106662425024412 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.047812457 30 ctime=1360750008.403811616 fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/title_bar.xpm0000644000175000017500000000500412106662425022440 0ustar00mgmg00000000000000/* XPM */ static char * title_bar_xpm[] = { "95 22 22 1", " c None", ". c #45666F", "+ c #68858D", "@ c #97ADB4", "# c #6A8A97", "$ c #517887", "% c #557C8B", "& c #5A828F", "* c #5E8693", "= c #638B98", "- c #67909C", "; c #6C95A0", "> c #7099A5", ", c #759EA9", "' c #7AA4AD", ") c #7EA8B1", "! c #81ADB5", "~ c #7EA9B1", "{ c #719BA2", "] c #C6CED0", "^ c #E6E5E5", "/ c #F6F6F6", "...............................................................................................", "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", "###############################################################################################", "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&", "***********************************************************************************************", "===============================================================================================", "-----------------------------------------------------------------------------------------------", ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", "'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''", ")))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~", "{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{", "]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "///////////////////////////////////////////////////////////////////////////////////////////////"}; fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/PaxHeaders.25974/menu_frame.xpm0000644000175000017500000000013212106662425024563 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.047812457 30 ctime=1360750008.403811616 fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/menu_frame.xpm0000644000175000017500000013535312106662425022624 0ustar00mgmg00000000000000/* XPM */ static char * menu_frame_xpm[] = { "98 459 65 1", " c None", ". c #C0C0C0", "+ c #C1C1C1", "@ c #C2C2C2", "# c #C3C3C3", "$ c #C4C4C4", "% c #C5C5C5", "& c #C6C6C6", "* c #C7C7C7", "= c #C8C8C8", "- c #C9C9C9", "; c #CACACA", "> c #CBCBCB", ", c #CCCCCC", "' c #CDCDCD", ") c #CECECE", "! c #CFCFCF", "~ c #D0D0D0", "{ c #D1D1D1", "] c #D2D2D2", "^ c #D3D3D3", "/ c #D4D4D4", "( c #D5D5D5", "_ c #D6D6D6", ": c #D7D7D7", "< c #D8D8D8", "[ c #D9D9D9", "} c #DADADA", "| c #DBDBDB", "1 c #DCDCDC", "2 c #DDDDDD", "3 c #DEDEDE", "4 c #DFDFDF", "5 c #E0E0E0", "6 c #E1E1E1", "7 c #E2E2E2", "8 c #E3E3E3", "9 c #E4E4E4", "0 c #E5E5E5", "a c #E6E6E6", "b c #E7E7E7", "c c #E8E8E8", "d c #E9E9E9", "e c #EAEAEA", "f c #EBEBEB", "g c #ECECEC", "h c #EDEDED", "i c #EEEEEE", "j c #EFEFEF", "k c #F0F0F0", "l c #F1F1F1", "m c #F2F2F2", "n c #F3F3F3", "o c #F4F4F4", "p c #F5F5F5", "q c #F6F6F6", "r c #F7F7F7", "s c #F8F8F8", "t c #F9F9F9", "u c #FAFAFA", "v c #FBFBFB", "w c #FCFCFC", "x c #FDFDFD", "y c #FEFEFE", "z c #FFFFFF", "..................................................................................................", "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++", "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", "##################################################################################################", "##################################################################################################", "##################################################################################################", "##################################################################################################", "##################################################################################################", "##################################################################################################", "##################################################################################################", "##################################################################################################", "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&", "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&", "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&", "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&", "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&", "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&", "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&", "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&", "**************************************************************************************************", "**************************************************************************************************", "**************************************************************************************************", "**************************************************************************************************", "**************************************************************************************************", "**************************************************************************************************", "**************************************************************************************************", "==================================================================================================", "==================================================================================================", "==================================================================================================", "==================================================================================================", "==================================================================================================", "==================================================================================================", "==================================================================================================", "--------------------------------------------------------------------------------------------------", "--------------------------------------------------------------------------------------------------", "--------------------------------------------------------------------------------------------------", "--------------------------------------------------------------------------------------------------", "--------------------------------------------------------------------------------------------------", "--------------------------------------------------------------------------------------------------", "--------------------------------------------------------------------------------------------------", "--------------------------------------------------------------------------------------------------", ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", "''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''", "''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''", "''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''", "''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''", "''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''", "''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''", "''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~", "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~", "{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{", "{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{", "{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{", "{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{", "{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{", "{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{", "{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{", "{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{", "]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]", "]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]", "]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]", "]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]", "]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]", "]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]", "]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^", "//////////////////////////////////////////////////////////////////////////////////////////////////", "//////////////////////////////////////////////////////////////////////////////////////////////////", "//////////////////////////////////////////////////////////////////////////////////////////////////", "//////////////////////////////////////////////////////////////////////////////////////////////////", "//////////////////////////////////////////////////////////////////////////////////////////////////", "//////////////////////////////////////////////////////////////////////////////////////////////////", "//////////////////////////////////////////////////////////////////////////////////////////////////", "((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((", "((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((", "((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((", "((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((", "((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((", "((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((", "((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((", "__________________________________________________________________________________________________", "__________________________________________________________________________________________________", "__________________________________________________________________________________________________", "__________________________________________________________________________________________________", "__________________________________________________________________________________________________", "__________________________________________________________________________________________________", "__________________________________________________________________________________________________", "__________________________________________________________________________________________________", "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::", "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::", "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::", "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::", "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::", "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::", "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::", "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<", "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<", "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<", "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<", "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<", "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<", "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<", "[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[", "[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[", "[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[", "[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[", "[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[", "[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[", "[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[", "[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[", "}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}", "}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}", "}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}", "}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}", "}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}", "}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}", "}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}", "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||", "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||", "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||", "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||", "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||", "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||", "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||", "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||", "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111", "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111", "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111", "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111", "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111", "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111", "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111", "22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222", "22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222", "22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222", "22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222", "22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222", "22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222", "22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222", "33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333", "33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333", "33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333", "33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333", "33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333", "33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333", "33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333", "33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333", "44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444", "44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444", "44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444", "44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444", "44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444", "44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444", "44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444", "55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555", "55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555", "55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555", "55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555", "55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555", "55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555", "55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555", "66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666", "66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666", "66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666", "66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666", "66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666", "66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666", "66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666", "66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666", "77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777", "77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777", "77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777", "77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777", "77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777", "77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777", "77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777", "88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888", "88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888", "88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888", "88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888", "88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888", "88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888", "88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888", "99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999", "99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999", "99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999", "99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999", "99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999", "99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999", "99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999", "99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999", "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc", "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc", "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc", "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc", "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc", "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc", "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc", "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd", "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd", "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd", "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd", "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd", "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd", "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd", "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd", "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee", "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee", "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee", "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee", "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee", "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee", "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee", "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg", "gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg", "gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg", "gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg", "gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg", "gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg", "gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg", "gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg", "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh", "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh", "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh", "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh", "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh", "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh", "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh", "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii", "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii", "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii", "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii", "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii", "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii", "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii", "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii", "jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj", "jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj", "jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj", "jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj", "jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj", "jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj", "jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj", "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk", "llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll", "llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll", "llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll", "llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll", "llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll", "llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll", "llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll", "llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll", "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm", "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm", "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm", "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm", "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm", "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm", "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm", "nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", "nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", "nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", "nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", "nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", "nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", "nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn", "oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo", "oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo", "pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp", "pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp", "pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp", "pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp", "pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp", "pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp", "pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp", "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq", "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq", "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq", "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq", "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq", "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq", "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq", "qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq", "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr", "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr", "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr", "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr", "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr", "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr", "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr", "ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss", "ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss", "ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss", "ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss", "ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss", "ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss", "ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss", "tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt", "tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt", "tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt", "tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt", "tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt", "tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt", "tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt", "tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt", "uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu", "uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu", "uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu", "uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu", "uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu", "uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu", "uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu", "vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv", "vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv", "vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv", "vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv", "vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv", "vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv", "vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv", "wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww", "wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww", "wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww", "wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww", "wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww", "wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww", "wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww", "wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy", "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy", "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy", "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy", "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy", "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy", "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy", "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz", "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"}; fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/PaxHeaders.25974/button_toolbar_pressed.xpm0000644000175000017500000000013212106662425027227 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.043812457 30 ctime=1360750008.403811616 fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/button_toolbar_pressed.xpm0000644000175000017500000000242212106662425025256 0ustar00mgmg00000000000000/* XPM */ static char * button_toolbar_pressed_xpm[] = { "28 22 35 1", " c None", ". c #3F5C68", "+ c #4A6D7A", "@ c #3E5C68", "# c #486D7A", "$ c #405E6A", "% c #4C6F7D", "& c #44626D", "* c #507380", "= c #47656F", "- c #537883", "; c #496872", "> c #567A86", ", c #4D6C76", "' c #5B7F8B", ") c #506F78", "! c #5D828D", "~ c #52727A", "{ c #618690", "] c #55757F", "^ c #658A95", "/ c #597881", "( c #688D97", "_ c #5B7C84", ": c #6C929B", "< c #5F7F86", "[ c #6F959E", "} c #628289", "| c #7399A1", "1 c #64858C", "2 c #759DA4", "3 c #62848A", "4 c #739BA2", "5 c #5B7A81", "6 c #6A9097", "............................", ".+++++++++++++++++++++++++++", "@###########################", ".+++++++++++++++++++++++++++", ".+++++++++++++++++++++++++++", "@###########################", "$%%%%%%%%%%%%%%%%%%%%%%%%%%%", "&***************************", "=---------------------------", ";>>>>>>>>>>>>>>>>>>>>>>>>>>>", ",'''''''''''''''''''''''''''", ")!!!!!!!!!!!!!!!!!!!!!!!!!!!", "~{{{{{{{{{{{{{{{{{{{{{{{{{{{", "]^^^^^^^^^^^^^^^^^^^^^^^^^^^", "/(((((((((((((((((((((((((((", "_:::::::::::::::::::::::::::", "<[[[[[[[[[[[[[[[[[[[[[[[[[[[", "}|||||||||||||||||||||||||||", "1222222222222222222222222222", "1222222222222222222222222222", "3444444444444444444444444444", "5666666666666666666666666666"}; fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/PaxHeaders.25974/button_toolbar.xpm0000644000175000017500000000013212106662425025502 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.043812457 30 ctime=1360750008.403811616 fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/button_toolbar.xpm0000644000175000017500000000207012106662425023530 0ustar00mgmg00000000000000/* XPM */ static char * button_toolbar_xpm[] = { "28 22 21 1", " c None", ". c #7A949B", "+ c #93AAB2", "@ c #678895", "# c #527887", "$ c #507887", "% c #547A8A", "& c #587F8D", "* c #5C8491", "= c #5F8794", "- c #648C99", "; c #67909C", "> c #6B949F", ", c #6F98A4", "' c #739CA7", ") c #77A1AB", "! c #7BA5AE", "~ c #7FA9B2", "{ c #81ADB5", "] c #7FABB3", "^ c #759FA7", "............................", "++++++++++++++++++++++++++++", "@@@@@@@@@@@@@@@@@@@@@@@@@@@@", "############################", "############################", "$$$$$$$$$$$$$$$$$$$$$$$$$$$$", "%%%%%%%%%%%%%%%%%%%%%%%%%%%%", "&&&&&&&&&&&&&&&&&&&&&&&&&&&&", "****************************", "============================", "----------------------------", ";;;;;;;;;;;;;;;;;;;;;;;;;;;;", ">>>>>>>>>>>>>>>>>>>>>>>>>>>>", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,", "''''''''''''''''''''''''''''", "))))))))))))))))))))))))))))", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "~~~~~~~~~~~~~~~~~~~~~~~~~~~~", "{{{{{{{{{{{{{{{{{{{{{{{{{{{{", "{{{{{{{{{{{{{{{{{{{{{{{{{{{{", "]]]]]]]]]]]]]]]]]]]]]]]]]]]]", "^^^^^^^^^^^^^^^^^^^^^^^^^^^^"}; fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/PaxHeaders.25974/button_stuck_unfocus.xpm0000644000175000017500000000013212106662425026733 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.039812457 30 ctime=1360750008.403811616 fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/button_stuck_unfocus.xpm0000644000175000017500000000552412106662425024770 0ustar00mgmg00000000000000/* XPM */ static char * button_stuck_unfocus_xpm[] = { "22 22 111 2", " g None", ". g #5D5D5D", "+ g #7D7D7D", "@ g #A7A7A7", "# g #818181", "$ g #6D6D6D", "% g #717171", "& g #D3D3D3", "* g #777777", "= g #757575", "- g #747474", "; g #8E8E8E", "> g #9A9A9A", ", g #919191", "' g #787878", ") g #767676", "! g #C4C4C4", "~ g #6B6B6B", "{ g #727272", "] g #B7B7B7", "^ g #C0C0C0", "/ g #BFBFBF", "( g #BBBBBB", "_ g #8C8C8C", ": g #797979", "< g #7B7B7B", "[ g #C6C6C6", "} g #C9C9C9", "| g #A3A3A3", "1 g #8D8D8D", "2 g #6A6A6A", "3 g #A4A4A4", "4 g #7F7F7F", "5 g #808080", "6 g #C8C8C8", "7 g #878787", "8 g #707070", "9 g #828282", "0 g #676767", "a g #858585", "b g #CACACA", "c g #C7C7C7", "d g #646464", "e g #6C6C6C", "f g #333333", "g g #5B5B5B", "h g #7C7C7C", "i g #898989", "j g #CCCCCC", "k g #555555", "l g #636363", "m g #656565", "n g #565656", "o g #8A8A8A", "p g #CECECE", "q g #BEBEBE", "r g #525252", "s g #545454", "t g #929292", "u g #D0D0D0", "v g #C5C5C5", "w g #616161", "x g #7E7E7E", "y g #4F4F4F", "z g #909090", "A g #989898", "B g #7A7A7A", "C g #8B8B8B", "D g #888888", "E g #868686", "F g #606060", "G g #959595", "H g #9C9C9C", "I g #D5D5D5", "J g #CFCFCF", "K g #585858", "L g #A8A8A8", "M g #A5A5A5", "N g #848484", "O g #686868", "P g #5A5A5A", "Q g #9B9B9B", "R g #A0A0A0", "S g #D7D7D7", "T g #D4D4D4", "U g #454545", "V g #9D9D9D", "W g #D9D9D9", "X g #D1D1D1", "Y g #B9B9B9", "Z g #5F5F5F", "` g #5E5E5E", " . g #5C5C5C", ".. g #979797", "+. g #DBDBDB", "@. g #DADADA", "#. g #BABABA", "$. g #A2A2A2", "%. g #949494", "&. g #9E9E9E", "*. g #B4B4B4", "=. g #8F8F8F", "-. g #DDDDDD", ";. g #B1B1B1", ">. g #CBCBCB", ",. g #E5E5E5", "'. g #E4E4E4", "). g #E2E2E2", "!. g #DEDEDE", "~. g #E3E3E3", "{. g #F6F6F6", ". . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # # # # # # # # # # # # # # # # # # # # ", "$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ ", "$ $ $ $ $ % % % % % % % % % % % % % % % % % ", "& & & & & $ * * = - ; > , ' - ) * * * * * * ", "! ! ! ! ! & ~ { # ] ^ ^ / ( _ { : < < < < < ", "[ [ [ [ [ [ } { | 1 $ 2 $ _ 3 + * 4 5 5 5 5 ", "6 6 6 6 6 6 7 5 4 8 8 8 8 8 4 9 0 4 a a a a ", "b b b b b c d e % - - f = - = 2 g h 7 i i i ", "j j j j j ^ k l { ' f f f ' 8 m n { o ; ; ; ", "p p p p p q r l 8 < f f f ' 8 d s 8 _ t t t ", "u u u u u v s w e : x f < * ~ l y * z A A A ", "& & & & & b ~ . B C D 7 E 7 = F k x G H H H ", "I I I I I J 3 K 0 7 L | M N O P 0 D Q R R R ", "S S S S S T ! D w m m m m m F U ' t V R R R ", "W W W W W W X Y z ~ Z Z ` O # 7 ...H H H H ", "+.+.+.+.+.+.@.J #.$.%.o 1 G $.&.*.1 =.=.=.=.", "-.-.-.-.-.-.-.+.T c Y ;.;.Y c >.W >.>.>.>.>.", ",.,.,.,.,.,.,.,.'.).!.+.+.!.).~.,.,.,.,.,.,.", "{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{.{."}; fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/PaxHeaders.25974/button_stuck.xpm0000644000175000017500000000013212106662425025171 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.039812457 30 ctime=1360750008.407811616 fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/button_stuck.xpm0000644000175000017500000001013412106662425023217 0ustar00mgmg00000000000000/* XPM */ static char * button_stuck_xpm[] = { "22 22 192 2", " c None", ". c #45666F", "+ c #68858D", "@ c #97ADB4", "# c #6A8A97", "$ c #517887", "% c #557C8B", "& c #D1D5D6", "* c #5A828F", "= c #59808D", "- c #5D7D86", "; c #7D959A", "> c #8DA0A4", ", c #82989D", "' c #628188", ") c #587F8B", "! c #59818E", "~ c #C0C6C7", "{ c #517482", "] c #5C7A84", "^ c #6F888D", "/ c #ADBCBE", "( c #B6C4C6", "_ c #B6C4C7", ": c #B6C3C6", "< c #B2BFC2", "[ c #7D9296", "} c #597C87", "| c #5D8491", "1 c #5E8693", "2 c #C2C8C9", "3 c #C5CBCC", "4 c #62797E", "5 c #96A8AC", "6 c #7F9398", "7 c #58757D", "8 c #51747D", "9 c #7D9297", "0 c #97A9AD", "a c #6D8488", "b c #5C818C", "c c #628A97", "d c #638B98", "e c #C5CACB", "f c #7A8C90", "g c #70878C", "h c #6E868A", "i c #567A82", "j c #567A83", "k c #688890", "l c #72898E", "m c #537076", "n c #638A96", "o c #67909C", "p c #C7CCCD", "q c #C4C9CA", "r c #536B70", "s c #587479", "t c #5C7980", "u c #5A7F88", "v c #1D3C42", "w c #5B8088", "x c #5A7F87", "y c #5B8087", "z c #567379", "A c #496369", "B c #618690", "C c #6A939E", "D c #6C95A0", "E c #C9CECF", "F c #BCC2C4", "G c #435C62", "H c #4E6C73", "I c #597C84", "J c #5E838C", "K c #5E828B", "L c #587A83", "M c #4F6E74", "N c #445E64", "O c #5A7C85", "P c #6D95A1", "Q c #7099A5", "R c #CCD0D1", "S c #BAC0C1", "T c #40595F", "U c #4D6C73", "V c #597A82", "W c #60868D", "X c #5E828A", "Y c #577A81", "Z c #4E6D74", "` c #425B61", " . c #597982", ".. c #7097A2", "+. c #759EA9", "@. c #CED2D3", "#. c #C3C7C8", "$. c #445A61", "%. c #4B6A72", "&. c #5A747A", "*. c #61838B", "=. c #648890", "-. c #62858E", ";. c #5F8188", ">. c #587378", ",. c #3D575C", "'. c #749CA4", "). c #7AA4AD", "!. c #D1D4D4", "~. c #C8CBCB", "{. c #5E7074", "]. c #48666D", "^. c #688187", "/. c #779398", "(. c #739197", "_. c #719096", ":. c #6F8F95", "<. c #739096", "[. c #637C82", "}. c #4A6971", "|. c #425D64", "1. c #66888F", "2. c #79A1AA", "3. c #7EA8B1", "4. c #D3D6D6", "5. c #CED0D0", "6. c #A0A7A7", "7. c #456067", "8. c #4F717A", "9. c #778D93", "0. c #9BADB1", "a. c #93AAAF", "b. c #98AAAE", "c. c #748B92", "d. c #4F727B", "e. c #45636A", "f. c #6D939A", "g. c #7DA8B0", "h. c #81ADB5", "i. c #D6D8D8", "j. c #D3D5D5", "k. c #C3C5C5", "l. c #818B8E", "m. c #4A6B72", "n. c #4C6F78", "o. c #496972", "p. c #384A4E", "q. c #618288", "r. c #759EA5", "s. c #7FAAB2", "t. c #D8DADA", "u. c #D0D2D2", "v. c #B8BABA", "w. c #8B9293", "x. c #5B7278", "y. c #486871", "z. c #476871", "A. c #476770", "B. c #567076", "C. c #7C8385", "D. c #84898B", "E. c #496469", "F. c #79A3AA", "G. c #7EA9B1", "H. c #DADCDC", "I. c #D9DBDB", "J. c #B9BBBB", "K. c #A2A3A3", "L. c #939595", "M. c #888C8D", "N. c #8C8E8F", "O. c #959696", "P. c #9D9F9F", "Q. c #AFB6B8", "R. c #6F99A0", "S. c #719BA2", "T. c #DDDEDE", "U. c #DBDCDC", "V. c #D4D5D5", "W. c #C7C8C8", "X. c #B9BABA", "Y. c #B1B2B2", "Z. c #CBCCCC", "`. c #D9DADA", " + c #C6CED0", ".+ c #E6E5E5", "++ c #E5E4E4", "@+ c #E3E2E2", "#+ c #DFDEDE", "$+ c #DCDBDB", "%+ c #E4E3E3", "&+ c #F6F6F6", ". . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # # # # # # # # # # # # # # # # # # # # ", "$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ ", "$ $ $ $ $ % % % % % % % % % % % % % % % % % ", "& & & & & $ * * = - ; > , ' ) ! * * * * * * ", "~ ~ ~ ~ ~ & { ] ^ / ( _ : < [ } | 1 1 1 1 1 ", "2 2 2 2 2 2 3 4 5 6 7 8 7 9 0 a b c d d d d ", "e e e e e e f g h i i j j j k l m n o o o o ", "p p p p p q r s t u u v w x y z A B C D D D ", "E E E E E F G H I J v v v K L M N O P Q Q Q ", "R R R R R S T U V W v v v X Y Z ` ...+.+.+.", "@.@.@.@.@.#.$.%.&.*.=.v -.;.>.U ,.;.'.).).).", "!.!.!.!.!.~.{.].^./.(._.:.<.[.}.|.1.2.3.3.3.", "4.4.4.4.4.5.6.7.8.9.0.a.b.c.d.e.m f.g.h.h.h.", "i.i.i.i.i.j.k.l.m.n.n.n.n.n.o.p.q.r.s.h.h.h.", "t.t.t.t.t.t.u.v.w.x.y.z.A.B.C.D.E.F.G.G.G.G.", "H.H.H.H.H.H.I.5.J.K.L.M.N.O.K.P.Q.R.S.S.S.S.", "T.T.T.T.T.T.T.U.V.W.X.Y.Y.X.W.Z.`. + + + + +", ".+.+.+.+.+.+.+.+++@+#+$+$+#+@+%+.+.+.+.+.+.+", "&+&+&+&+&+&+&+&+&+&+&+&+&+&+&+&+&+&+&+&+&+&+"}; fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/PaxHeaders.25974/button_stick_unfocus.xpm0000644000175000017500000000013212106662425026717 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.039812457 30 ctime=1360750008.407811616 fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/button_stick_unfocus.xpm0000644000175000017500000000604412106662425024752 0ustar00mgmg00000000000000/* XPM */ static char * button_stick_unfocus_xpm[] = { "22 22 124 2", " g None", ". g #5D5D5D", "+ g #7D7D7D", "@ g #A7A7A7", "# g #818181", "$ g #6D6D6D", "% g #6C6C6C", "& g #717171", "* g #707070", "= g #8D8D8D", "- g #999999", "; g #909090", "> g #747474", ", g #6E6E6E", "' g #D3D3D3", ") g #777777", "! g #727272", "~ g #808080", "{ g #B7B7B7", "] g #C0C0C0", "^ g #BFBFBF", "/ g #BBBBBB", "( g #8A8A8A", "_ g #C4C4C4", ": g #6B6B6B", "< g #737373", "[ g #A3A3A3", "} g #A9A9A9", "| g #ACACAC", "1 g #AAAAAA", "2 g #A8A8A8", "3 g #A4A4A4", "4 g #7B7B7B", "5 g #797979", "6 g #C6C6C6", "7 g #C5C5C5", "8 g #868686", "9 g #8C8C8C", "0 g #919191", "a g #8E8E8E", "b g #898989", "c g #828282", "d g #5F5F5F", "e g #7F7F7F", "f g #C8C8C8", "g g #C3C3C3", "h g #616161", "i g #767676", "j g #878787", "k g #292929", "l g #858585", "m g #6A6A6A", "n g #595959", "o g #CACACA", "p g #B8B8B8", "q g #545454", "r g #636363", "s g #282828", "t g #7C7C7C", "u g #656565", "v g #565656", "w g #5B5B5B", "x g #CCCCCC", "y g #CBCBCB", "z g #B2B2B2", "A g #525252", "B g #262626", "C g #272727", "D g #646464", "E g #535353", "F g #CECECE", "G g #CDCDCD", "H g #505050", "I g #242424", "J g #252525", "K g #4F4F4F", "L g #515151", "M g #848484", "N g #929292", "O g #D0D0D0", "P g #CFCFCF", "Q g #BEBEBE", "R g #232323", "S g #606060", "T g #464646", "U g #5A5A5A", "V g #979797", "W g #989898", "X g #C7C7C7", "Y g #838383", "Z g #676767", "` g #222222", " . g #686868", ".. g #3A3A3A", "+. g #696969", "@. g #939393", "#. g #9C9C9C", "$. g #D5D5D5", "%. g #5E5E5E", "&. g #3B3B3B", "*. g #4C4C4C", "=. g #9B9B9B", "-. g #A0A0A0", ";. g #D7D7D7", ">. g #D6D6D6", ",. g #949494", "'. g #5C5C5C", "). g #393939", "!. g #383838", "~. g #9F9F9F", "{. g #D9D9D9", "]. g #C1C1C1", "^. g #444444", "/. g #3C3C3C", "(. g #454545", "_. g #626262", ":. g #9A9A9A", "<. g #DBDBDB", "[. g #8F8F8F", "}. g #7E7E7E", "|. g #DDDDDD", "1. g #E5E5E5", "2. g #E4E4E4", "3. g #F6F6F6", ". . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # # # # # # # # # # # # # # # # # # # # ", "$ $ $ $ $ $ $ $ $ $ $ % % $ $ $ $ $ $ $ $ $ ", "$ $ $ $ $ & & & * * = - ; > , * & & & & & & ", "' ' ' ' ' $ ) ! ~ { ] ] ^ / ( % > ) ) ) ) ) ", "_ _ _ _ _ ' : < [ } | 1 } 2 3 4 % 5 4 4 4 4 ", "6 6 6 6 6 7 8 ~ 9 ; 0 0 a = b c d ) e ~ ~ ~ ", "f f f f f g h % i e j k l + > m n m # l l l ", "o o o o o p q r ! e s s s t * u v w # b b b ", "x x x x y z A r < B C C B B & D q E # = a a ", "F F F F G p H h I J J J J J I r K L M 0 N N ", "O O O O P Q w . $ * R R R * $ S T U ( V W W ", "' ' ' ' ' X Y q Z m ` ` ` m .n ..+.@.#.#.#.", "$.$.$.$.$.P | %.. u u u u u S &.*.# =.-.-.-.", ";.;.;.;.;.>.X ,.q H '.d '.K ).!., ,.~.-.-.-.", "{.{.{.{.{.{.>.].N h ^./...(._.b ~ :.#.#.#.#.", "<.<.<.<.<.<.<.;.f | [.}.}.[.| f X [.[.[.[.[.", "|.|.|.|.|.|.|.|.<.>.P f f P >.<.|.y y y y y ", "1.1.1.1.1.1.1.1.1.1.1.2.2.1.1.1.1.1.1.1.1.1.", "3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3."}; fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/PaxHeaders.25974/button_stick_pressed.xpm0000644000175000017500000000013212106662425026702 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.035812457 30 ctime=1360750008.407811616 fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/button_stick_pressed.xpm0000644000175000017500000000726412106662425024742 0ustar00mgmg00000000000000/* XPM */ static char * button_stick_pressed_xpm[] = { "22 22 165 2", " c None", ". c #45666F", "+ c #68858D", "@ c #97ADB4", "# c #6A8A97", "$ c #517887", "% c #557C8B", "& c #D1D5D6", "* c #5A828F", "= c #5B808C", "- c #68787D", "; c #8A8F90", "> c #999B9C", ", c #8F9394", "' c #6D7C80", ") c #5B7E89", "! c #59818E", "~ c #C0C6C7", "{ c #517482", "] c #5F7E89", "^ c #7F8283", "/ c #B7B7B7", "( c #C0C0C0", "_ c #BFBFBF", ": c #BBBBBB", "< c #8B8C8D", "[ c #5E7A83", "} c #5D8491", "| c #5E8693", "1 c #C2C8C9", "2 c #737373", "3 c #A3A3A3", "4 c #8E8E8E", "5 c #747474", "6 c #6E6E6E", "7 c #8D8D8D", "8 c #A4A4A4", "9 c #7B7D7E", "0 c #5F7F8A", "a c #628A97", "b c #638B98", "c c #C5CACB", "d c #5E5E5E", "e c #808080", "f c #7E7E7E", "g c #727272", "h c #7C7C7C", "i c #828282", "j c #5F6A6D", "k c #638A96", "l c #67909C", "m c #C7CCCD", "n c #C4C9CA", "o c #636464", "p c #6C6C6C", "q c #717171", "r c #767676", "s c #777777", "t c #575757", "u c #787878", "v c #707070", "w c #6A6A6A", "x c #5A5B5C", "y c #628690", "z c #6A939E", "A c #6C95A0", "B c #C9CECF", "C c #BDC2C3", "D c #555555", "E c #636363", "F c #797979", "G c #5C5C5C", "H c #5B5B5B", "I c #7A7A7A", "J c #656565", "K c #565656", "L c #6D95A1", "M c #7099A5", "N c #CCD0D1", "O c #BBBFC0", "P c #525252", "Q c #5D5D5D", "R c #5F5F5F", "S c #5A5A5A", "T c #646464", "U c #545454", "V c #5D787F", "W c #7097A2", "X c #759EA9", "Y c #CED2D3", "Z c #C3C7C8", "` c #535353", " . c #616161", ".. c #606060", "+. c #4F5050", "@. c #608087", "#. c #749CA4", "$. c #7AA4AD", "%. c #D1D4D4", "&. c #C8CBCB", "*. c #6A6B6B", "=. c #898989", "-. c #8B8B8B", ";. c #666666", ">. c #878787", ",. c #505759", "'. c #66888F", "). c #79A1AA", "!. c #7EA8B1", "~. c #D3D6D6", "{. c #CED0D0", "]. c #A3A5A5", "^. c #585959", "/. c #676767", "(. c #949595", "_. c #909192", ":. c #686868", "<. c #5B5B5C", "[. c #576E73", "}. c #6D939A", "|. c #7DA8B0", "1. c #81ADB5", "2. c #D6D8D8", "3. c #D3D5D5", "4. c #C3C5C5", "5. c #878888", "6. c #626262", "7. c #4B5A5C", "8. c #5D7D83", "9. c #759EA5", "0. c #7FAAB2", "a. c #D8DADA", "b. c #D0D2D2", "c. c #B8BABA", "d. c #8F9090", "e. c #6B6C6C", "f. c #7E7F7F", "g. c #8B9092", "h. c #56767B", "i. c #77A1A7", "j. c #7EA9B1", "k. c #DADCDC", "l. c #D9DBDB", "m. c #B9BBBB", "n. c #A2A3A3", "o. c #939494", "p. c #8A8B8B", "q. c #8D8E8E", "r. c #959696", "s. c #B8C0C2", "t. c #709AA1", "u. c #719BA2", "v. c #DDDEDE", "w. c #DBDCDC", "x. c #D4D5D5", "y. c #C7C8C8", "z. c #B9BABA", "A. c #B1B2B2", "B. c #C6CED0", "C. c #E6E5E5", "D. c #E5E4E4", "E. c #E3E2E2", "F. c #DFDEDE", "G. c #DCDBDB", "H. c #F6F6F6", ". . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # # # # # # # # # # # # # # # # # # # # ", "$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ ", "$ $ $ $ $ % % % % % % % % % % % % % % % % % ", "& & & & & $ * * = - ; > , ' ) ! * * * * * * ", "~ ~ ~ ~ ~ & { ] ^ / ( ( _ : < [ } | | | | | ", "1 1 1 1 1 1 & 2 3 4 5 6 5 7 8 9 0 a b b b b ", "c c c c c c d e f g 2 5 2 g h i j k l l l l ", "m m m m m n o p q r s t u r v w x y z A A A ", "B B B B B C D E 2 F G G H I v J K [ L M M M ", "N N N N N O P E 6 Q R R d S p T U V W X X X ", "Y Y Y Y Y Z ` .K H R ..Q S U E +.@.#.$.$.$.", "%.%.%.%.%.&.*.Q =.-.;.;.J >.2 ..,.'.).!.!.!.", "~.~.~.~.~.{.].^./.(._ _ _ _.:.<.[.}.|.1.1.1.", "2.2.2.2.2.3.4.5. .J J J J J 6.7.8.9.0.1.1.1.", "a.a.a.a.a.a.b.c.d.e.R R d /.f.g.h.i.j.j.j.j.", "k.k.k.k.k.k.l.{.m.n.o.p.q.r.n.m.s.t.u.u.u.u.", "v.v.v.v.v.v.v.w.x.y.z.A.A.z.y.x.w.B.B.B.B.B.", "C.C.C.C.C.C.C.C.D.E.F.G.G.F.E.D.C.C.C.C.C.C.", "H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H."}; fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/PaxHeaders.25974/button_stick_active.xpm0000644000175000017500000000013212106662425026510 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.035812457 30 ctime=1360750008.407811616 fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/button_stick_active.xpm0000644000175000017500000000764312106662425024551 0ustar00mgmg00000000000000/* XPM */ static char * button_stick_active_xpm[] = { "22 22 180 2", " c None", ". c #45666F", "+ c #68858D", "@ c #97ADB4", "# c #6A8A97", "$ c #517887", "% c #507786", "& c #557C8B", "* c #567A87", "= c #65757B", "- c #8A8E90", "; c #989A9B", "> c #8E9193", ", c #6A787D", "' c #557784", ") c #547B89", "! c #D1D5D6", "~ c #5A828F", "{ c #5C7B85", "] c #7E8181", "^ c #B7B7B7", "/ c #C0C0C0", "( c #BFBFBF", "_ c #BBBBBB", ": c #8A8B8C", "< c #59747C", "[ c #587F8C", "} c #C0C6C7", "| c #517482", "1 c #717475", "2 c #A3A3A3", "3 c #A9A9A9", "4 c #ACACAC", "5 c #AAAAAA", "6 c #A8A8A8", "7 c #A4A4A4", "8 c #7B7C7C", "9 c #56757F", "0 c #5C8491", "a c #5E8693", "b c #C2C8C9", "c c #C1C7C8", "d c #868788", "e c #808080", "f c #8C8C8C", "g c #909090", "h c #919191", "i c #8E8E8E", "j c #8D8D8D", "k c #898989", "l c #828282", "m c #596264", "n c #5C818D", "o c #628A97", "p c #638B98", "q c #C5CACB", "r c #C0C5C6", "s c #616161", "t c #6C6C6C", "u c #767676", "v c #7F7F7F", "w c #878787", "x c #292929", "y c #858585", "z c #7D7D7D", "A c #747474", "B c #6A6A6A", "C c #595A5A", "D c #53737D", "E c #648C98", "F c #67909C", "G c #C7CCCD", "H c #B6BABB", "I c #545454", "J c #636363", "K c #727272", "L c #282828", "M c #7C7C7C", "N c #707070", "O c #656565", "P c #565656", "Q c #4B6269", "R c #668C97", "S c #6C95A0", "T c #C9CECF", "U c #C8CDCE", "V c #AFB4B4", "W c #525252", "X c #737373", "Y c #262626", "Z c #272727", "` c #717171", " . c #646464", ".. c #46595F", "+. c #668B96", "@. c #6F98A4", "#. c #7099A5", "$. c #CCD0D1", "%. c #CBCFD0", "&. c #505050", "*. c #242424", "=. c #252525", "-. c #4F4F4F", ";. c #41575D", ">. c #698E98", ",. c #749DA8", "'. c #759EA9", "). c #CED2D3", "!. c #CDD1D2", "~. c #BCBFC0", "{. c #5B5C5C", "]. c #5D5D5D", "^. c #6D6D6D", "/. c #232323", "(. c #606060", "_. c #444747", ":. c #486166", "<. c #6F959E", "[. c #79A3AC", "}. c #7AA4AD", "|. c #D1D4D4", "1. c #C5C8C8", "2. c #828484", "3. c #545555", "4. c #676767", "5. c #222222", "6. c #686868", "7. c #595959", "8. c #333E40", "9. c #557278", "0. c #779EA7", "a. c #7EA8B1", "b. c #D3D6D6", "c. c #CED0D0", "d. c #ABADAD", "e. c #5E5F5F", "f. c #363D3E", "g. c #3D5255", "h. c #688C92", "i. c #7DA8B0", "j. c #81ADB5", "k. c #D6D8D8", "l. c #D5D7D7", "m. c #C6C8C8", "n. c #939595", "o. c #505151", "p. c #5C5C5C", "q. c #5F5F5F", "r. c #393A3B", "s. c #2C3D40", "t. c #59777C", "u. c #77A0A8", "v. c #80ACB4", "w. c #D8DADA", "x. c #C1C2C2", "y. c #929393", "z. c #616262", "A. c #444545", "B. c #3C3D3D", "C. c #3A3A3A", "D. c #454646", "E. c #626363", "F. c #868B8D", "G. c #658B91", "H. c #7CA7AE", "I. c #7EA9B1", "J. c #DADCDC", "K. c #C8C9C9", "L. c #8E9090", "M. c #7E7F7F", "N. c #C2CACC", "O. c #719BA2", "P. c #DDDEDE", "Q. c #DBDCDC", "R. c #D6D7D7", "S. c #CFD0D0", "T. c #C6CED0", "U. c #E6E5E5", "V. c #E5E4E4", "W. c #F6F6F6", ". . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # # # # # # # # # # # # # # # # # # # # ", "$ $ $ $ $ $ $ $ $ $ $ % % $ $ $ $ $ $ $ $ $ ", "$ $ $ $ $ & & & * = - ; > , ' ) & & & & & & ", "! ! ! ! ! $ ~ { ] ^ / / ( _ : < [ ~ ~ ~ ~ ~ ", "} } } } } ! | 1 2 3 4 5 3 6 7 8 9 0 a a a a ", "b b b b b c d e f g h h i j k l m n o p p p ", "q q q q q r s t u v w x y z A B C D E F F F ", "G G G G G H I J K v L L L M N O P Q R S S S ", "T T T T U V W J X Y Z Z Y Y ` .I ..+.@.#.#.", "$.$.$.$.%.H &.s *.=.=.=.=.=.*.J -.;.>.,.'.'.", ").).).).!.~.{.].^.N /././.N ^.(._.:.<.[.}.}.", "|.|.|.|.|.1.2.3.4.B 5.5.5.B 6.7.8.9.0.a.a.a.", "b.b.b.b.b.c.d.e.].O O O O O (.f.g.h.i.j.j.j.", "k.k.k.k.k.l.m.n.3.o.p.q.p.-.r.s.t.u.v.j.j.j.", "w.w.w.w.w.w.l.x.y.z.A.B.C.D.E.F.G.H.I.I.I.I.", "J.J.J.J.J.J.J.k.K.d.L.M.M.L.d.K.N.O.O.O.O.O.", "P.P.P.P.P.P.P.P.Q.R.S.K.K.S.R.Q.P.T.T.T.T.T.", "U.U.U.U.U.U.U.U.U.U.U.V.V.U.U.U.U.U.U.U.U.U.", "W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W."}; fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/PaxHeaders.25974/button_min_unfocus.xpm0000644000175000017500000000013212106662425026365 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.035812457 30 ctime=1360750008.411811616 fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/button_min_unfocus.xpm0000644000175000017500000000564212106662425024423 0ustar00mgmg00000000000000/* XPM */ static char * button_min_unfocus_xpm[] = { "22 22 116 2", " g None", ". g #5D5D5D", "+ g #7D7D7D", "@ g #A7A7A7", "# g #818181", "$ g #6D6D6D", "% g #6C6C6C", "& g #717171", "* g #707070", "= g #8D8D8D", "- g #999999", "; g #909090", "> g #747474", ", g #6E6E6E", "' g #777777", ") g #727272", "! g #808080", "~ g #B7B7B7", "{ g #C0C0C0", "] g #BFBFBF", "^ g #BBBBBB", "/ g #8A8A8A", "( g #D3D3D3", "_ g #7B7B7B", ": g #737373", "< g #A3A3A3", "[ g #A5A5A5", "} g #A4A4A4", "| g #626262", "1 g #D0D0D0", "2 g #C4C4C4", "3 g #7F7F7F", "4 g #686868", "5 g #8B8B8B", "6 g #888888", "7 g #878787", "8 g #868686", "9 g #828282", "0 g #C5C5C5", "a g #C6C6C6", "b g #858585", "c g #5C5C5C", "d g #797979", "e g #7E7E7E", "f g #6A6A6A", "g g #5B5B5B", "h g #9F9F9F", "i g #C3C3C3", "j g #C8C8C8", "k g #898989", "l g #545454", "m g #636363", "n g #272727", "o g #2A2A2A", "p g #292929", "q g #262626", "r g #656565", "s g #565656", "t g #BEBEBE", "u g #CACACA", "v g #8E8E8E", "w g #525252", "x g #7C7C7C", "y g #646464", "z g #BABABA", "A g #CBCBCB", "B g #CCCCCC", "C g #929292", "D g #919191", "E g #838383", "F g #4D4D4D", "G g #616161", "H g #282828", "I g #4F4F4F", "J g #CDCDCD", "K g #CECECE", "L g #989898", "M g #979797", "N g #505050", "O g #6F6F6F", "P g #757575", "Q g #606060", "R g #4A4A4A", "S g #CFCFCF", "T g #9C9C9C", "U g #939393", "V g #535353", "W g #696969", "X g #242424", "Y g #595959", "Z g #484848", "` g #8F8F8F", " . g #C7C7C7", ".. g #A0A0A0", "+. g #9B9B9B", "@. g #4E4E4E", "#. g #5F5F5F", "$. g #434343", "%. g #ACACAC", "&. g #D5D5D5", "*. g #949494", "=. g #515151", "-. g #3D3D3D", ";. g #D6D6D6", ">. g #D7D7D7", ",. g #B6B6B6", "'. g #444444", "). g #3B3B3B", "!. g #454545", "~. g #C2C2C2", "{. g #D9D9D9", "]. g #DBDBDB", "^. g #DDDDDD", "/. g #E5E5E5", "(. g #E4E4E4", "_. g #F6F6F6", ". . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # # # # # # # # # # # # # # # # # # # # ", "$ $ $ $ $ $ $ $ $ $ % % $ $ $ $ $ $ $ $ $ $ ", "& & & & & & & * * = - ; > , * & & $ $ $ $ $ ", "' ' ' ' ' ' ) ! ~ { { ] ^ / % > $ ( ( ( ( ( ", "_ _ _ _ _ ' : < @ @ < < [ } _ | 1 2 2 2 2 2 ", "! ! ! ! 3 4 ! / 5 6 7 8 7 7 9 * ~ 0 a a a a ", "b b b b # c % > d e 3 _ ' & f g h i j j j j ", "k k k k 3 l m n o e e + p q r s ! t u u u u ", "v v v = + w m n p o x o p q y l ) z A B B B ", "C C C D E F G & H H H H H & m I & z J K K K ", "L L L M / N . O > q q q P , Q R _ t S 1 1 1 ", "T T T T U y V W & > X > & f Y Z ` .( ( ( ( ", "........+.# @.#.% & ) & % | $.y %.S &.&.&.&.", "........h *.G =.l r f r l -.l *. .;.>.>.>.>.", "T T T T T = ,.C G '.-.).!.| C ~.;.{.{.{.{.{.", "` ` ` ` ` A >.j %.` e e ` %.j >.].].].].].].", "A A A A A ^.^.].;.S j j S ;.].^.^.^.^.^.^.^.", "/./././././././././.(.(././././././././././.", "_._._._._._._._._._._._._._._._._._._._._._."}; fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/PaxHeaders.25974/button_min_pressed.xpm0000644000175000017500000000013212106662425026350 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.031812457 30 ctime=1360750008.411811616 fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/button_min_pressed.xpm0000644000175000017500000000736212106662425024407 0ustar00mgmg00000000000000/* XPM */ static char * button_min_pressed_xpm[] = { "22 22 169 2", " c None", ". c #45666F", "+ c #68858D", "@ c #97ADB4", "# c #6A8A97", "$ c #517887", "% c #557C8B", "& c #5A828F", "* c #5B808C", "= c #68787D", "- c #8A8F90", "; c #999B9C", "> c #8F9394", ", c #6D7C80", "' c #5B7E89", ") c #59818E", "! c #587F8C", "~ c #D1D5D6", "{ c #5E8693", "] c #5F7E89", "^ c #7F8283", "/ c #B7B7B7", "( c #C0C0C0", "_ c #BFBFBF", ": c #BBBBBB", "< c #8B8C8D", "[ c #5E7A83", "} c #4B6A75", "| c #CED2D3", "1 c #C0C6C7", "2 c #638B98", "3 c #628793", "4 c #717475", "5 c #A3A3A3", "6 c #838C8F", "7 c #6A7072", "8 c #6A6A6A", "9 c #828B8E", "0 c #A4A4A4", "a c #7B7C7C", "b c #B6B9BA", "c c #C4C9CA", "d c #C1C7C8", "e c #C2C8C9", "f c #67909C", "g c #607175", "h c #808080", "i c #7B8385", "j c #707070", "k c #798184", "l c #828282", "m c #5C5C5C", "n c #BFC4C5", "o c #C5CACB", "p c #6C95A0", "q c #6A939E", "r c #5B5F60", "s c #6C6C6C", "t c #70787A", "u c #747474", "v c #757575", "w c #616161", "x c #595959", "y c #B3B7B8", "z c #C7CCCD", "A c #7099A5", "B c #6C919C", "C c #555555", "D c #636363", "E c #555656", "F c #7A7A7A", "G c #797979", "H c #525252", "I c #656565", "J c #565656", "K c #9CA0A0", "L c #C9CECF", "M c #759EA9", "N c #6E939C", "O c #545555", "P c #5B5B5B", "Q c #5D5D5D", "R c #7E7E7E", "S c #646464", "T c #545454", "U c #969899", "V c #C4C7C8", "W c #CCD0D1", "X c #7AA4AD", "Y c #749CA4", "Z c #4F5151", "` c #747C7E", " . c #5A5A5A", ".. c #5E5E5E", "+. c #5F5F5F", "@. c #838484", "#. c #505050", "$. c #A0A3A4", "%. c #C4C8C9", "&. c #7EA8B1", "*. c #79A1AA", "=. c #545F62", "-. c #788082", ";. c #8B8B8B", ">. c #878787", ",. c #888888", "'. c #606060", "). c #5E5F5F", "!. c #A9ACAC", "~. c #C8CBCB", "{. c #D1D4D4", "]. c #81ADB5", "^. c #7DA8B0", "/. c #68888E", "(. c #565758", "_. c #676767", ":. c #7D7D7D", "<. c #9C9C9C", "[. c #9A9A9A", "}. c #989898", "|. c #686868", "1. c #B3B6B6", "2. c #CED0D0", "3. c #D3D6D6", "4. c #7FAAB2", "5. c #759EA5", "6. c #53686C", "7. c #626262", "8. c #777878", "9. c #A1A2A2", "0. c #C3C5C5", "a. c #D3D5D5", "b. c #D6D8D8", "c. c #7EA9B1", "d. c #6B939A", "e. c #979D9E", "f. c #8F9090", "g. c #6D6E6E", "h. c #6B6B6B", "i. c #808181", "j. c #9B9C9C", "k. c #B8BABA", "l. c #D0D2D2", "m. c #D8DADA", "n. c #719BA2", "o. c #C5CDCF", "p. c #CBCCCC", "q. c #B9BBBB", "r. c #A2A3A3", "s. c #939494", "t. c #8A8B8B", "u. c #8D8E8E", "v. c #959696", "w. c #CFD1D1", "x. c #D9DBDB", "y. c #DADCDC", "z. c #C6CED0", "A. c #DDDEDE", "B. c #DBDCDC", "C. c #D4D5D5", "D. c #C7C8C8", "E. c #B9BABA", "F. c #B1B2B2", "G. c #E6E5E5", "H. c #E5E4E4", "I. c #E3E2E2", "J. c #DFDEDE", "K. c #DCDBDB", "L. c #F6F6F6", ". . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # # # # # # # # # # # # # # # # # # # # ", "$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ ", "% % % % % % % % % % % % % % % % % $ $ $ $ $ ", "& & & & & & & * = - ; > , ' ) ! $ ~ ~ ~ ~ ~ ", "{ { { { { { ] ^ / ( ( _ : < [ } | 1 1 1 1 1 ", "2 2 2 2 2 3 4 5 6 7 8 7 9 0 a b c d e e e e ", "f f f f f g h i j j j j j k l m n o o o o o ", "p p p p q r s t u u u v u w 8 x y c z z z z ", "A A A A B C D E x F F G x H I J K c L L L L ", "M M M M N H D O P Q R Q x H S T U V W W W W ", "X X X X Y Z w ` ...+.m x @.D #.$.%.| | | | ", "&.&.&.&.*.=.Q -.;.S S D >.,.'.).!.~.{.{.{.{.", "].].].].^./.(._.:.<.[.}.:.|.m @.1.2.3.3.3.3.", "].].].].4.5.6.Q I I I I I 7.8.9.0.a.b.b.b.b.", "c.c.c.c.c.d.e.f.g.S I D h.i.j.k.l.m.m.m.m.m.", "n.n.n.n.n.o.p.q.r.s.t.u.v.r.q.w.x.y.y.y.y.y.", "z.z.z.z.z.A.B.C.D.E.F.F.E.D.C.B.A.A.A.A.A.A.", "G.G.G.G.G.G.G.H.I.J.K.K.J.I.H.G.G.G.G.G.G.G.", "L.L.L.L.L.L.L.L.L.L.L.L.L.L.L.L.L.L.L.L.L.L."}; fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/PaxHeaders.25974/button_min_active.xpm0000644000175000017500000000013212106662425026156 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.031812457 30 ctime=1360750008.411811616 fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/button_min_active.xpm0000644000175000017500000000746112106662425024215 0ustar00mgmg00000000000000/* XPM */ static char * button_min_active_xpm[] = { "22 22 173 2", " c None", ". c #45666F", "+ c #68858D", "@ c #97ADB4", "# c #6A8A97", "$ c #517887", "% c #507786", "& c #557C8B", "* c #567A87", "= c #65757B", "- c #8A8E90", "; c #989A9B", "> c #8E9193", ", c #6A787D", "' c #557784", ") c #547B89", "! c #5A828F", "~ c #5C7B85", "{ c #7E8181", "] c #B7B7B7", "^ c #C0C0C0", "/ c #BFBFBF", "( c #BBBBBB", "_ c #8A8B8C", ": c #59747C", "< c #587F8C", "[ c #D1D5D6", "} c #5E8693", "| c #5D818D", "1 c #717475", "2 c #A3A3A3", "3 c #A7A7A7", "4 c #A5A5A5", "5 c #A4A4A4", "6 c #7B7C7C", "7 c #4C6B76", "8 c #CED2D3", "9 c #C0C6C7", "0 c #638B98", "a c #628A97", "b c #5D6C71", "c c #808080", "d c #8A8A8A", "e c #8B8B8B", "f c #888888", "g c #878787", "h c #868686", "i c #828282", "j c #707171", "k c #B4B9BA", "l c #C1C7C8", "m c #C2C8C9", "n c #67909C", "o c #648C98", "p c #5A5D5E", "q c #6C6C6C", "r c #747474", "s c #797979", "t c #7E7E7E", "u c #7F7F7F", "v c #7B7B7B", "w c #777777", "x c #717171", "y c #6A6A6A", "z c #5B5B5B", "A c #9DA1A2", "B c #C0C5C6", "C c #C5CACB", "D c #6C95A0", "E c #658A93", "F c #545454", "G c #636363", "H c #272727", "I c #2A2A2A", "J c #7D7D7D", "K c #292929", "L c #262626", "M c #656565", "N c #565656", "O c #7E8182", "P c #BCC0C1", "Q c #C7CCCD", "R c #7099A5", "S c #6F98A4", "T c #648791", "U c #525252", "V c #7C7C7C", "W c #646464", "X c #707373", "Y c #B7BCBD", "Z c #C8CDCE", "` c #C9CECF", " . c #759EA9", ".. c #749DA8", "+. c #688D97", "@. c #4D4E4F", "#. c #616161", "$. c #282828", "%. c #4F4F4F", "&. c #707273", "*. c #B8BBBC", "=. c #CBCFD0", "-. c #CCD0D1", ";. c #7AA4AD", ">. c #79A3AC", ",. c #6F959E", "'. c #4B5354", "). c #5D5D5D", "!. c #6F6F6F", "~. c #757575", "{. c #6E6E6E", "]. c #606060", "^. c #4A4A4A", "/. c #797C7C", "(. c #BCBFC0", "_. c #CDD1D2", ":. c #7EA8B1", "<. c #779EA7", "[. c #536B70", "}. c #535454", "|. c #696969", "1. c #242424", "2. c #595959", "3. c #484949", "4. c #8E9090", "5. c #C5C8C8", "6. c #D1D4D4", "7. c #81ADB5", "8. c #7DA8B0", "9. c #688C92", "0. c #445254", "a. c #5F5F5F", "b. c #727272", "c. c #626262", "d. c #434343", "e. c #646565", "f. c #ABADAD", "g. c #CED0D0", "h. c #D3D6D6", "i. c #80ACB4", "j. c #77A0A8", "k. c #4D6A6F", "l. c #4F5253", "m. c #545555", "n. c #3D3D3D", "o. c #939595", "p. c #C6C8C8", "q. c #D5D7D7", "r. c #D6D8D8", "s. c #7EA9B1", "t. c #6F99A0", "u. c #B1B8B9", "v. c #929393", "w. c #616262", "x. c #444545", "y. c #3D3E3E", "z. c #3B3B3B", "A. c #454646", "B. c #626363", "C. c #C1C3C3", "D. c #D8DADA", "E. c #719BA2", "F. c #C6CED0", "G. c #C8C9C9", "H. c #7E7F7F", "I. c #DADCDC", "J. c #DDDEDE", "K. c #DBDCDC", "L. c #D6D7D7", "M. c #CFD0D0", "N. c #E6E5E5", "O. c #E5E4E4", "P. c #F6F6F6", ". . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # # # # # # # # # # # # # # # # # # # # ", "$ $ $ $ $ $ $ $ $ $ % % $ $ $ $ $ $ $ $ $ $ ", "& & & & & & & * = - ; > , ' ) & & $ $ $ $ $ ", "! ! ! ! ! ! ~ { ] ^ ^ / ( _ : < $ [ [ [ [ [ ", "} } } } } | 1 2 3 3 2 2 4 5 6 7 8 9 9 9 9 9 ", "0 0 0 0 a b c d e f g h g g i j k l m m m m ", "n n n n o p q r s t u v w x y z A B C C C C ", "D D D D E F G H I t t J K L M N O P Q Q Q Q ", "R R R S T U G H K I V I K L W F X Y Z ` ` ` ", " . . ...+.@.#.x $.$.$.$.$.x G %.&.*.=.-.-.-.", ";.;.;.>.,.'.).!.r L L L ~.{.].^./.(._.8 8 8 ", ":.:.:.:.<.[.}.|.x r 1.r x y 2.3.4.5.6.6.6.6.", "7.7.7.7.8.9.0.a.q x b.x q c.d.e.f.g.h.h.h.h.", "7.7.7.7.i.j.k.l.m.M y M F n.m.o.p.q.r.r.r.r.", "s.s.s.s.s.t.u.v.w.x.y.z.A.B.v.C.q.D.D.D.D.D.", "E.E.E.E.E.F.r.G.f.4.H.H.4.f.G.r.I.I.I.I.I.I.", "F.F.F.F.F.J.J.K.L.M.G.G.M.L.K.J.J.J.J.J.J.J.", "N.N.N.N.N.N.N.N.N.N.O.O.N.N.N.N.N.N.N.N.N.N.", "P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P.P."}; fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/PaxHeaders.25974/button_max_unfocus.xpm0000644000175000017500000000013212106662425026367 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.027812457 30 ctime=1360750008.411811616 fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/button_max_unfocus.xpm0000644000175000017500000000554212106662425024424 0ustar00mgmg00000000000000/* XPM */ static char * button_max_unfocus_xpm[] = { "22 22 112 2", " g None", ". g #5D5D5D", "+ g #7D7D7D", "@ g #A7A7A7", "# g #818181", "$ g #6D6D6D", "% g #6C6C6C", "& g #6F6F6F", "* g #8C8C8C", "= g #999999", "- g #8F8F8F", "; g #727272", "> g #6B6B6B", ", g #D3D3D3", "' g #BABABA", ") g #868686", "! g #B7B7B7", "~ g #C0C0C0", "{ g #BFBFBF", "] g #BBBBBB", "^ g #8E8E8E", "/ g #A9A9A9", "( g #CFCFCF", "_ g #C4C4C4", ": g #B9B9B9", "< g #787878", "[ g #A3A3A3", "} g #ACACAC", "| g #A8A8A8", "1 g #A4A4A4", "2 g #7E7E7E", "3 g #A5A5A5", "4 g #C1C1C1", "5 g #C6C6C6", "6 g #C5C5C5", "7 g #808080", "8 g #909090", "9 g #919191", "0 g #8D8D8D", "a g #898989", "b g #828282", "c g #C8C8C8", "d g #C3C3C3", "e g #616161", "f g #767676", "g g #7F7F7F", "h g #2C2C2C", "i g #848484", "j g #747474", "k g #6A6A6A", "l g #5B5B5B", "m g #9F9F9F", "n g #CACACA", "o g #B8B8B8", "p g #545454", "q g #636363", "r g #2B2B2B", "s g #7C7C7C", "t g #707070", "u g #656565", "v g #565656", "w g #BEBEBE", "x g #CBCBCB", "y g #CCCCCC", "z g #B1B1B1", "A g #525252", "B g #737373", "C g #292929", "D g #2A2A2A", "E g #717171", "F g #646464", "G g #CDCDCD", "H g #CECECE", "I g #505050", "J g #272727", "K g #282828", "L g #777777", "M g #262626", "N g #4F4F4F", "O g #D0D0D0", "P g #BDBDBD", "Q g #252525", "R g #606060", "S g #4A4A4A", "T g #7B7B7B", "U g #C7C7C7", "V g #838383", "W g #676767", "X g #686868", "Y g #595959", "Z g #484848", "` g #D5D5D5", " . g #5E5E5E", ".. g #434343", "+. g #D7D7D7", "@. g #D6D6D6", "#. g #949494", "$. g #5C5C5C", "%. g #5F5F5F", "&. g #3C3C3C", "*. g #D9D9D9", "=. g #929292", "-. g #444444", ";. g #3A3A3A", ">. g #454545", ",. g #626262", "'. g #C2C2C2", "). g #DBDBDB", "!. g #DDDDDD", "~. g #E5E5E5", "{. g #E4E4E4", "]. g #F6F6F6", ". . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # # # # # # # # # # # # # # # # # # # # ", "$ $ $ $ $ $ $ $ $ $ % % $ $ $ $ $ $ $ $ $ $ ", "$ $ $ $ $ $ $ % & * = - ; > % $ $ $ $ $ $ $ ", ", , , , , , ' ) ! ~ ~ { ] ^ / ( , , , , , , ", "_ _ _ _ _ : < [ / } / / | 1 2 3 4 _ _ _ _ _ ", "5 5 5 5 6 # 7 * 8 9 8 ^ 0 a b $ ! 6 5 5 5 5 ", "c c c c d e % f g ) h i + j k l m d c c c c ", "n n n n o p q ; 2 r r r s t u v 7 w n n n n ", "x y y x z A q B C D D D C E F p ; ' n y y y ", "G H H G ! I e J K K L K K M q N E ' y H H H ", "( O O ( P l . Q M t t t M Q R S T w H O O O ", ", , , , U V p W k k k k k X Y Z - U , , , , ", "` ` ` ` ( } .. u u u u u R ..F } ( ` ` ` ` ", "+.+.+.+.@.U #.p I $.%.$.N &.p #.U @.+.+.+.+.", "*.*.*.*.*.@.4 =.e -.&.;.>.,.=.'.@.*.*.*.*.*.", ").).).).).).+.c } - 2 2 - } c +.).).).).).).", "!.!.!.!.!.!.!.).@.( c c ( @.).!.!.!.!.!.!.!.", "~.~.~.~.~.~.~.~.~.~.{.{.~.~.~.~.~.~.~.~.~.~.", "].].].].].].].].].].].].].].].].].].].].].]."}; fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/PaxHeaders.25974/button_max_pressed.xpm0000644000175000017500000000013212106662425026352 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.027812457 30 ctime=1360750008.415811616 fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/button_max_pressed.xpm0000644000175000017500000000660212106662425024405 0ustar00mgmg00000000000000/* XPM */ static char * button_max_pressed_xpm[] = { "22 22 146 2", " c None", ". c #45666F", "+ c #68858D", "@ c #97ADB4", "# c #6A8A97", "$ c #517887", "% c #D1D5D6", "& c #C8CCCD", "* c #989A9A", "= c #989898", "- c #9F9F9F", "; c #9A9B9B", "> c #98999A", ", c #C4C8C8", "' c #D0D4D5", ") c #C0C6C7", "! c #ACB0B1", "~ c #868686", "{ c #B7B7B7", "] c #C0C0C0", "^ c #BFBFBF", "/ c #BBBBBB", "( c #8F8F8F", "_ c #A2A6A7", ": c #BEC4C5", "< c #C2C8C9", "[ c #B9BFBF", "} c #787979", "| c #A3A3A3", "1 c #7D7E7E", "2 c #707070", "3 c #999A9A", "4 c #A4A4A4", "5 c #7F7F7F", "6 c #ACB1B2", "7 c #C1C7C8", "8 c #C5CACB", "9 c #858788", "0 c #808080", "a c #8D8E8F", "b c #8C8D8D", "c c #828282", "d c #BEC2C3", "e c #C7CCCD", "f c #C4C9CA", "g c #636464", "h c #6C6C6C", "i c #818283", "j c #747474", "k c #585858", "l c #757575", "m c #818282", "n c #6A6A6A", "o c #5D5D5D", "p c #B3B7B8", "q c #C8CDCE", "r c #C9CECF", "s c #BDC2C3", "t c #555555", "u c #636363", "v c #787878", "w c #5C5C5C", "x c #5B5B5B", "y c #727272", "z c #656565", "A c #565656", "B c #9CA0A0", "C c #CBCFD0", "D c #CCD0D1", "E c #CACECF", "F c #BBBFC0", "G c #525252", "H c #737373", "I c #5E5E5E", "J c #5A5A5A", "K c #717272", "L c #646464", "M c #545454", "N c #969899", "O c #C4C7C8", "P c #CDD1D2", "Q c #CED2D3", "R c #C3C7C8", "S c #535353", "T c #616161", "U c #606161", "V c #595959", "W c #5F5F5F", "X c #505050", "Y c #A0A3A4", "Z c #C4C8C9", "` c #D1D4D4", " . c #C8CBCB", ".. c #6A6B6B", "+. c #626363", "@. c #888888", "#. c #878787", "$. c #626262", "%. c #606060", "&. c #5E5F5F", "*. c #A9ACAC", "=. c #D3D6D6", "-. c #CED0D0", ";. c #A3A5A5", ">. c #585959", ",. c #676767", "'. c #949595", "). c #ABABAB", "!. c #A7A8A8", "~. c #939494", "{. c #686868", "]. c #838484", "^. c #B3B6B6", "/. c #D6D8D8", "(. c #D3D5D5", "_. c #C3C5C5", ":. c #878888", "<. c #777878", "[. c #A1A2A2", "}. c #D8DADA", "|. c #D0D2D2", "1. c #B8BABA", "2. c #8F9090", "3. c #6B6C6C", "4. c #808181", "5. c #9B9C9C", "6. c #DADCDC", "7. c #D9DBDB", "8. c #B9BBBB", "9. c #A2A3A3", "0. c #8A8B8B", "a. c #8D8E8E", "b. c #959696", "c. c #CFD1D1", "d. c #DDDEDE", "e. c #DBDCDC", "f. c #D4D5D5", "g. c #C7C8C8", "h. c #B9BABA", "i. c #B1B2B2", "j. c #E6E5E5", "k. c #E5E4E4", "l. c #E3E2E2", "m. c #DFDEDE", "n. c #DCDBDB", "o. c #F6F6F6", ". . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # # # # # # # # # # # # # # # # # # # # ", "$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ ", "$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ ", "% % % % % % % & * = - ; > , ' % % % % % % % ", ") ) ) ) ) ) ! ~ { ] ] ^ / ( _ : ) ) ) ) ) ) ", "< < < < < [ } | ; 1 2 1 3 4 5 6 7 < < < < < ", "8 8 8 8 8 9 0 a 2 2 2 2 2 b c } d 8 8 8 8 8 ", "e e e e f g h i j j k l j m n o p f e e e e ", "q r r e s t u l v w w x v y z A B f e r r r ", "C D D E F G u H w I I o J K L M N O E D D D ", "P Q Q D R S T U J o 5 x V W u X Y Z D Q Q Q ", "` ` ` ` ...o +.L @.#.~ $.+.%.&.*. .` ` ` ` ", "=.=.=.=.-.;.>.,.'.).| !.~.{.w ].^.-.=.=.=.=.", "/./././.(._.:.T z z z z z $.<.[._.(././././.", "}.}.}.}.}.|.1.2.3.W W I {.4.5.1.|.}.}.}.}.}.", "6.6.6.6.6.7.-.8.9.~.0.a.b.9.8.c.7.6.6.6.6.6.", "d.d.d.d.d.d.e.f.g.h.i.i.h.g.f.e.d.d.d.d.d.d.", "j.j.j.j.j.j.j.k.l.m.n.n.m.l.k.j.j.j.j.j.j.j.", "o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o."}; fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/PaxHeaders.25974/button_max_active.xpm0000644000175000017500000000013212106662425026160 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.027812457 30 ctime=1360750008.415811616 fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/button_max_active.xpm0000644000175000017500000000662112106662425024214 0ustar00mgmg00000000000000/* XPM */ static char * button_max_active_xpm[] = { "22 22 147 2", " c None", ". c #45666F", "+ c #68858D", "@ c #97ADB4", "# c #6A8A97", "$ c #517887", "% c #507786", "& c #527684", "* c #647379", "= c #898E8F", "- c #989A9B", "; c #8D9192", "> c #69767B", ", c #527481", "' c #507785", ") c #D1D5D6", "! c #B8BBBC", "~ c #868686", "{ c #B7B7B7", "] c #C0C0C0", "^ c #BFBFBF", "/ c #BBBBBB", "( c #8E8E8E", "_ c #A8AAAB", ": c #CDD1D2", "< c #C0C6C7", "[ c #B6BBBC", "} c #787878", "| c #A3A3A3", "1 c #A9A9A9", "2 c #ACACAC", "3 c #A8A8A8", "4 c #A4A4A4", "5 c #7E7E7E", "6 c #A2A7A8", "7 c #BDC3C4", "8 c #C2C8C9", "9 c #C1C7C8", "0 c #808283", "a c #808080", "b c #8C8C8C", "c c #909090", "d c #919191", "e c #8D8D8D", "f c #898989", "g c #828282", "h c #6D6E6F", "i c #B4B9BA", "j c #C5CACB", "k c #C0C5C6", "l c #616161", "m c #6C6C6C", "n c #767676", "o c #7F7F7F", "p c #2C2C2C", "q c #848484", "r c #7D7D7D", "s c #747474", "t c #6A6A6A", "u c #5B5B5B", "v c #9DA1A2", "w c #C7CCCD", "x c #B6BABB", "y c #545454", "z c #636363", "A c #727272", "B c #2B2B2B", "C c #7C7C7C", "D c #707070", "E c #656565", "F c #565656", "G c #7E8182", "H c #BCC0C1", "I c #C8CDCE", "J c #C9CECF", "K c #AFB3B4", "L c #525252", "M c #737373", "N c #292929", "O c #2A2A2A", "P c #717171", "Q c #646464", "R c #707373", "S c #B7BCBD", "T c #CBCFD0", "U c #CCD0D1", "V c #B5B9BA", "W c #505050", "X c #272727", "Y c #282828", "Z c #777777", "` c #262626", " . c #4F4F4F", ".. c #707273", "+. c #CACECF", "@. c #CED2D3", "#. c #BBBEBF", "$. c #5B5C5C", "%. c #5D5D5D", "&. c #252525", "*. c #606060", "=. c #4A4A4A", "-. c #797C7C", ";. c #BCBFC0", ">. c #D1D4D4", ",. c #C5C8C8", "'. c #828484", "). c #545555", "!. c #676767", "~. c #686868", "{. c #595959", "]. c #484949", "^. c #8E9090", "/. c #D3D6D6", "(. c #CED0D0", "_. c #ABADAD", ":. c #5E5F5F", "<. c #434343", "[. c #646565", "}. c #D6D8D8", "|. c #D5D7D7", "1. c #C6C8C8", "2. c #939595", "3. c #505151", "4. c #5C5C5C", "5. c #5F5F5F", "6. c #3C3C3C", "7. c #D8DADA", "8. c #C1C2C2", "9. c #929393", "0. c #616262", "a. c #444545", "b. c #3C3D3D", "c. c #3A3A3A", "d. c #454646", "e. c #626363", "f. c #C1C3C3", "g. c #DADCDC", "h. c #C8C9C9", "i. c #7E7F7F", "j. c #DDDEDE", "k. c #DBDCDC", "l. c #D6D7D7", "m. c #CFD0D0", "n. c #E6E5E5", "o. c #E5E4E4", "p. c #F6F6F6", ". . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # # # # # # # # # # # # # # # # # # # # ", "$ $ $ $ $ $ $ $ $ $ % % $ $ $ $ $ $ $ $ $ $ ", "$ $ $ $ $ $ $ & * = - ; > , ' $ $ $ $ $ $ $ ", ") ) ) ) ) ) ! ~ { ] ] ^ / ( _ : ) ) ) ) ) ) ", "< < < < < [ } | 1 2 1 1 3 4 5 6 7 < < < < < ", "8 8 8 8 9 0 a b c d c ( e f g h i 9 8 8 8 8 ", "j j j j k l m n o ~ p q r s t u v k j j j j ", "w w w w x y z A 5 B B B C D E F G H w w w w ", "I J J I K L z M N O O O N P Q y R S w J J J ", "T U U T V W l X Y Y Z Y Y ` z ...! +.U U U ", ": @.@.: #.$.%.&.` D D D ` &.*.=.-.;.U @.@.@.", ">.>.>.>.,.'.).!.t t t t t ~.{.].^.,.>.>.>.>.", "/./././.(._.:.%.E E E E E *.<.[._.(././././.", "}.}.}.}.|.1.2.).3.4.5.4. .6.).2.1.|.}.}.}.}.", "7.7.7.7.7.|.8.9.0.a.b.c.d.e.9.f.|.7.7.7.7.7.", "g.g.g.g.g.g.}.h._.^.i.i.^._.h.}.g.g.g.g.g.g.", "j.j.j.j.j.j.j.k.l.m.h.h.m.l.k.j.j.j.j.j.j.j.", "n.n.n.n.n.n.n.n.n.n.o.o.n.n.n.n.n.n.n.n.n.n.", "p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p."}; fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/PaxHeaders.25974/button_close_unfocus.xpm0000644000175000017500000000013212106662425026707 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.023812457 30 ctime=1360750008.415811616 fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/button_close_unfocus.xpm0000644000175000017500000000534412106662425024744 0ustar00mgmg00000000000000/* XPM */ static char * button_close_unfocus_xpm[] = { "22 22 104 2", " g None", ". g #5D5D5D", "+ g #7D7D7D", "@ g #A7A7A7", "# g #818181", "$ g #6D6D6D", "% g #6C6C6C", "& g #6F6F6F", "* g #8C8C8C", "= g #999999", "- g #8F8F8F", "; g #727272", "> g #6B6B6B", ", g #D3D3D3", "' g #BABABA", ") g #868686", "! g #B7B7B7", "~ g #C0C0C0", "{ g #BFBFBF", "] g #BBBBBB", "^ g #8E8E8E", "/ g #A9A9A9", "( g #CFCFCF", "_ g #C4C4C4", ": g #B9B9B9", "< g #787878", "[ g #A3A3A3", "} g #AAAAAA", "| g #ACACAC", "1 g #A6A6A6", "2 g #A4A4A4", "3 g #7E7E7E", "4 g #A5A5A5", "5 g #C1C1C1", "6 g #C6C6C6", "7 g #C5C5C5", "8 g #808080", "9 g #919191", "0 g #8B8B8B", "a g #878787", "b g #828282", "c g #C8C8C8", "d g #C3C3C3", "e g #616161", "f g #1B1B1B", "g g #1E1E1E", "h g #1D1D1D", "i g #1A1A1A", "j g #6A6A6A", "k g #5B5B5B", "l g #9F9F9F", "m g #CACACA", "n g #B8B8B8", "o g #545454", "p g #636363", "q g #737373", "r g #7A7A7A", "s g #707070", "t g #656565", "u g #565656", "v g #BEBEBE", "w g #CBCBCB", "x g #CCCCCC", "y g #B1B1B1", "z g #525252", "A g #717171", "B g #747474", "C g #1C1C1C", "D g #646464", "E g #CDCDCD", "F g #CECECE", "G g #505050", "H g #4F4F4F", "I g #D0D0D0", "J g #BDBDBD", "K g #181818", "L g #191919", "M g #606060", "N g #494949", "O g #C7C7C7", "P g #838383", "Q g #595959", "R g #484848", "S g #D5D5D5", "T g #5E5E5E", "U g #434343", "V g #D7D7D7", "W g #D6D6D6", "X g #949494", "Y g #5C5C5C", "Z g #5F5F5F", "` g #3C3C3C", " . g #D9D9D9", ".. g #929292", "+. g #444444", "@. g #3A3A3A", "#. g #454545", "$. g #626262", "%. g #C2C2C2", "&. g #DBDBDB", "*. g #DDDDDD", "=. g #E5E5E5", "-. g #E4E4E4", ";. g #F6F6F6", ". . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # # # # # # # # # # # # # # # # # # # # ", "$ $ $ $ $ $ $ $ $ $ % % $ $ $ $ $ $ $ $ $ $ ", "$ $ $ $ $ $ $ % & * = - ; > % $ $ $ $ $ $ $ ", ", , , , , , ' ) ! ~ ~ { ] ^ / ( , , , , , , ", "_ _ _ _ _ : < [ } | } @ 1 2 3 4 5 _ _ _ _ _ ", "6 6 6 6 7 # 8 * 9 0 a ) a a b $ ! 7 6 6 6 6 ", "c c c c d e % f g 3 3 + h i j k l d c c c c ", "m m m m n o p q h h r h h s t u 8 v m m m m ", "w x x m y z p A B C C C B A D o A ' m x x w ", "E F F x ! G e $ f f s f f $ p H s ' x F F E ", "( I I F J k . K L j j j L L M N r v F I I ( ", ", , , , O P o j j j j j j j Q R - O , , , , ", "S S S S ( | T . t t t t t M U D | ( S S S S ", "V V V V W O X o G Y Z Y H ` o X O W V V V V ", " . . . . .W 5 ..e +.` @.#.$...%.W . . . . .", "&.&.&.&.&.&.V c | - 3 3 - | c V &.&.&.&.&.&.", "*.*.*.*.*.*.*.&.W ( c c ( W &.*.*.*.*.*.*.*.", "=.=.=.=.=.=.=.=.=.=.-.-.=.=.=.=.=.=.=.=.=.=.", ";.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;.;."}; fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/PaxHeaders.25974/button_close_pressed.xpm0000644000175000017500000000013212106662425026672 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.023812457 30 ctime=1360750008.415811616 fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/button_close_pressed.xpm0000644000175000017500000000662412106662425024731 0ustar00mgmg00000000000000/* XPM */ static char * button_close_pressed_xpm[] = { "22 22 147 2", " c None", ". c #45666F", "+ c #68858D", "@ c #97ADB4", "# c #6A8A97", "$ c #517887", "% c #D1D5D6", "& c #C8CCCD", "* c #989A9A", "= c #989898", "- c #9F9F9F", "; c #9A9B9B", "> c #98999A", ", c #C4C8C8", "' c #D0D4D5", ") c #C0C6C7", "! c #ACB0B1", "~ c #868686", "{ c #B7B7B7", "] c #C0C0C0", "^ c #BFBFBF", "/ c #BBBBBB", "( c #8F8F8F", "_ c #A2A6A7", ": c #BEC4C5", "< c #C2C8C9", "[ c #B9BFBF", "} c #787979", "| c #A3A3A3", "1 c #7D7E7E", "2 c #707070", "3 c #999A9A", "4 c #A4A4A4", "5 c #7F7F7F", "6 c #ACB1B2", "7 c #C1C7C8", "8 c #C5CACB", "9 c #858788", "0 c #808080", "a c #8D8E8F", "b c #8C8D8D", "c c #828282", "d c #BEC2C3", "e c #C7CCCD", "f c #C4C9CA", "g c #636464", "h c #6C6C6C", "i c #818283", "j c #747474", "k c #757575", "l c #818282", "m c #6A6A6A", "n c #5D5D5D", "o c #B3B7B8", "p c #C9CECF", "q c #C8CDCE", "r c #BDC2C3", "s c #555555", "t c #636363", "u c #535353", "v c #565656", "w c #7A7A7A", "x c #797979", "y c #505050", "z c #656565", "A c #9CA0A0", "B c #C3C8C9", "C c #CACECF", "D c #CCD0D1", "E c #CBCFD0", "F c #BBBFC0", "G c #525252", "H c #737374", "I c #575757", "J c #595959", "K c #7E7E7E", "L c #585858", "M c #717272", "N c #646464", "O c #545454", "P c #969899", "Q c #C3C6C7", "R c #CED2D3", "S c #CDD1D2", "T c #C3C7C8", "U c #616161", "V c #848585", "W c #777777", "X c #838484", "Y c #A0A3A4", "Z c #D1D4D4", "` c #C8CBCB", " . c #6A6B6B", ".. c #898989", "+. c #606060", "@. c #5E5E5E", "#. c #878787", "$. c #888888", "%. c #5E5F5F", "&. c #A9ACAC", "*. c #D3D6D6", "=. c #CED0D0", "-. c #A3A5A5", ";. c #585959", ">. c #494949", ",. c #ABABAB", "'. c #A7A8A8", "). c #4A4A4A", "!. c #5C5C5C", "~. c #B3B6B6", "{. c #D6D8D8", "]. c #D3D5D5", "^. c #C3C5C5", "/. c #878888", "(. c #626262", "_. c #777878", ":. c #A1A2A2", "<. c #D8DADA", "[. c #D0D2D2", "}. c #B8BABA", "|. c #8F9090", "1. c #6B6C6C", "2. c #5F5F5F", "3. c #686868", "4. c #808181", "5. c #9B9C9C", "6. c #DADCDC", "7. c #D9DBDB", "8. c #B9BBBB", "9. c #A2A3A3", "0. c #939494", "a. c #8A8B8B", "b. c #8D8E8E", "c. c #959696", "d. c #CFD1D1", "e. c #DDDEDE", "f. c #DBDCDC", "g. c #D4D5D5", "h. c #C7C8C8", "i. c #B9BABA", "j. c #B1B2B2", "k. c #E6E5E5", "l. c #E5E4E4", "m. c #E3E2E2", "n. c #DFDEDE", "o. c #DCDBDB", "p. c #F6F6F6", ". . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # # # # # # # # # # # # # # # # # # # # ", "$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ ", "$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ ", "% % % % % % % & * = - ; > , ' % % % % % % % ", ") ) ) ) ) ) ! ~ { ] ] ^ / ( _ : ) ) ) ) ) ) ", "< < < < < [ } | ; 1 2 1 3 4 5 6 7 < < < < < ", "8 8 8 8 8 9 0 a 2 2 2 2 2 b c } d 8 8 8 8 8 ", "e e e e f g h i j j j k j l m n o f e e e e ", "e p p q r s t u v w w x s y z v A B e p p q ", "C D D E F G t H I J K L s M N O P Q C D D E ", "D R R S T u U V x J J I W X t y Y T D R R S ", "Z Z Z Z ` .n ..+.@.#.n @.$.+.%.&.` Z Z Z Z ", "*.*.*.*.=.-.;.>.z ,.| '.z ).!.X ~.=.*.*.*.*.", "{.{.{.{.].^./.U z z z z z (._.:.^.].{.{.{.{.", "<.<.<.<.<.[.}.|.1.2.2.@.3.4.5.}.[.<.<.<.<.<.", "6.6.6.6.6.7.=.8.9.0.a.b.c.9.8.d.7.6.6.6.6.6.", "e.e.e.e.e.e.f.g.h.i.j.j.i.h.g.f.e.e.e.e.e.e.", "k.k.k.k.k.k.k.l.m.n.o.o.n.m.l.k.k.k.k.k.k.k.", "p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p.p."}; fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/PaxHeaders.25974/button_close_active.xpm0000644000175000017500000000013212106662425026500 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749877.023812457 30 ctime=1360750008.415811616 fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/button_close_active.xpm0000644000175000017500000000644312106662425024536 0ustar00mgmg00000000000000/* XPM */ static char * button_close_active_xpm[] = { "22 22 140 2", " c None", ". c #45666F", "+ c #68858D", "@ c #97ADB4", "# c #6A8A97", "$ c #517887", "% c #507786", "& c #527684", "* c #647379", "= c #898E8F", "- c #989A9B", "; c #8D9192", "> c #69767B", ", c #527481", "' c #507785", ") c #D1D5D6", "! c #B8BBBC", "~ c #868686", "{ c #B7B7B7", "] c #C0C0C0", "^ c #BFBFBF", "/ c #BBBBBB", "( c #8E8E8E", "_ c #A8AAAB", ": c #CDD1D2", "< c #C0C6C7", "[ c #B6BBBC", "} c #787878", "| c #A3A3A3", "1 c #AAAAAA", "2 c #ACACAC", "3 c #A7A7A7", "4 c #A6A6A6", "5 c #A4A4A4", "6 c #7E7E7E", "7 c #A2A7A8", "8 c #BDC3C4", "9 c #C2C8C9", "0 c #C1C7C8", "a c #808283", "b c #808080", "c c #8C8C8C", "d c #919191", "e c #8B8B8B", "f c #878787", "g c #828282", "h c #6D6E6F", "i c #B4B9BA", "j c #C5CACB", "k c #C0C5C6", "l c #616161", "m c #6C6C6C", "n c #1B1B1B", "o c #1E1E1E", "p c #7D7D7D", "q c #1D1D1D", "r c #1A1A1A", "s c #6A6A6A", "t c #5B5B5B", "u c #9DA1A2", "v c #C7CCCD", "w c #B6BABB", "x c #545454", "y c #636363", "z c #737373", "A c #7A7A7A", "B c #707070", "C c #656565", "D c #565656", "E c #7E8182", "F c #BCC0C1", "G c #C8CDCE", "H c #C9CECF", "I c #AFB3B4", "J c #525252", "K c #717171", "L c #747474", "M c #1C1C1C", "N c #646464", "O c #707273", "P c #B7BCBD", "Q c #CBCFD0", "R c #CCD0D1", "S c #CACECF", "T c #B5B9BA", "U c #505050", "V c #6D6D6D", "W c #4F4F4F", "X c #6F7172", "Y c #CED2D3", "Z c #BBBEBF", "` c #5B5C5C", " . c #5D5D5D", ".. c #181818", "+. c #191919", "@. c #606060", "#. c #494A4A", "$. c #797B7C", "%. c #BCBFC0", "&. c #D1D4D4", "*. c #C5C8C8", "=. c #828484", "-. c #545555", ";. c #595959", ">. c #484949", ",. c #8E9090", "'. c #D3D6D6", "). c #CED0D0", "!. c #ABADAD", "~. c #5E5F5F", "{. c #434343", "]. c #646565", "^. c #D6D8D8", "/. c #D5D7D7", "(. c #C6C8C8", "_. c #939595", ":. c #505151", "<. c #5C5C5C", "[. c #5F5F5F", "}. c #3C3C3C", "|. c #D8DADA", "1. c #C1C2C2", "2. c #929393", "3. c #616262", "4. c #444545", "5. c #3C3D3D", "6. c #3A3A3A", "7. c #454646", "8. c #626363", "9. c #C1C3C3", "0. c #DADCDC", "a. c #C8C9C9", "b. c #7E7F7F", "c. c #DDDEDE", "d. c #DBDCDC", "e. c #D6D7D7", "f. c #CFD0D0", "g. c #E6E5E5", "h. c #E5E4E4", "i. c #F6F6F6", ". . . . . . . . . . . . . . . . . . . . . . ", "+ + + + + + + + + + + + + + + + + + + + + + ", "@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ", "# # # # # # # # # # # # # # # # # # # # # # ", "$ $ $ $ $ $ $ $ $ $ % % $ $ $ $ $ $ $ $ $ $ ", "$ $ $ $ $ $ $ & * = - ; > , ' $ $ $ $ $ $ $ ", ") ) ) ) ) ) ! ~ { ] ] ^ / ( _ : ) ) ) ) ) ) ", "< < < < < [ } | 1 2 1 3 4 5 6 7 8 < < < < < ", "9 9 9 9 0 a b c d e f ~ f f g h i 0 9 9 9 9 ", "j j j j k l m n o 6 6 p q r s t u k j j j j ", "v v v v w x y z q q A q q B C D E F v v v v ", "G H H v I J y K L M M M L K N x O P v H H G ", "Q R R S T U l V n n B n n V y W X ! S R R Q ", ": Y Y R Z ` ...+.s s s +.+.@.#.$.%.R Y Y : ", "&.&.&.&.*.=.-.s s s s s s s ;.>.,.*.&.&.&.&.", "'.'.'.'.).!.~. .C C C C C @.{.].!.).'.'.'.'.", "^.^.^.^./.(._.-.:.<.[.<.W }.-._.(./.^.^.^.^.", "|.|.|.|.|./.1.2.3.4.5.6.7.8.2.9./.|.|.|.|.|.", "0.0.0.0.0.0.^.a.!.,.b.b.,.!.a.^.0.0.0.0.0.0.", "c.c.c.c.c.c.c.d.e.f.a.a.f.e.d.c.c.c.c.c.c.c.", "g.g.g.g.g.g.g.g.g.g.h.h.g.g.g.g.g.g.g.g.g.g.", "i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i."}; fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/PaxHeaders.25974/Makefile.in0000644000175000017500000000013112106662603023761 xustar000000000000000030 mtime=1360749955.207811957 29 atime=1360750003.11581165 30 ctime=1360750008.419811616 fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/Makefile.in0000644000175000017500000003210512106662603022012 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(srcdir)/../../Makefile.include $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in subdir = data/styles/BlueFlux/pixmaps ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(styledir)" DATA = $(style_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ styledir = $(pkgdatadir)/styles/BlueFlux/pixmaps style_DATA = button_close_active.xpm button_close_pressed.xpm \ button_close_unfocus.xpm button_max_active.xpm button_max_pressed.xpm \ button_max_unfocus.xpm button_min_active.xpm button_min_pressed.xpm \ button_min_unfocus.xpm button_stick_active.xpm button_stick_pressed.xpm \ button_stick_unfocus.xpm button_stuck.xpm button_stuck_unfocus.xpm \ button_toolbar.xpm button_toolbar_pressed.xpm menu_frame.xpm title_bar.xpm \ title_bar_unfocus.xpm toolbar.xpm toolbar_label.xpm MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = $(style_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/../../Makefile.include $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/styles/BlueFlux/pixmaps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/styles/BlueFlux/pixmaps/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(srcdir)/../../Makefile.include: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-styleDATA: $(style_DATA) @$(NORMAL_INSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(styledir)'"; \ $(MKDIR_P) "$(DESTDIR)$(styledir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(styledir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(styledir)" || exit $$?; \ done uninstall-styleDATA: @$(NORMAL_UNINSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(styledir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(styledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-styleDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-styleDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-strip uninstall-am .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distclean-local distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip install-styleDATA \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-hook \ uninstall-styleDATA uninstall-hook: rmdir $(DESTDIR)$(styledir) distclean-local: rm -f *\~ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/PaxHeaders.25974/Makefile.am0000644000175000017500000000013112106662425023752 xustar000000000000000030 mtime=1360749845.875812656 29 atime=1360749853.06381261 30 ctime=1360750008.419811616 fluxbox-1.3.5/data/styles/BlueFlux/pixmaps/Makefile.am0000644000175000017500000000106612106662425022005 0ustar00mgmg00000000000000styledir = $(pkgdatadir)/styles/BlueFlux/pixmaps style_DATA = button_close_active.xpm button_close_pressed.xpm \ button_close_unfocus.xpm button_max_active.xpm button_max_pressed.xpm \ button_max_unfocus.xpm button_min_active.xpm button_min_pressed.xpm \ button_min_unfocus.xpm button_stick_active.xpm button_stick_pressed.xpm \ button_stick_unfocus.xpm button_stuck.xpm button_stuck_unfocus.xpm \ button_toolbar.xpm button_toolbar_pressed.xpm menu_frame.xpm title_bar.xpm \ title_bar_unfocus.xpm toolbar.xpm toolbar_label.xpm include ../../Makefile.include fluxbox-1.3.5/data/styles/BlueFlux/PaxHeaders.25974/theme.cfg0000644000175000017500000000013212106662425022021 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.987812457 30 ctime=1360750008.419811616 fluxbox-1.3.5/data/styles/BlueFlux/theme.cfg0000644000175000017500000001113312106662425020047 0ustar00mgmg00000000000000# blueflux # theme for fluxbox # 2003 (c) BioNiK # edited from skypher's theme, thanks fluxgen for the awesome work with fluxbox ;) toolbar: flat gradient vertical toolbar.color: #527d8b toolbar.colorTo: #527d8b toolbar.label: flat gradient vertical toolbar.label.pixmap: toolbar.xpm toolbar.label.color: #527d8b toolbar.label.colorTo: #83aeb4 toolbar.label.textColor: black toolbar.windowLabel: flat gradient vertical toolbar.windowLabel.pixmap: toolbar_label.xpm toolbar.windowLabel.color: #0000ff toolbar.windowLabel.colorTo: #c0c6c7 toolbar.windowLabel.textColor: black toolbar.clock: flat gradient vertical toolbar.clock.pixmap: toolbar.xpm toolbar.clock.color: #527d8b toolbar.clock.colorTo: #527d8b toolbar.clock.textColor: black toolbar.button: flat vertical gradient toolbar.button.color: #527d8b toolbar.button.colorTo: #527d8b toolbar.button.picColor: black toolbar.button.pressed: flat gradient vertical toolbar.button.pressed.color: #83aeb4 toolbar.button.pressed.colorTo: #527d8b menu.title: flat gradient vertical pixmap menu.title.pixmap: title_bar.xpm menu.title.color: rgb:68/95/E3 menu.title.colorTo: rgb:31/59/9C menu.title.textColor: black menu.frame.pixmap: menu_frame.xpm menu.frame: flat gradient vertical menu.frame.color: rgb:DB/DA/DB menu.frame.colorTo: rgb:D4/CE/D2 menu.frame.textColor: rgb:45/45/45 menu.hilite: flat solid menu.hilite.color: rgb:91/A3/9E menu.hilite.textColor: white menu.bullet: triangle menu.bullet.position: right slit.pixmap: menu_frame.xpm ! WIN FOCUS window.title.focus: flat gradient vertical window.label.focus.pixmap: title_bar.xpm window.label.unfocus.pixmap: title_bar_unfocus.xpm window.title.focus.pixmap: title_bar.xpm window.title.unfocus.pixmap: title_bar_unfocus.xpm window.*.textColor: black window.title.focus.color: black window.title.focus.colorTo: black window.label.focus: flat gradient vertical window.label.pixmap: title_bar.xpm window.label.focus.color: rgb:68/95/E3 window.label.focus.colorTo: rgb:31/59/9C window.label.focus.textColor: black _ window.button.focus: flat gradient vertical window.button.focus.color: rgb:EA/EA/EA window.button.focus.colorTo: rgb:94/9B/99 window.button.focus.picColor: rgb:35/35/35 window.button.pressed: flat solid window.button.pressed.color: rgb:94/9B/99 window.handle.focus: flat solid window.handle.focus.color: rgb:EA/EA/EA window.grip.focus: Raised Gradient vertical window.grip.focus.color: #83aeb4 window.grip.focus.colorTo: #527d8b window.frame.focusColor: black ! unfocused win window.title.unfocus: flat gradient vertical window.title.unfocus.color: rgb:D9/D9/D9 window.title.unfocus.colorTo: white window.label.unfocus: raised gradient vertical window.label.unfocus.color: rgb:C6/C5/C6 window.label.unfocus.colorTo: rgb:A7/A6/A7 window.label.unfocus.textColor: black window.button.unfocus: raised gradient vertical window.button.unfocus.color: rgb:EA/EA/EA window.button.unfocus.colorTo: rgb:94/9B/99 window.button.unfocus.picColor: rgb:35/35/35 window.handle.unfocus: flat solid window.handle.unfocus.color: rgb:EA/EA/EA window.grip.unfocus: flat solid window.grip.unfocus.color: rgb:EA/EA/EA window.frame.unfocusColor: black ! PIXMAPS window.close.pixmap: button_close_active.xpm window.maximize.pixmap: button_max_active.xpm window.iconify.pixmap: button_min_active.xpm window.stick.pixmap: button_stick_active.xpm window.close.pressed.pixmap: button_close_pressed.xpm window.maximize.pressed.pixmap: button_max_pressed.xpm window.iconify.pressed.pixmap: button_min_pressed.xpm window.stick.pressed.pixmap: button_stick_pressed.xpm window.close.unfocus.pixmap: button_close_unfocus.xpm window.maximize.unfocus.pixmap: button_max_unfocus.xpm window.iconify.unfocus.pixmap: button_min_unfocus.xpm window.stick.unfocus.pixmap: button_stick_unfocus.xpm window.stuck.unfocus.pixmap: button_stuck_unfocus.xpm window.stuck.pixmap: button_stuck.xpm toolbar.button.pixmap: button_toolbar.xpm toolbar.button.pressed.pixmap: button_toolbar_pressed.xpm ! FONTS toolbar.justify: center window.justify: center menu.title.justify: center menu.frame.justify: left *Font: Andale-10 borderColor: black borderWidth: 1 bevelWidth: 0 handleWidth: 3 frameWidth: 0 ! need this here, even though there is no background in the style background: none fluxbox-1.3.5/data/styles/BlueFlux/PaxHeaders.25974/Makefile.in0000644000175000017500000000013112106662603022300 xustar000000000000000030 mtime=1360749955.183811957 29 atime=1360750003.09581165 30 ctime=1360750008.419811616 fluxbox-1.3.5/data/styles/BlueFlux/Makefile.in0000644000175000017500000004714312106662603020341 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(srcdir)/../Makefile.include $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in subdir = data/styles/BlueFlux ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(styledir)" DATA = $(style_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = pixmaps styledir = $(pkgdatadir)/styles/BlueFlux style_DATA = theme.cfg MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = $(style_DATA) all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/../Makefile.include $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/styles/BlueFlux/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/styles/BlueFlux/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(srcdir)/../Makefile.include: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-styleDATA: $(style_DATA) @$(NORMAL_INSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(styledir)'"; \ $(MKDIR_P) "$(DESTDIR)$(styledir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(styledir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(styledir)" || exit $$?; \ done uninstall-styleDATA: @$(NORMAL_UNINSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(styledir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(styledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-styleDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-styleDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive uninstall-am .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic ctags \ ctags-recursive distclean distclean-generic distclean-local \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip install-styleDATA installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-hook uninstall-styleDATA uninstall-hook: rmdir $(DESTDIR)$(styledir) distclean-local: rm -f *\~ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/data/styles/BlueFlux/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425022272 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749853.039812611 30 ctime=1360750008.423811616 fluxbox-1.3.5/data/styles/BlueFlux/Makefile.am0000644000175000017500000000015612106662425020323 0ustar00mgmg00000000000000SUBDIRS=pixmaps styledir = $(pkgdatadir)/styles/BlueFlux style_DATA = theme.cfg include ../Makefile.include fluxbox-1.3.5/data/styles/PaxHeaders.25974/Emerge0000644000175000017500000000013212106662667017647 xustar000000000000000030 mtime=1360750007.571811621 30 atime=1360750008.423811616 30 ctime=1360750008.423811616 fluxbox-1.3.5/data/styles/Emerge/0000755000175000017500000000000012106662667015753 5ustar00mgmg00000000000000fluxbox-1.3.5/data/styles/Emerge/PaxHeaders.25974/pixmaps0000644000175000017500000000013212106662667021330 xustar000000000000000030 mtime=1360750007.631811621 30 atime=1360750008.423811616 30 ctime=1360750008.423811616 fluxbox-1.3.5/data/styles/Emerge/pixmaps/0000755000175000017500000000000012106662667017434 5ustar00mgmg00000000000000fluxbox-1.3.5/data/styles/Emerge/pixmaps/PaxHeaders.25974/unselected.xpm0000644000175000017500000000013212106662425024256 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.951812458 30 ctime=1360750008.423811616 fluxbox-1.3.5/data/styles/Emerge/pixmaps/unselected.xpm0000644000175000017500000000062612106662425022311 0ustar00mgmg00000000000000/* XPM */ static char * unselected_xpm[] = { "16 16 2 1", " c None", ". c #000000", " ", " ", " ", " ............. ", " . . ", " . . ", " . . ", " . . ", " . . ", " . . ", " . . ", " . . ", " . . ", " . . ", " ............. ", " "}; fluxbox-1.3.5/data/styles/Emerge/pixmaps/PaxHeaders.25974/stuck-pressed.xpm0000644000175000017500000000013212106662425024717 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.951812458 30 ctime=1360750008.427811616 fluxbox-1.3.5/data/styles/Emerge/pixmaps/stuck-pressed.xpm0000644000175000017500000000134212106662425022746 0ustar00mgmg00000000000000/* XPM */ static char * stuck_pressed_xpm[] = { "20 17 18 1", " c None", ". c #EBEBEB", "+ c #E9E9E9", "@ c #E6E6E6", "# c #E5E5E5", "$ c #E4E4E4", "% c #DEDEDE", "& c #CDCDCD", "* c #C1C1C1", "= c #C0C0C0", "- c #000000", "; c #CBCBCB", "> c #A0A0A0", ", c #BBBBBB", "' c #BDBDBD", ") c #E1E1E1", "! c #E8E8E8", "~ c #EDEDED", "....................", "....................", "....................", ".....+@##$$$$#@+....", "....+%&**====*&%+...", "....@&---------;#...", "....#*---------*$...", "....$=-->,='>--=$...", "....$=--')!)'--=$...", "....$=--=!-----=$...", "....$=--')-~!--=$...", "....$=-->,-!)--=$...", "....#*---------*$...", "....@&---------;#...", "....+%&**====*&%+...", ".....+@##$$$$#@+....", "...................."}; fluxbox-1.3.5/data/styles/Emerge/pixmaps/PaxHeaders.25974/stick-pressed.xpm0000644000175000017500000000013212106662425024703 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.947812458 30 ctime=1360750008.427811616 fluxbox-1.3.5/data/styles/Emerge/pixmaps/stick-pressed.xpm0000644000175000017500000000122712106662425022734 0ustar00mgmg00000000000000/* XPM */ static char * stick_pressed_xpm[] = { "20 17 13 1", " c None", ". c #EBEBEB", "+ c #E9E9E9", "@ c #E6E6E6", "# c #E5E5E5", "$ c #E4E4E4", "% c #DEDEDE", "& c #CDCDCD", "* c #C1C1C1", "= c #C0C0C0", "- c #000000", "; c #CBCBCB", "> c #FEFEFE", "....................", "....................", "....................", ".....+@##$$$$#@+....", "....+%&**====*&%+...", "....@&---------;#...", "....#*---------*$...", "....$=-->>>>>--=$...", "....$=-->-->>--=$...", "....$=-->>>>>--=$...", "....$=-->--->--=$...", "....$=-->>>>>--=$...", "....#*---------*$...", "....@&---------;#...", "....+%&**====*&%+...", ".....+@##$$$$#@+....", "...................."}; fluxbox-1.3.5/data/styles/Emerge/pixmaps/PaxHeaders.25974/max-unfocus.xpm0000644000175000017500000000013212106662425024370 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.947812458 30 ctime=1360750008.427811616 fluxbox-1.3.5/data/styles/Emerge/pixmaps/max-unfocus.xpm0000644000175000017500000000151112106662425022415 0ustar00mgmg00000000000000/* XPM */ static char * max_unfocus_xpm[] = { "20 17 25 1", " c None", ". c #EBEBEB", "+ c #E9E9E9", "@ c #E6E6E6", "# c #E5E5E5", "$ c #E2E2E2", "% c #DFDFDF", "& c #DEDEDE", "* c #FEFEFE", "= c #C4C4C4", "- c #898989", "; c #4C4C4C", "> c #5C5C5C", ", c #686868", "' c #6A6A6A", ") c #B9B9B9", "! c #E4E4E4", "~ c #929292", "{ c #B1B1B1", "] c #B7B7B7", "^ c #B2B2B2", "/ c #666666", "( c #E0E0E0", "_ c #E8E8E8", ": c #E1E1E1", "....................", "....................", ".....+@#$%&%$#@+....", "....+*********=&+...", "....@*********-=#...", "....#**;>,',**')!...", "....$**>~{]^**,]$...", "....%**/^&!&**']&...", "....&**']!.!**']&...", "....&**/^&!&**']&...", "....(*********/](...", "....(*********')&...", "....@=-',''','-=#...", "....+&=)]]]]])=&+...", "....._:%%&&&&%@+....", "....................", "...................."}; fluxbox-1.3.5/data/styles/Emerge/pixmaps/PaxHeaders.25974/icon-unfocus.xpm0000644000175000017500000000013212106662425024533 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.947812458 30 ctime=1360750008.427811616 fluxbox-1.3.5/data/styles/Emerge/pixmaps/icon-unfocus.xpm0000644000175000017500000000132212106662425022560 0ustar00mgmg00000000000000/* XPM */ static char * icon_unfocus_xpm[] = { "20 17 17 1", " c None", ". c #EBEBEB", "+ c #E8E8E8", "@ c #E1E1E1", "# c #DFDFDF", "$ c #DEDEDE", "% c #FEFEFE", "& c #C4C4C4", "* c #DBDBDB", "= c #888888", "- c #727272", "; c #B8B8B8", "> c #717171", ", c #6B6B6B", "' c #6F6F6F", ") c #B6B6B6", "! c #B4B4B4", "....................", "....................", "....................", "....................", "....................", "....................", "....................", "....................", ".....+@##$$$$#@+....", "....+%%%%%%%%%&*+...", "....@%%%%%%%%%=&#...", "....#%%%%%%%%%-;$...", "....@&=>,,,,,'=&#...", "....+*&)!!!!!)&*+...", ".....+@##$$$$#@+....", "....................", "...................."}; fluxbox-1.3.5/data/styles/Emerge/pixmaps/PaxHeaders.25974/close-unfocus.xpm0000644000175000017500000000013212106662425024710 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.943812458 30 ctime=1360750008.427811616 fluxbox-1.3.5/data/styles/Emerge/pixmaps/close-unfocus.xpm0000644000175000017500000000155112106662425022741 0ustar00mgmg00000000000000/* XPM */ static char * close_unfocus_xpm[] = { "20 17 27 1", " c None", ". c #EBEBEB", "+ c #E8E8E8", "@ c #E0E0E0", "# c #FEFEFE", "$ c #B4B4B4", "% c #D4D4D4", "& c #E4E4E4", "* c #B6B6B6", "= c #D8D8D8", "- c #999999", "; c #C8C8C8", "> c #DCDCDC", ", c #858585", "' c #969696", ") c #606060", "! c #7C7C7C", "~ c #717171", "{ c #5A5A5A", "] c #6B6B6B", "^ c #E2E2E2", "/ c #747474", "( c #B3B3B3", "_ c #6E6E6E", ": c #757575", "< c #727272", "[ c #7D7D7D", "....................", "....................", ".....+@@+...+@@+....", "....+##$%&.&##*=+...", "....@###-;>###,*@...", "....@$###'###)!$@...", "....+%-#####)~-%+...", ".....&;'###{]';^....", "......>#####/(>.....", ".....&###{###';^....", "....+###)_:###-%+...", "....@##)~'('##<$@...", "....@*,!-;>;-<[*@...", "....+=*$%&.&%$*=+...", ".....+@@+...+@@+....", "....................", "...................."}; fluxbox-1.3.5/data/styles/Emerge/pixmaps/PaxHeaders.25974/stuck.xpm0000644000175000017500000000013212106662425023254 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.943812458 30 ctime=1360750008.431811616 fluxbox-1.3.5/data/styles/Emerge/pixmaps/stuck.xpm0000644000175000017500000000154112106662425021304 0ustar00mgmg00000000000000/* XPM */ static char * stuck_xpm[] = { "20 17 27 1", " c None", ". c #EBEBEB", "+ c #E9E9E9", "@ c #E6E6E6", "# c #E5E5E5", "$ c #E2E2E2", "% c #DFDFDF", "& c #DEDEDE", "* c #000000", "= c #CDCDCD", "- c #989898", "; c #CBCBCB", "> c #616161", ", c #717171", "' c #7B7B7B", ") c #7D7D7D", "! c #C1C1C1", "~ c #E4E4E4", "{ c #A0A0A0", "] c #BBBBBB", "^ c #C0C0C0", "/ c #BDBDBD", "( c #7C7C7C", "_ c #EDEDED", ": c #E8E8E8", "< c #E1E1E1", "[ c #E0E0E0", "....................", "....................", ".....+@#$%&%$#@+....", "....+*********=&+...", "....@*********-;#...", "....#**>,')'**)!~...", "....$**,{]^/**'^$...", "....%**'/*****(^&...", "....&**)^*_:**)^&...", "....&**'/*:<**(^&...", "....[*********'^[...", "....[*********)!&...", "....@=-)')))')-;#...", "....+&=!!^^^^!=&+...", ".....:<%%&&&&%@+....", "....................", "...................."}; fluxbox-1.3.5/data/styles/Emerge/pixmaps/PaxHeaders.25974/stick.xpm0000644000175000017500000000013212106662425023240 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.943812458 30 ctime=1360750008.431811616 fluxbox-1.3.5/data/styles/Emerge/pixmaps/stick.xpm0000644000175000017500000000142612106662425021272 0ustar00mgmg00000000000000/* XPM */ static char * stick_xpm[] = { "20 17 22 1", " c None", ". c #EBEBEB", "+ c #E9E9E9", "@ c #E6E6E6", "# c #E5E5E5", "$ c #E2E2E2", "% c #DFDFDF", "& c #DEDEDE", "* c #000000", "= c #CDCDCD", "- c #989898", "; c #CBCBCB", "> c #FEFEFE", ", c #7D7D7D", "' c #C1C1C1", ") c #E4E4E4", "! c #7B7B7B", "~ c #C0C0C0", "{ c #7C7C7C", "] c #E0E0E0", "^ c #E8E8E8", "/ c #E1E1E1", "....................", "....................", ".....+@#$%&%$#@+....", "....+*********=&+...", "....@*********-;#...", "....#**>>>>>**,')...", "....$**>**>>**!~$...", "....%**>>>>>**{~&...", "....&**>***>**,~&...", "....&**>>>>>**{~&...", "....]*********!~]...", "....]*********,'&...", "....@=-,!,,,!,-;#...", "....+&=''~~~~'=&+...", ".....^/%%&&&&%@+....", "....................", "...................."}; fluxbox-1.3.5/data/styles/Emerge/pixmaps/PaxHeaders.25974/selected.xpm0000644000175000017500000000013212106662425023713 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.939812458 30 ctime=1360750008.431811616 fluxbox-1.3.5/data/styles/Emerge/pixmaps/selected.xpm0000644000175000017500000000062412106662425021744 0ustar00mgmg00000000000000/* XPM */ static char * selected_xpm[] = { "16 16 2 1", " c None", ". c #000000", " ", " .. ", " . ", " ............. ", " . .. . ", " . . . ", " . .. . ", " . . . . ", " . .. .. . ", " . ... . . ", " . . .. . ", " . ... . ", " . ... . ", " . . ", " ............. ", " "}; fluxbox-1.3.5/data/styles/Emerge/pixmaps/PaxHeaders.25974/max-pressed.xpm0000644000175000017500000000013212106662425024353 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.939812458 30 ctime=1360750008.431811616 fluxbox-1.3.5/data/styles/Emerge/pixmaps/max-pressed.xpm0000644000175000017500000000135712106662425022410 0ustar00mgmg00000000000000/* XPM */ static char * max_pressed_xpm[] = { "20 17 19 1", " c None", ". c #EBEBEB", "+ c #E9E9E9", "@ c #E6E6E6", "# c #E5E5E5", "$ c #E4E4E4", "% c #DEDEDE", "& c #CDCDCD", "* c #C1C1C1", "= c #C0C0C0", "- c #000000", "; c #CBCBCB", "> c #A0A0A0", ", c #BBBBBB", "' c #BDBDBD", ") c #E1E1E1", "! c #E8E8E8", "~ c #EDEDED", "{ c #9E9E9E", "....................", "....................", "....................", ".....+@##$$$$#@+....", "....+%&**====*&%+...", "....@&---------;#...", "....#*---------*$...", "....$=-->,='>--=$...", "....$=--')!)'--=$...", "....$=--=!~!=--=$...", "....$=--')!)'--=$...", "....$=-->,='{--=$...", "....#*---------*$...", "....@&---------;#...", "....+%&**====*&%+...", ".....+@##$$$$#@+....", "...................."}; fluxbox-1.3.5/data/styles/Emerge/pixmaps/PaxHeaders.25974/icon-pressed.xpm0000644000175000017500000000013212106662425024516 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.935812458 30 ctime=1360750008.435811616 fluxbox-1.3.5/data/styles/Emerge/pixmaps/icon-pressed.xpm0000644000175000017500000000134112106662425022544 0ustar00mgmg00000000000000/* XPM */ static char * icon_pressed_xpm[] = { "20 17 18 1", " c None", ". c #EBEBEB", "+ c #E9E9E9", "@ c #E6E6E6", "# c #E5E5E5", "$ c #E4E4E4", "% c #EEEEEE", "& c #DDDDDD", "* c #D3D3D3", "= c #D2D2D2", "- c #D0D0D0", "; c #D1D1D1", "> c #DEDEDE", ", c #000000", "' c #CFCFCF", ") c #D5D5D5", "! c #C8C8C8", "~ c #C5C5C5", "....................", "....................", "....................", "........+@#@+.......", "....................", "....................", "....................", "....................", ".....+@##$$$$#@+....", ".....+@##$$$$#@+....", "....+%&*=----*;>+...", "....@&,,,,,,,,,'#...", "....#),,,,,,,,,!$...", "....@;,,,,,,,,,'#...", "....+>;~~~~~~~;>+...", ".....+@##$$$$#@+....", "...................."}; fluxbox-1.3.5/data/styles/Emerge/pixmaps/PaxHeaders.25974/close-pressed.xpm0000644000175000017500000000013212106662425024673 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.935812458 30 ctime=1360750008.435811616 fluxbox-1.3.5/data/styles/Emerge/pixmaps/close-pressed.xpm0000644000175000017500000000132312106662425022721 0ustar00mgmg00000000000000/* XPM */ static char * close_pressed_xpm[] = { "20 17 17 1", " c None", ". c #EBEBEB", "+ c #E9E9E9", "@ c #E5E5E5", "# c #DCDCDC", "$ c #CACACA", "% c #E8E8E8", "& c #000000", "* c #B0B0B0", "= c #D9D9D9", "- c #E2E2E2", "; c #DBDBDB", "> c #ADADAD", ", c #C8C8C8", "' c #898989", ") c #E6E6E6", "! c #888888", "....................", "....................", "....................", ".....+@@+...+@@+....", "....+#$$#%.%#$$#+...", "....@$&&*=-;*&&$@...", "....@$&&&>,>&&&$@...", "....+#*&&&'&&&*#+...", ".....%;>&&&&&>=)....", "......-,'&&&!,-.....", ".....%;>&&&&&>=)....", "....+#*&&&'&&&*#+...", "....@$&&&>,>&&&$@...", "....@$&&*=-;*&&$@...", "....+#$$#%.%#$$#+...", ".....+@@+...+@@+....", "...................."}; fluxbox-1.3.5/data/styles/Emerge/pixmaps/PaxHeaders.25974/stuck-unfocus.xpm0000644000175000017500000000013212106662425024734 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.935812458 30 ctime=1360750008.435811616 fluxbox-1.3.5/data/styles/Emerge/pixmaps/stuck-unfocus.xpm0000644000175000017500000000151312106662425022763 0ustar00mgmg00000000000000/* XPM */ static char * stuck_unfocus_xpm[] = { "20 17 25 1", " c None", ". c #EBEBEB", "+ c #E9E9E9", "@ c #E6E6E6", "# c #E5E5E5", "$ c #E2E2E2", "% c #DFDFDF", "& c #DEDEDE", "* c #FEFEFE", "= c #C4C4C4", "- c #898989", "; c #4C4C4C", "> c #5C5C5C", ", c #686868", "' c #6A6A6A", ") c #B9B9B9", "! c #E4E4E4", "~ c #929292", "{ c #B1B1B1", "] c #B7B7B7", "^ c #B2B2B2", "/ c #666666", "( c #E0E0E0", "_ c #E8E8E8", ": c #E1E1E1", "....................", "....................", ".....+@#$%&%$#@+....", "....+*********=&+...", "....@*********-=#...", "....#**;>,',**')!...", "....$**>~{]^**,]$...", "....%**/^*****']&...", "....&**']*.!**']&...", "....&**/^*!&**']&...", "....(*********/](...", "....(*********')&...", "....@=-',''','-=#...", "....+&=)]]]]])=&+...", "....._:%%&&&&%@+....", "....................", "...................."}; fluxbox-1.3.5/data/styles/Emerge/pixmaps/PaxHeaders.25974/stick-unfocus.xpm0000644000175000017500000000013212106662425024720 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.931812458 30 ctime=1360750008.435811616 fluxbox-1.3.5/data/styles/Emerge/pixmaps/stick-unfocus.xpm0000644000175000017500000000140012106662425022742 0ustar00mgmg00000000000000/* XPM */ static char * stick_unfocus_xpm[] = { "20 17 20 1", " c None", ". c #EBEBEB", "+ c #E9E9E9", "@ c #E6E6E6", "# c #E5E5E5", "$ c #E2E2E2", "% c #DFDFDF", "& c #DEDEDE", "* c #FEFEFE", "= c #C4C4C4", "- c #898989", "; c #B7B7B7", "> c #6A6A6A", ", c #B9B9B9", "' c #E4E4E4", ") c #686868", "! c #E0E0E0", "~ c #666666", "{ c #E8E8E8", "] c #E1E1E1", "....................", "....................", ".....+@#$%&%$#@+....", "....+*********=&+...", "....@*********-=#...", "....#**;;;;;**>,'...", "....$**;**;;**);$...", "....%**;;;;;**>;&...", "....&**;***;**>;&...", "....&**;;;;;**>;&...", "....!*********~;!...", "....!*********>,&...", "....@=->)>>>)>-=#...", "....+&=,;;;;;,=&+...", ".....{]%%&&&&%@+....", "....................", "...................."}; fluxbox-1.3.5/data/styles/Emerge/pixmaps/PaxHeaders.25974/max.xpm0000644000175000017500000000013212106662425022710 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.931812458 30 ctime=1360750008.435811616 fluxbox-1.3.5/data/styles/Emerge/pixmaps/max.xpm0000644000175000017500000000153712106662425020745 0ustar00mgmg00000000000000/* XPM */ static char * max_xpm[] = { "20 17 27 1", " c None", ". c #EBEBEB", "+ c #E9E9E9", "@ c #E6E6E6", "# c #E5E5E5", "$ c #E2E2E2", "% c #DFDFDF", "& c #DEDEDE", "* c #000000", "= c #CDCDCD", "- c #989898", "; c #CBCBCB", "> c #616161", ", c #717171", "' c #7B7B7B", ") c #7D7D7D", "! c #C1C1C1", "~ c #E4E4E4", "{ c #A0A0A0", "] c #BBBBBB", "^ c #C0C0C0", "/ c #BDBDBD", "( c #E1E1E1", "_ c #E8E8E8", ": c #7C7C7C", "< c #EDEDED", "[ c #E0E0E0", "....................", "....................", ".....+@#$%&%$#@+....", "....+*********=&+...", "....@*********-;#...", "....#**>,')'**)!~...", "....$**,{]^/**'^$...", "....%**'/(_(**:^&...", "....&**)^_<_**)^&...", "....&**'/(_(**:^&...", "....[*********'^[...", "....[*********)!&...", "....@=-)')))')-;#...", "....+&=!!^^^^!=&+...", "....._(%%&&&&%@+....", "....................", "...................."}; fluxbox-1.3.5/data/styles/Emerge/pixmaps/PaxHeaders.25974/icon.xpm0000644000175000017500000000013212106662425023053 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.931812458 30 ctime=1360750008.439811616 fluxbox-1.3.5/data/styles/Emerge/pixmaps/icon.xpm0000644000175000017500000000131212106662425021077 0ustar00mgmg00000000000000/* XPM */ static char * icon_xpm[] = { "20 17 17 1", " c None", ". c #EBEBEB", "+ c #E9E9E9", "@ c #E6E6E6", "# c #E5E5E5", "$ c #E4E4E4", "% c #000000", "& c #D1D1D1", "* c #DEDEDE", "= c #A0A0A0", "- c #CFCFCF", "; c #898989", "> c #C8C8C8", ", c #858585", "' c #818181", ") c #7F7F7F", "! c #C5C5C5", "....................", "....................", "....................", "....................", "....................", "....................", "....................", "....................", ".....+@##$$$$#@+....", "....+%%%%%%%%%&*+...", "....@%%%%%%%%%=-#...", "....#%%%%%%%%%;>$...", "....@&=,')))),=-#...", "....+*&!!!!!!!&*+...", ".....+@##$$$$#@+....", "....................", "...................."}; fluxbox-1.3.5/data/styles/Emerge/pixmaps/PaxHeaders.25974/close.xpm0000644000175000017500000000013212106662425023230 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.927812458 30 ctime=1360750008.439811616 fluxbox-1.3.5/data/styles/Emerge/pixmaps/close.xpm0000644000175000017500000000154112106662425021260 0ustar00mgmg00000000000000/* XPM */ static char * close_xpm[] = { "20 17 27 1", " c None", ". c #EBEBEB", "+ c #E9E9E9", "@ c #E5E5E5", "# c #000000", "$ c #CACACA", "% c #DCDCDC", "& c #E8E8E8", "* c #B0B0B0", "= c #D9D9D9", "- c #E2E2E2", "; c #A7A7A7", "> c #ADADAD", ", c #757575", "' c #9D9D9D", ") c #7B7B7B", "! c #919191", "~ c #DBDBDB", "{ c #747474", "] c #8C8C8C", "^ c #E6E6E6", "/ c #888888", "( c #C8C8C8", "_ c #898989", ": c #7E7E7E", "< c #868686", "[ c #929292", "....................", "....................", ".....+@@+...+@@+....", "....+##$%&.&##$%+...", "....@###*=-###;$@...", "....@$###>###,'$@...", "....+%*#####)!*%+...", ".....&~>###{]>=^....", "......-#####/(-.....", ".....&###{###>=^....", "....+###)]_###*%+...", "....@##:!>(>##<$@...", "....@$;'*=-~*<[$@...", "....+%$$%&.&%$$%+...", ".....+@@+...+@@+....", "....................", "...................."}; fluxbox-1.3.5/data/styles/Emerge/pixmaps/PaxHeaders.25974/bullet.xpm0000644000175000017500000000013212106662425023412 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.927812458 30 ctime=1360750008.439811616 fluxbox-1.3.5/data/styles/Emerge/pixmaps/bullet.xpm0000644000175000017500000000062212106662425021441 0ustar00mgmg00000000000000/* XPM */ static char * bullet_xpm[] = { "16 16 2 1", " c None", ". c #000000", " ", " ", " ", " ", " . ", " .. ", " . .. ", " . . ", " . . ", " . . ", " . . ", " .. . ", " .. ", " . ", " ", " "}; fluxbox-1.3.5/data/styles/Emerge/pixmaps/PaxHeaders.25974/Makefile.in0000644000175000017500000000013112106662603023437 xustar000000000000000030 mtime=1360749955.255811956 29 atime=1360750003.15181165 30 ctime=1360750008.439811616 fluxbox-1.3.5/data/styles/Emerge/pixmaps/Makefile.in0000644000175000017500000003156612106662603021502 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(srcdir)/../../Makefile.include $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in subdir = data/styles/Emerge/pixmaps ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(styledir)" DATA = $(style_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ styledir = $(pkgdatadir)/styles/Emerge/pixmaps style_DATA = bullet.xpm close.xpm icon.xpm max.xpm stick-unfocus.xpm \ stuck-unfocus.xpm close-pressed.xpm icon-pressed.xpm max-pressed.xpm \ selected.xpm stick.xpm stuck.xpm close-unfocus.xpm icon-unfocus.xpm \ max-unfocus.xpm stick-pressed.xpm stuck-pressed.xpm unselected.xpm MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = $(style_DATA) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/../../Makefile.include $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/styles/Emerge/pixmaps/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/styles/Emerge/pixmaps/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(srcdir)/../../Makefile.include: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-styleDATA: $(style_DATA) @$(NORMAL_INSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(styledir)'"; \ $(MKDIR_P) "$(DESTDIR)$(styledir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(styledir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(styledir)" || exit $$?; \ done uninstall-styleDATA: @$(NORMAL_UNINSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(styledir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(DATA) installdirs: for dir in "$(DESTDIR)$(styledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-styleDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-styleDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: install-am install-strip uninstall-am .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distclean-local distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip install-styleDATA \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-hook \ uninstall-styleDATA uninstall-hook: rmdir $(DESTDIR)$(styledir) distclean-local: rm -f *\~ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/data/styles/Emerge/pixmaps/PaxHeaders.25974/Makefile.am0000644000175000017500000000013112106662425023430 xustar000000000000000030 mtime=1360749845.875812656 29 atime=1360749853.11181261 30 ctime=1360750008.443811616 fluxbox-1.3.5/data/styles/Emerge/pixmaps/Makefile.am0000644000175000017500000000055512106662425021465 0ustar00mgmg00000000000000styledir = $(pkgdatadir)/styles/Emerge/pixmaps style_DATA = bullet.xpm close.xpm icon.xpm max.xpm stick-unfocus.xpm \ stuck-unfocus.xpm close-pressed.xpm icon-pressed.xpm max-pressed.xpm \ selected.xpm stick.xpm stuck.xpm close-unfocus.xpm icon-unfocus.xpm \ max-unfocus.xpm stick-pressed.xpm stuck-pressed.xpm unselected.xpm include ../../Makefile.include fluxbox-1.3.5/data/styles/Emerge/PaxHeaders.25974/theme.cfg0000644000175000017500000000013212106662425021477 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.891812458 30 ctime=1360750008.443811616 fluxbox-1.3.5/data/styles/Emerge/theme.cfg0000644000175000017500000001263512106662425017535 0ustar00mgmg00000000000000!--------------------------------------------------------------------------------- ! FluxMOD www.imaginere.dk ! Style name: Emerge ! Style Author: ikaro ( ikaro@bersirc.com ) ! Style Date: Sun Sep 14 08:25:12 CEST 2003 ! Style info: Simple desktop, clean and stylish. ! Style Comments: Thank you Henrik for making Fluxbox. ! !---------------------------------------------------------------------------------- !menu: menu.title: Raised Bevel1 Gradient Vertical menu.title.textColor: #000000 !menu.title.pixmap: menu.title.color: #ebebeb menu.title.colorTo: #ffffff !menu.title.font: menu.title.justify: Center !menu.frame.pixmap: menu.frame: Raised Bevel1 Gradient CrossDiagonal menu.frame.color: #ffffff menu.frame.colorTo: #ebebeb menu.frame.textColor: #000000 menu.frame.disableColor: !menu.frame.font: menu.frame.justify: Left menu.bullet.position: Left menu.bullet: Square menu.bevelWidth: 2 menu.borderwidth: 1 menu.borderColor: #000000 menu.hilite: Raised Bevel2 Gradient Vertical menu.hilite.textColor: #000000 !menu.hilite.pixmap: menu.hilite.color: #ebebeb menu.hilite.colorTo: #ffffff menu.submenu.pixmap: bullet.xpm menu.selected.pixmap: selected.xpm menu.unselected.pixmap: unselected.xpm !menu.roundCorners: !window.font: window.justify: Center !window.roundCorners: window.alpha: 255 window.title.height: window.bevelWidth: 2 window.borderWidth: 1 window.handleWidth: 4 window.borderColor: #525050 window.close.pixmap: close.xpm window.maximize.pixmap: max.xpm window.iconify.pixmap: icon.xpm window.stick.pixmap: stick.xpm window.close.pressed.pixmap: close-pressed.xpm window.maximize.pressed.pixmap: max-pressed.xpm window.iconify.pressed.pixmap: icon-pressed.xpm window.stick.pressed.pixmap: stick-pressed.xpm window.close.unfocus.pixmap: close-unfocus.xpm window.maximize.unfocus.pixmap: max-unfocus.xpm window.iconify.unfocus.pixmap: icon-unfocus.xpm window.stick.unfocus.pixmap: stick-unfocus.xpm window.stuck.pixmap: stuck.xpm window.stuck.unfocus.pixmap: stuck-unfocus.xpm !window.shade.pixmap: !window.shade.pressed.pixmap: !window.shade.unfocus.pixmap: window.grip.focus: Raised Bevel1 Gradient Vertical !window.grip.focus.pixmap: window.grip.focus.color: #ebebeb window.grip.focus.colorTo: #ffffff window.grip.unfocus: Raised Bevel1 Gradient Vertical !window.grip.unfocus.pixmap: window.grip.unfocus.color: #cfcfcf window.grip.unfocus.colorTo: #cfcfcf window.handle.focus: Raised Bevel1 Gradient Vertical !window.handle.focus.pixmap: window.handle.focus.color: #ebebeb window.handle.focus.colorTo: #ffffff window.handle.unfocus: Raised Bevel1 Gradient Vertical !window.handle.unfocus.pixmap: window.handle.unfocus.color: #cfcfcf window.handle.unfocus.colorTo: #cfcfcf window.label.focus: Raised Bevel1 Gradient Vertical !window.label.focus.pixmap: window.label.focus.color: #ebebeb window.label.focus.colorTo: #ffffff window.label.focus.textColor: #000000 !window.label.focus.font: window.label.focus.justify: Center window.justify: Center window.label.unfocus: Raised Bevel1 Gradient Vertical !window.label.unfocus.pixmap: window.label.unfocus.color: #e3e3e3 window.label.unfocus.colorTo: #e3e3e3 window.label.unfocus.textColor: #747171 window.title.focus: Flat !window.title.focus.pixmap: window.title.focus.color: #ebebeb window.title.focus.colorTo: window.title.unfocus: Flat !window.title.unfocus.pixmap: window.title.unfocus.color: #ebebeb window.title.unfocus.colorTo: window.frame.focusColor: #525050 window.frame.unfocusColor: #525050 *.font: sans-8 slit: Raised Bevel2 Gradient Horizontal !slit.pixmap: slit.color: #ebebeb slit.colorTo: #ffffff slit.borderWidth: 1 slit.bevelWidth: 1 slit.borderColor: #ffffff toolbar: Flat !toolbar.pixmap: toolbar.color: #ebebeb toolbar.colorTo: toolbar.borderWidth: 1 toolbar.borderColor: #525050 toolbar.bevelWidth: 2 toolbar.shaped: True toolbar.alpha: 255 toolbar.height: 17 toolbar.clock: Raised Bevel1 Gradient Vertical !toolbar.clock.pixmap: toolbar.clock.color: #ebebeb toolbar.clock.colorTo: #cfcfcf !toolbar.clock.font: toolbar.clock.textColor: #000000 toolbar.clock.borderWidth: 0 toolbar.clock.borderColor: toolbar.clock.justify: Center toolbar.workspace: Raised Bevel1 Gradient Vertical !toolbar.workspace.pixmap: toolbar.workspace.color: #ebebeb toolbar.workspace.colorTo: #cfcfcf toolbar.workspace.borderWidth: 0 toolbar.workspace.borderColor: !toolbar.workspace.font: toolbar.workspace.textColor: #000000 toolbar.workspace.justify: Center toolbar.iconbar.focused: Raised Bevel1 Gradient Vertical !toolbar.iconbar.focused.pixmap: toolbar.iconbar.focused.color: #ebebeb toolbar.iconbar.focused.colorTo: #dbdbdb toolbar.iconbar.focused.borderWidth: 1 toolbar.iconbar.focused.borderColor: #5e5b5b !toolbar.iconbar.focused.font: toolbar.iconbar.focused.textColor: #000000 toolbar.iconbar.focused.justify: Center toolbar.iconbar.unfocused: Raised Bevel1 Gradient Vertical !toolbar.iconbar.unfocused.pixmap: toolbar.iconbar.unfocused.color: #ebebeb toolbar.iconbar.unfocused.colorTo: #cfcfcf toolbar.iconbar.unfocused.borderWidth: 0 toolbar.iconbar.unfocused.borderColor: !toolbar.iconbar.unfocused.font: toolbar.iconbar.unfocused.textColor: #747171 toolbar.iconbar.unfocused.justify: Center toolbar.iconbar.empty: Raised Bevel1 Gradient Vertical !toolbar.iconbar.empty.pixmap: toolbar.iconbar.empty.color:#ebebeb toolbar.iconbar.empty.colorTo: #cfcfcf toolbar.iconbar.borderWidth: 1 toolbar.iconbar.borderColor: #dbdbdb ! need this here, even though there is no background in the style background: none fluxbox-1.3.5/data/styles/Emerge/PaxHeaders.25974/Makefile.in0000644000175000017500000000013112106662603021756 xustar000000000000000030 mtime=1360749955.231811956 29 atime=1360750003.13181165 30 ctime=1360750008.443811616 fluxbox-1.3.5/data/styles/Emerge/Makefile.in0000644000175000017500000004713312106662603020016 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(srcdir)/../Makefile.include $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in subdir = data/styles/Emerge ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(styledir)" DATA = $(style_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = pixmaps styledir = $(pkgdatadir)/styles/Emerge style_DATA = theme.cfg MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = $(style_DATA) all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/../Makefile.include $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/styles/Emerge/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/styles/Emerge/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(srcdir)/../Makefile.include: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-styleDATA: $(style_DATA) @$(NORMAL_INSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(styledir)'"; \ $(MKDIR_P) "$(DESTDIR)$(styledir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(styledir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(styledir)" || exit $$?; \ done uninstall-styleDATA: @$(NORMAL_UNINSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(styledir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(styledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-styleDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-styleDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive uninstall-am .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic ctags \ ctags-recursive distclean distclean-generic distclean-local \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip install-styleDATA installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-hook uninstall-styleDATA uninstall-hook: rmdir $(DESTDIR)$(styledir) distclean-local: rm -f *\~ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/data/styles/Emerge/PaxHeaders.25974/Makefile.am0000644000175000017500000000013112106662425021747 xustar000000000000000030 mtime=1360749845.875812656 29 atime=1360749853.08781261 30 ctime=1360750008.443811616 fluxbox-1.3.5/data/styles/Emerge/Makefile.am0000644000175000017500000000015412106662425017777 0ustar00mgmg00000000000000SUBDIRS=pixmaps styledir = $(pkgdatadir)/styles/Emerge style_DATA = theme.cfg include ../Makefile.include fluxbox-1.3.5/data/styles/PaxHeaders.25974/Meta0000644000175000017500000000013212106662425017321 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.855812458 30 ctime=1360750008.447811616 fluxbox-1.3.5/data/styles/Meta0000644000175000017500000001041012106662425015344 0ustar00mgmg00000000000000! meta ! (c) joel carlbark 2003 ! please dont turn on aa with this style ! make sure you have the font 'glisp' (or similar). toolbar: flat gradient vertical toolbar.color: #849ec6 toolbar.colorTo: #526d8c toolbar.button: parentrelative toolbar.button.picColor: #d6d7e7 toolbar.button.pressed: sunken solid toolbar.button.pressed.color: #526d8c toolbar.button.pressed.picColor: #000000 ! clock toolbar.clock: parentrelative toolbar.clock.textColor: white ! shows workspace nr toolbar.label: parentrelative toolbar.label.textColor: white ! current active window / toolbar toolbar.windowLabel: parentrelative toolbar.windowLabel.textColor: white ! menu --------- menu.title: flat gradient vertical menu.title.color: #849ec6 menu.title.colorTo: #526d8c menu.title.textColor: #d6d7e7 menu.frame: flat gradient vertical menu.frame.color: #efefef menu.frame.colorTo: #c6c3c6 menu.frame.textColor: black menu.hilite: flat solid menu.hilite.color: #849ec6 menu.hilite.textColor: white menu.bullet: triangle menu.bullet.position: right ! window -------------- window.title.focus: flat gradient vertical window.title.focus.color: #849ec6 window.title.focus.colorTo: #526d8c window.label.focus: parentrelative window.label.focus.textColor: white window.button.focus: flat gradient vertical window.button.focus.color: #849ec6 window.button.focus.colorTo: #526d8c window.button.focus.picColor: #d6d7e7 window.button.pressed: sunken solid window.button.pressed.color: #405060 window.button.pressed.picColor: #000000 window.handle.focus: flat gradient vertical window.handle.focus.color: #efefef window.handle.focus.colorTo: #c6c3c6 window.grip.focus: flat gradient vertical window.grip.focus.color: #efefef window.grip.focus.colorTo: #c6c3c6 window.frame.focus: flat solid window.frame.focus.color: white ! unfocused window.title.unfocus: flat gradient vertical window.title.unfocus.color: #efefef window.title.unfocus.colorTo: #c6c3c6 window.label.unfocus: parentrelative window.label.unfocus.textColor: #949694 window.handle.unfocus: flat gradient vertical window.handle.unfocus.color: #efefef window.handle.unfocus.colorTo: #c6c3c6 window.grip.unfocus: flat gradient vertical window.grip.unfocus.color: #efefef window.grip.unfocus.colorTo: #c6c3c6 window.frame.unfocus: flat solid window.frame.unfocus.color: white window.button.unfocus: flat gradient vertical window.button.unfocus.color: #efefef window.button.unfocus.colorTo: #c6c3c6 window.button.unfocus.picColor: #949694 ! tabs ------ window.tab.justify: left window.tab.label.focus: flat gradient vertical window.tab.label.focus.color: #849ec6 window.tab.label.focus.colorTo: #526d8c window.tab.label.focus.textColor: #d6d7e7 window.tab.label.unfocus: flat gradient vertical window.tab.label.unfocus.color: #efefef window.tab.label.unfocus.colorTo: #c6c3c6 window.tab.label.unfocus.textColor: #949694 window.tab.borderWidth: 1 window.tab.borderColor: #949694 ! ------- toolbar.justify: left window.justify: center menu.title.justify: center menu.frame.justify: left borderColor: #000000 borderWidth: 1 bevelWidth: 1 frameWidth: 1 handleWidth: 4 background: flat background.color: #d6d7e7 *font: glisp fluxbox-1.3.5/data/styles/PaxHeaders.25974/BlueNight0000644000175000017500000000013212106662425020314 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.851812458 30 ctime=1360750008.447811616 fluxbox-1.3.5/data/styles/BlueNight0000644000175000017500000001175212106662425016351 0ustar00mgmg00000000000000style.name: Blue Night v2 style.author: mack@incise.org style.date: Mon Dec 31 2001 style.credits: style.comments: Modified/tweaked by skypher background: flat background.color: rgb:6A/9A/AF ! Toolbar settings... toolbar.button: Gradient Diagonal toolbar.button.color: rgb:9B/9B/9B toolbar.button.colorTo: rgb:42/42/42 toolbar.button.picColor: black toolbar.button.pressed: Flat Gradient CrossDiagonal toolbar.button.pressed.color: #60747d toolbar.button.pressed.colorTo: #0e1a27 toolbar.label: Flat Gradient CrossDiagonal toolbar.label.color: #40545d toolbar.label.colorTo: #0e1a27 toolbar.label.textColor: #ffffff toolbar.windowLabel: Flat Gradient CrossDiagonal toolbar.windowLabel.color: #40545d toolbar.windowLabel.colorTo: #0e1a27 toolbar.windowLabel.textColor: #ffffff toolbar.clock: Flat Gradient CrossDiagonal toolbar.clock.color: #40545d toolbar.clock.colorTo: #0e1a27 toolbar.clock.textColor: #ffffff toolbar: Flat Solid CrossDiagonal toolbar.color: #000000 toolbar.textColor: #333333 toolbar.font: lucidasans-10 toolbar.justify: Left ! Menu settings... menu.frame: Flat Gradient CrossDiagonal menu.frame.color: #40545d menu.frame.colorTo: #0e1a27 menu.frame.textColor: #ffffff menu.frame.font: lucidasans-10 menu.frame.justify: Left menu.title: Flat Gradient CrossDiagonal menu.title.color: #80949d menu.title.colorTo: #4e5a67 menu.title.textColor: #ffffff menu.title.font: -*-lucida-bold-r-*-*-11-*-*-*-*-*-*-* menu.title.justify: Left menu.hilite: Flat Gradient CrossDiagonal menu.hilite.color: #80949d menu.hilite.colorTo: #4e5a67 menu.hilite.textColor: #ffffff menu.bullet: Cube menu.bullet.position: Right menu.frame.disableColor: #777777 ! Window settings... window.button.focus: Gradient Diagonal window.button.focus.color: rgb:9B/9B/9B window.button.focus.colorTo: rgb:42/42/42 window.button.focus.picColor: black window.button.unfocus: Solid window.button.unfocus.color: rgb:42/42/42 ! window.button.unfocus.colorTo: #ffffff window.button.unfocus.picColor: black window.grip.focus: Flat Solid window.grip.focus.color: #60747d window.grip.unfocus: Flat Solid window.grip.unfocus.color: rgb:42/42/42 window.handle.focus: Flat Solid window.handle.focus.color: #000000 window.handle.unfocus: Flat Solid window.handle.unfocus.color: #000000 window.label.focus: Flat Gradient CrossDiagonal window.label.focus.color: #60747d window.label.focus.colorTo: #0e1a27 window.label.focus.textColor: #ffffff window.label.focus.font: lucidasans-10 window.label.focus.justify: Left window.font: lucidasans-10 window.justify: Left window.label.unfocus: Flat Gradient CrossDiagonal window.label.unfocus.color: #40545d window.label.unfocus.colorTo: #000a17 window.label.unfocus.textColor: #777777 window.title.focus: Flat Solid Horizontal window.title.focus.color: #000000 window.title.focus.colorTo: #ffffff window.title.unfocus: Flat Solid Horizontal window.title.unfocus.color: #000000 window.title.unfocus.colorTo: #ffffff window.button.pressed: Flat Gradient CrossDiagonal window.button.pressed.color: #60747d window.button.pressed.colorTo: #0e1a27 window.frame.focusColor: #000000 window.frame.unfocusColor: #000000 ! ----------- tab - explicit for fluxbox, the best wm out there[tm] (; window.tab.justify: Left window.tab.label.focus: Flat Solid window.tab.label.focus.color: #60747d window.tab.label.focus.textColor: white window.tab.label.unfocus: Sunken Solid window.tab.label.unfocus.color: #40545d window.tab.label.unfocus.textColor: rgb:90/90/90 window.tab.borderWidth: 1 window.tab.borderColor: black ! --------------- handleWidth: 3 frameWidth: 0 bevelWidth: 1 borderWidth: 1 borderColor: #000000 fluxbox-1.3.5/data/styles/PaxHeaders.25974/qnx-photon0000644000175000017500000000013212106662425020546 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749876.851812458 30 ctime=1360750008.447811616 fluxbox-1.3.5/data/styles/qnx-photon0000644000175000017500000001126712106662425016604 0ustar00mgmg00000000000000# photon-qnx # theme for fluxbox # 2001 (c) skypher toolbar: raised gradient vertical toolbar.color: rgb:DB/DA/DB toolbar.colorTo: rgb:D4/CE/D2 toolbar.label: flat gradient vertical toolbar.label.color: rgb:DB/DA/DB toolbar.label.colorTo: rgb:D4/CE/D2 toolbar.label.textColor: rgb:45/45/45 toolbar.windowLabel: sunken solid toolbar.windowLabel.color: rgb:FC/F9/DF toolbar.windowLabel.textColor: rgb:45/45/45 toolbar.clock: flat gradient vertical toolbar.clock.color: rgb:DB/DA/DB toolbar.clock.colorTo: rgb:D4/CE/D2 toolbar.clock.textColor: rgb:45/45/45 toolbar.button: solid flat toolbar.button.color: rgb:EB/EB/EB toolbar.button.picColor: rgb:15/15/15 toolbar.button.pressed: sunken flat toolbar.button.pressed.color: rgb:AB/AB/AB menu.title: raised gradient vertical menu.title.color: rgb:68/95/E3 menu.title.colorTo: rgb:31/59/9C menu.title.textColor: white menu.frame: sunken gradient vertical menu.frame.color: rgb:DB/DA/DB menu.frame.colorTo: rgb:D4/CE/D2 menu.frame.textColor: rgb:45/45/45 menu.hilite: flat solid menu.hilite.color: rgb:91/A3/9E menu.hilite.textColor: white menu.bullet: triangle menu.bullet.position: right ! win focus window.title.focus: flat gradient vertical window.title.focus.color: rgb:D9/D9/D9 window.title.focus.colorTo: white window.label.focus: raised gradient vertical window.label.focus.color: rgb:68/95/E3 window.label.focus.colorTo: rgb:31/59/9C window.label.focus.textColor: white window.button.focus: raised gradient vertical window.button.focus.color: rgb:EA/EA/EA window.button.focus.colorTo: rgb:94/9B/99 window.button.focus.picColor: rgb:35/35/35 window.button.pressed: sunken solid window.button.pressed.color: rgb:94/9B/99 window.handle.focus: raised solid window.handle.focus.color: rgb:EA/EA/EA window.grip.focus: Raised Gradient vertical window.grip.focus.color: rgb:68/95/E3 window.grip.focus.colorTo: rgb:31/59/9C window.frame.focusColor: black ! unfocused win window.title.unfocus: flat gradient vertical window.title.unfocus.color: rgb:D9/D9/D9 window.title.unfocus.colorTo: white window.label.unfocus: raised gradient vertical window.label.unfocus.color: rgb:C6/C5/C6 window.label.unfocus.colorTo: rgb:A7/A6/A7 window.label.unfocus.textColor: white window.button.unfocus: raised gradient vertical window.button.unfocus.color: rgb:EA/EA/EA window.button.unfocus.colorTo: rgb:94/9B/99 window.button.unfocus.picColor: rgb:35/35/35 window.handle.unfocus: raised solid window.handle.unfocus.color: rgb:EA/EA/EA window.grip.unfocus: raised solid window.grip.unfocus.color: rgb:EA/EA/EA window.frame.unfocusColor: black ! ----------- tab - explicit for fluxbox, the best wm out there[tm] (; window.tab.justify: left window.tab.label.unfocus: raised gradient vertical window.tab.label.unfocus.color: rgb:C6/C5/C6 window.tab.label.unfocus.colorTo: rgb:A7/A6/A7 window.tab.label.unfocus.textColor: white window.tab.label.focus: raised gradient vertical window.tab.label.focus.color: rgb:68/95/E3 window.tab.label.focus.colorTo: rgb:31/59/9C window.tab.label.focus.textColor: white window.tab.borderWidth: 1 window.tab.borderColor: black ! ----------- (fluxbox.sourceforge.net) ! fonts window.tab.font: -*-gamow-medium-r-*-*-7-*-*-*-*-60-*-* ! ^ change this to lucidasans-10 if you don't have gamow *.font: lucidasans-10 toolbar.justify: left window.justify: left menu.title.justify: left menu.frame.justify: left ! borders n stuff borderColor: black borderWidth: 1 bevelWidth: 2 handleWidth: 4 frameWidth: 0 background: flat background.color: whitefluxbox-1.3.5/data/styles/PaxHeaders.25974/Twice0000644000175000017500000000013212106662425017506 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.851812458 30 ctime=1360750008.447811616 fluxbox-1.3.5/data/styles/Twice0000644000175000017500000000743512106662425015546 0ustar00mgmg00000000000000toolbar: flat diagonal gradient toolbar.color: rgb:c/6/6 toolbar.colorTo: rgb:8/4/4 toolbar.button: flat diagonal gradient toolbar.button.color: rgb:6/3/3 toolbar.button.colorTo: rgb:a/5/5 toolbar.button.picColor: rgb:4/2/2 toolbar.button.pressed: flat crossdiagonal gradient toolbar.button.pressed.color: grey40 toolbar.button.pressed.colorTo: grey20 toolbar.label: flat crossdiagonal gradient toolbar.label.color: grey40 toolbar.label.colorTo: grey20 toolbar.label.textColor: grey85 toolbar.windowLabel: flat crossdiagonal gradient toolbar.windowLabel.color: grey40 toolbar.windowLabel.colorTo: grey20 toolbar.windowLabel.textColor: grey85 toolbar.clock: flat crossdiagonal gradient toolbar.clock.color: grey40 toolbar.clock.colorTo: grey20 toolbar.clock.textColor: grey85 toolbar.justify: right toolbar.font: lucidasans-10 menu.title: flat crossdiagonal gradient menu.title.color: rgb:c/6/6 menu.title.colorTo: rgb:6/3/3 menu.title.textColor: white menu.title.font: lucidasans-10 menu.title.justify: right menu.frame: flat crossdiagonal gradient menu.frame.color: grey40 menu.frame.colorTo: grey20 menu.frame.textColor: grey85 menu.frame.disableColor: rgb:4/2/2 menu.frame.font: lucidasans-10 menu.frame.justify: center menu.bullet.position: right menu.bullet: triangle menu.hilite: flat crossdiagonal gradient menu.hilite.color: rgb:c/6/6 menu.hilite.colorTo: rgb:6/3/3 menu.hilite.textColor: white window.title.focus: flat diagonal gradient window.title.focus.color: rgb:c/6/6 window.title.focus.colorTo: rgb:8/4/4 window.title.unfocus: flat solid window.title.unfocus.color: grey30 window.label.focus: flat crossdiagonal gradient window.label.focus.color: grey40 window.label.focus.colorTo: grey20 window.label.focus.textColor: white window.label.unfocus: flat crossdiagonal gradient window.label.unfocus.color: grey30 window.label.unfocus.colorTo: grey20 window.label.unfocus.textColor: grey60 window.button.focus: flat diagonal gradient window.button.focus.color: rgb:8/4/4 window.button.focus.colorTo: rgb:a/5/5 window.button.focus.picColor: rgb:4/2/2 window.button.unfocus: flat solid window.button.unfocus.color: grey30 window.button.unfocus.picColor: grey20 window.button.pressed: flat crossdiagonal gradient window.button.pressed.color: grey40 window.button.pressed.colorTo: grey20 window.handle.focus: flat crossdiagonal gradient window.handle.focus.color: rgb:c/6/6 window.handle.focus.colorTo: rgb:6/3/3 window.handle.unfocus: flat solid window.handle.unfocus.color: grey30 window.grip.focus: flat crossdiagonal gradient window.grip.focus.color: grey40 window.grip.focus.colorTo: grey20 window.grip.unfocus: flat crossdiagonal gradient window.grip.unfocus.color: grey30 window.grip.unfocus.colorTo: grey20 window.frame.focusColor: rgb:c/6/6 window.frame.unfocusColor: grey30 window.font: lucidasans-10 window.justify: right borderColor: grey10 bevelWidth: 1 borderWidth: 2 handleWidth: 4 *textColor: grey85 *Font: lucidasans-10 background: flat background.color: grey20 fluxbox-1.3.5/data/styles/PaxHeaders.25974/LemonSpace0000644000175000017500000000013212106662425020461 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.847812458 30 ctime=1360750008.447811616 fluxbox-1.3.5/data/styles/LemonSpace0000644000175000017500000001207412106662425016514 0ustar00mgmg00000000000000! LemonSpace was made by xlife@zuavra.net. ! The official home of the theme is this: ! http://xlife.zuavra.net/blackbox/styles/ ! If you make other themes inspired or ! derived from this one please send them ! to me so I can enjoy them as well. ! You need the Snap font from the Artwiz ! pack for this, see the site for details. toolbar: raised gradient vertical ! toolbar.color: rgb:e3/cd/a6 toolbar.color: rgb:cb/ac/73 toolbar.colorTo: rgb:40/40/40 toolbar.button: raised gradient vertical toolbar.button.picColor: rgb:1a/04/08 toolbar.button.color: rgb:dd/dd/d toolbar.button.colorTo: rgb:c0/c0/c0 toolbar.button.pressed: sunken gradient vertical toolbar.button.pressed.color: rgb:dd/dd/dd toolbar.button.pressed.colorTo: rgb:c0/c0/c0 toolbar.label: raised gradient vertical toolbar.label.color: rgb:f6/df/93 toolbar.label.colorTo: rgb:ee/b9/6b toolbar.label.textColor: rgb:1a/04/08 toolbar.windowLabel: raised gradient vertical toolbar.windowLabel.color: rgb:f6/df/93 toolbar.windowLabel.colorTo: rgb:ee/b9/6b toolbar.windowLabel.textColor: rgb:1a/04/08 toolbar.clock: raised gradient vertical toolbar.clock.color: rgb:f6/df/93 toolbar.clock.colorTo: rgb:ee/b9/6b toolbar.clock.textColor: rgb:1a/04/08 toolbar.justify: Center menu.title: raised gradient vertical menu.title.color: rgb:f6/df/93 menu.title.colorTo: rgb:ee/b9/6b menu.title.textColor: rgb:0/0/0 menu.title.justify: center menu.frame: raised gradient vertical menu.frame.color: rgb:dd/dd/dd menu.frame.colorTo: rgb:c0/c0/c0 menu.frame.textColor: rgb:0/0/0 menu.frame.justify: left menu.hilite: flat solid menu.hilite.textColor: rgb:f/f/f menu.hilite.color: rgb:30/30/30 menu.bullet: triangle menu.bullet.position: right ! window.title.focus: flat solid ! window.title.focus.color: rgb:e3/cd/a6 window.title.focus: raised gradient vertical window.title.focus.color: rgb:cb/ac/73 window.title.focus.colorTo: rgb:40/40/40 window.title.unfocus: raised gradient vertical window.title.unfocus.color: rgb:b0/b0/b0 window.title.unfocus.colorTo: rgb:50/50/50 window.label.focus: raised gradient vertical window.label.focus.color: rgb:f6/df/93 window.label.focus.colorTo: rgb:ee/b9/6b window.label.focus.textColor: rgb:1a/04/08 window.label.unfocus: raised gradient vertical window.label.unfocus.color: rgb:dd/dd/dd window.label.unfocus.colorTo: rgb:c0/c0/c0 window.label.unfocus.textColor: rgb:5a/5a/5a window.handle.focus: raised gradient vertical window.handle.focus.color: rgb:cc/cc/cc window.handle.focus.colorTo: rgb:d0/d0/d0 window.handle.unfocus: raised gradient vertical window.handle.unfocus.color: rgb:d0/d0/d0 window.handle.unfocus.colorTo: rgb:cc/cc/cc window.grip.focus: raised gradient vertical window.grip.focus.color: rgb:f6/df/93 window.grip.focus.colorTo: rgb:ee/b9/6b window.grip.unfocus: raised gradient vertical window.grip.unfocus.color: rgb:dd/dd/dd window.grip.unfocus.colorTo: rgb:c0/c0/c0 window.button.focus: raised gradient vertical window.button.focus.color: rgb:dd/dd/dd window.button.focus.colorTo: rgb:c0/c0/c0 ! window.button.focus.color: rgb:f6/df/93 ! window.button.focus.colorTo: rgb:ee/b9/6b window.button.focus.picColor: rgb:0/0/0 window.button.unfocus: raised gradient vertical window.button.unfocus.color: rgb:dd/dd/dd window.button.unfocus.colorTo: rgb:c0/c0/c0 window.button.unfocus.picColor: rgb:0/0/0 window.button.pressed: sunken gradient diagonal window.button.pressed.color: rgb:f6/df/93 window.button.pressed.colorTo: rgb:ee/b9/6b window.frame.focusColor: rgb:e3/cd/a6 window.frame.unfocusColor: rgb:6/6/6 window.justify: center borderColor: rgb:0/0/0 borderWidth: 1 bevelWidth: 1 handleWidth: 4 *font: gelly2 menu*font: glisp toolbar*font: glisp *textColor: rgb:c/c/c ! - for fluxbox window.tab.label.unfocus.textColor: rgb:5a/5a/5a window.tab.label.focus.textColor: rgb:1a/04/08 ! - background: flat background.color: rgb:db/bc/83 fluxbox-1.3.5/data/styles/PaxHeaders.25974/Shade0000644000175000017500000000013212106662425017457 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.847812458 30 ctime=1360750008.451811616 fluxbox-1.3.5/data/styles/Shade0000644000175000017500000000627512106662425015520 0ustar00mgmg00000000000000toolbar: flat solid toolbar.color: rgb:6/6/6 toolbar.button: flat solid toolbar.button.color: rgb:6/6/6 toolbar.button.picColor: rgb:2/2/2 toolbar.label: flat crossdiagonal gradient toolbar.label.color: rgb:8/8/7 toolbar.label.colorTo: rgb:f/f/d toolbar.label.textColor: rgb:2/2/1c toolbar.windowLabel: flat crossdiagonal gradient toolbar.windowLabel.color: rgb:8/8/7 toolbar.windowLabel.colorTo: rgb:f/f/d toolbar.windowLabel.textColor: rgb:2/2/1c toolbar.clock: flat crossdiagonal gradient toolbar.clock.color: rgb:8/8/7 toolbar.clock.colorTo: rgb:f/f/d toolbar.clock.textColor: rgb:2/2/1c toolbar.justify: right toolbar.font: lucidasans-10 menu.title: flat crossdiagonal gradient menu.title.color: rgb:8/8/7 menu.title.colorTo: rgb:f/f/d menu.title.textColor: rgb:2/2/1c menu.title.font: lucidasans-10 menu.title.justify: right menu.frame: flat solid menu.frame.color: rgb:6/6/6 menu.frame.textColor: grey85 menu.frame.disableColor: rgb:4/4/4 menu.frame.font: lucidasans-10 menu.frame.justify: center menu.bullet.position: right menu.bullet: triangle menu.hilite: flat solid menu.hilite.color: rgb:4/4/4 menu.hilite.textColor: white window.title.focus: flat solid window.title.focus.color: rgb:6/6/6 window.title.unfocus: flat solid window.title.unfocus.color: rgb:4/4/4 window.label.focus: flat crossdiagonal gradient window.label.focus.color: rgb:8/8/7 window.label.focus.colorTo: rgb:f/f/d window.label.focus.textColor: rgb:2/2/1c window.label.unfocus: flat solid window.label.unfocus.color: rgb:4/4/4 window.label.unfocus.textColor: rgb:2/2/2 window.button.focus: flat solid window.button.focus.color: rgb:6/6/6 window.button.focus.picColor: rgb:2/2/2 window.button.unfocus: flat solid window.button.unfocus.color: rgb:4/4/4 window.button.unfocus.picColor: rgb:2/2/2 window.handle.focus: flat crossdiagonal gradient window.handle.focus.color: rgb:8/8/7 window.handle.focus.colorTo: rgb:f/f/d window.handle.unfocus: flat solid window.handle.unfocus.color: rgb:4/4/4 window.grip.focus: flat solid window.grip.focus.color: rgb:8/8/8 window.grip.unfocus: flat solid window.grip.unfocus.color: rgb:4/4/4 window.frame.focusColor: rgb:f/f/d window.frame.unfocusColor: rgb:6/6/6 window.font: lucidasans-10 window.justify: right *button.pressed: flat solid *button.pressed.color: rgb:a/a/8c borderColor: rgb:2/2/2 bevelWidth: 2 borderWidth: 2 handleWidth: 3 *textColor: grey20 *Font: lucidasans-10 background: flat background.color: rgb:4/4/4fluxbox-1.3.5/data/styles/PaxHeaders.25974/Results0000644000175000017500000000013212106662425020074 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.847812458 30 ctime=1360750008.451811616 fluxbox-1.3.5/data/styles/Results0000644000175000017500000001042212106662425016122 0ustar00mgmg00000000000000toolbar: raised diagonal gradient bevel1 toolbar.color: rgb:8/8/7 toolbar.colorTo: grey20 toolbar.button: raised diagonal gradient bevel1 toolbar.button.color: grey toolbar.button.colorTo: grey20 toolbar.button.picColor: black toolbar.button.pressed: sunken diagonal interlaced gradient bevel1 toolbar.button.pressed.color: rgb:4/4/38 toolbar.button.pressed.colorTo: rgb:f/f/d toolbar.label: flat interlaced diagonal gradient toolbar.label.color: grey20 toolbar.label.colorTo: rgb:8/8/7 toolbar.label.textColor: grey85 toolbar.windowLabel: flat interlaced diagonal gradient toolbar.windowLabel.color: grey20 toolbar.windowLabel.colorTo: rgb:8/8/7 toolbar.windowLabel.textColor: grey85 toolbar.clock: flat interlaced diagonal gradient toolbar.clock.color: grey20 toolbar.clock.colorTo: rgb:8/8/7 toolbar.clock.textColor: grey85 toolbar.justify: center toolbar.font: lucidasans-bold-10 menu.title: raised diagonal interlaced gradient bevel1 menu.title.color: grey20 menu.title.colorTo: rgb:8/8/7 menu.title.textColor: grey85 menu.title.font: lucidasans-bold-10 menu.title.justify: center menu.frame: raised diagonal gradient bevel1 menu.frame.color: rgb:8/8/7 menu.frame.colorTo: grey10 menu.frame.textColor: white menu.frame.disableColor: rgb:4/4/38 menu.frame.font: lucidasans-10 menu.frame.justify: center menu.bullet: triangle menu.bullet.position: right menu.hilite: raised diagonal gradient bevel1 menu.hilite.color: grey60 menu.hilite.colorTo: white menu.hilite.textColor: grey20 window.title.focus: raised diagonal gradient bevel1 window.title.focus.color: rgb:8/8/7 window.title.focus.colorTo: grey20 window.title.unfocus: raised diagonal gradient bevel1 window.title.unfocus.color: rgb:6/6/54 window.title.unfocus.colorTo: grey20 window.label.focus: interlaced sunken diagonal gradient bevel1 window.label.focus.color: grey20 window.label.focus.colorTo: grey window.label.focus.textColor: white window.label.unfocus: interlaced flat gradient window.label.unfocus.color: grey20 window.label.unfocus.colorTo: rgb:6/6/54 window.label.unfocus.textColor: grey window.handle.focus: raised diagonal gradient bevel1 window.handle.focus.color: rgb:8/8/7 window.handle.focus.colorTo: grey20 window.handle.unfocus: raised diagonal gradient bevel1 window.handle.unfocus.color: rgb:6/6/54 window.handle.unfocus.colorTo: grey20 window.grip.focus: raised diagonal gradient bevel1 window.grip.focus.color: grey window.grip.focus.colorTo: grey20 window.grip.unfocus: sunken diagonal gradient bevel1 window.grip.unfocus.color: grey20 window.grip.unfocus.colorTo: grey window.button.focus: raised diagonal gradient bevel1 window.button.focus.color: grey window.button.focus.colorTo: grey20 window.button.focus.picColor: black window.button.unfocus: sunken diagonal gradient bevel1 window.button.unfocus.color: grey20 window.button.unfocus.colorTo: grey window.button.unfocus.picColor: grey40 window.button.pressed: flat diagonal interlaced gradient window.button.pressed.color: rgb:4/4/38 window.button.pressed.colorTo: rgb:f/f/d window.frame.focusColor: grey85 window.frame.unfocusColor: rgb:6/6/54 window.font: lucidasans-bold-10 window.justify: center ! misc... borderColor: rgb:2/2/1c borderWidth: 1 bevelWidth: 2 handleWidth: 4 background: mod background.modX: 4 background.modY: 4 background.color: grey20 background.colorTo: rgb:6/6/5c ! for the bbtools menuFont: lucidasans-10 titleFont: lucidasans-bold-10 fluxbox-1.3.5/data/styles/PaxHeaders.25974/Outcomes0000644000175000017500000000013212106662425020231 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.843812458 30 ctime=1360750008.451811616 fluxbox-1.3.5/data/styles/Outcomes0000644000175000017500000001042212106662425016257 0ustar00mgmg00000000000000toolbar: raised diagonal gradient bevel1 toolbar.color: rgb:7/8/8 toolbar.colorTo: grey20 toolbar.button: raised diagonal gradient bevel1 toolbar.button.color: grey toolbar.button.colorTo: grey20 toolbar.button.picColor: black toolbar.button.pressed: sunken diagonal interlaced gradient bevel1 toolbar.button.pressed.color: rgb:38/4/4 toolbar.button.pressed.colorTo: rgb:d/f/f toolbar.label: flat interlaced diagonal gradient toolbar.label.color: grey20 toolbar.label.colorTo: rgb:7/8/8 toolbar.label.textColor: grey85 toolbar.windowLabel: flat interlaced diagonal gradient toolbar.windowLabel.color: grey20 toolbar.windowLabel.colorTo: rgb:7/8/8 toolbar.windowLabel.textColor: grey85 toolbar.clock: flat interlaced diagonal gradient toolbar.clock.color: grey20 toolbar.clock.colorTo: rgb:7/8/8 toolbar.clock.textColor: grey85 toolbar.justify: center toolbar.font: lucidasans-bold-10 menu.title: raised diagonal interlaced gradient bevel1 menu.title.color: grey20 menu.title.colorTo: rgb:7/8/8 menu.title.textColor: grey85 menu.title.font: lucidasans-bold-10 menu.title.justify: center menu.frame: raised diagonal gradient bevel1 menu.frame.color: rgb:7/8/8 menu.frame.colorTo: grey10 menu.frame.textColor: white menu.frame.disableColor: rgb:38/4/4 menu.frame.font: lucidasans-10 menu.frame.justify: center menu.bullet: triangle menu.bullet.position: right menu.hilite: raised diagonal gradient bevel1 menu.hilite.color: grey60 menu.hilite.colorTo: white menu.hilite.textColor: grey20 window.title.focus: raised diagonal gradient bevel1 window.title.focus.color: rgb:7/8/8 window.title.focus.colorTo: grey20 window.title.unfocus: raised diagonal gradient bevel1 window.title.unfocus.color: rgb:54/6/6 window.title.unfocus.colorTo: grey20 window.label.focus: interlaced sunken diagonal gradient bevel1 window.label.focus.color: grey20 window.label.focus.colorTo: grey window.label.focus.textColor: white window.label.unfocus: interlaced flat gradient window.label.unfocus.color: grey20 window.label.unfocus.colorTo: rgb:54/6/6 window.label.unfocus.textColor: grey window.handle.focus: raised diagonal gradient bevel1 window.handle.focus.color: rgb:7/8/8 window.handle.focus.colorTo: grey20 window.handle.unfocus: raised diagonal gradient bevel1 window.handle.unfocus.color: rgb:54/6/6 window.handle.unfocus.colorTo: grey20 window.grip.focus: raised diagonal gradient bevel1 window.grip.focus.color: grey window.grip.focus.colorTo: grey20 window.grip.unfocus: sunken diagonal gradient bevel1 window.grip.unfocus.color: grey20 window.grip.unfocus.colorTo: grey window.button.focus: raised diagonal gradient bevel1 window.button.focus.color: grey window.button.focus.colorTo: grey20 window.button.focus.picColor: black window.button.unfocus: sunken diagonal gradient bevel1 window.button.unfocus.color: grey20 window.button.unfocus.colorTo: grey window.button.unfocus.picColor: grey40 window.button.pressed: flat diagonal interlaced gradient window.button.pressed.color: rgb:38/4/4 window.button.pressed.colorTo: rgb:d/f/f window.frame.focusColor: grey85 window.frame.unfocusColor: rgb:54/6/6 window.font: lucidasans-bold-10 window.justify: center ! misc... borderColor: rgb:1c/2/2 borderWidth: 1 bevelWidth: 2 handleWidth: 4 background: mod background.modX: 4 background.modY: 4 background.color: grey20 background.colorTo: rgb:54/6/6 ! for the bbtools menuFont: lucidasans-10 titleFont: lucidasans-bold-10 fluxbox-1.3.5/data/styles/PaxHeaders.25974/Operation0000644000175000017500000000013212106662425020373 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.843812458 30 ctime=1360750008.451811616 fluxbox-1.3.5/data/styles/Operation0000644000175000017500000000641112106662425016424 0ustar00mgmg00000000000000toolbar: flat crossdiagonal gradient toolbar.color: rgb:6/9/c toolbar.colorTo: rgb:4/6/8 toolbar.button: parentrelative toolbar.button.picColor: grey85 toolbar.button.pressed: flat crossdiagonal gradient toolbar.button.pressed.color: grey50 toolbar.button.pressed.colorTo: grey80 toolbar.label: parentrelative toolbar.label.textColor: grey85 toolbar.windowLabel: parentrelative toolbar.windowLabel.textColor: grey85 toolbar.clock: parentrelative toolbar.clock.textColor: grey85 toolbar.justify: right toolbar.font: lucidasans-10 menu.title: flat crossdiagonal gradient menu.title.color: rgb:6/9/c menu.title.colorTo: rgb:3/48/6 menu.title.textColor: white menu.title.font: lucidasans-10 menu.title.justify: right menu.frame: flat crossdiagonal gradient menu.frame.color: grey50 menu.frame.colorTo: grey80 menu.frame.textColor: grey20 menu.frame.disableColor: grey40 menu.frame.font: lucidasans-10 menu.frame.justify: center menu.bullet.position: right menu.bullet: triangle menu.hilite: flat crossdiagonal gradient menu.hilite.color: rgb:6/9/c menu.hilite.colorTo: rgb:3/48/6 menu.hilite.textColor: white window.title.focus: flat crossdiagonal gradient window.title.focus.color: rgb:6/9/c window.title.focus.colorTo: rgb:3/48/6 window.title.unfocus: flat diagonal gradient window.title.unfocus.color: grey50 window.title.unfocus.colorTo: grey20 window.label.focus: parentrelative window.label.focus.textColor: white window.label.unfocus: parentrelative window.label.unfocus.textColor: grey60 window.button.focus: parentrelative window.button.focus.picColor: grey85 window.button.unfocus: parentrelative window.button.unfocus.picColor: grey60 window.button.pressed: flat crossdiagonal gradient window.button.pressed.color: grey50 window.button.pressed.colorTo: grey80 window.handle.focus: flat crossdiagonal gradient window.handle.focus.color: rgb:6/9/c window.handle.focus.colorTo: rgb:3/48/6 window.handle.unfocus: flat diagonal gradient window.handle.unfocus.color: grey50 window.handle.unfocus.colorTo: grey20 window.grip.focus: parentrelative window.grip.unfocus: parentrelative window.frame.focusColor: rgb:6/9/c window.frame.unfocusColor: grey50 window.font: lucidasans-10 window.justify: right borderColor: rgb:2/3/4 bevelWidth: 1 borderWidth: 1 handleWidth: 4 *textColor: grey85 *Font: lucidasans-10 background: flatcrossdiagonalgradient background.color: rgb:4/6/8 background.colorTo: rgb:3/48/6 bbpager.desktop.focus: flat interlaced crossdiagonal gradient bbpager.desktop.focus.color: rgb:6/9/c bbpager.desktop.focus.colorTo: rgb:3/48/6 fluxbox-1.3.5/data/styles/PaxHeaders.25974/Nyz0000644000175000017500000000013212106662425017213 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.839812458 30 ctime=1360750008.455811616 fluxbox-1.3.5/data/styles/Nyz0000644000175000017500000000744512106662425015254 0ustar00mgmg00000000000000toolbar: flat diagonal gradient toolbar.color: rgb:6/9/c toolbar.colorTo: rgb:4/6/8 toolbar.button: flat diagonal gradient toolbar.button.color: rgb:3/48/6 toolbar.button.colorTo: rgb:5/78/a toolbar.button.picColor: rgb:1/18/2 toolbar.button.pressed: flat crossdiagonal gradient toolbar.button.pressed.color: grey40 toolbar.button.pressed.colorTo: grey20 toolbar.label: flat crossdiagonal gradient toolbar.label.color: grey40 toolbar.label.colorTo: grey20 toolbar.label.textColor: grey85 toolbar.windowLabel: flat crossdiagonal gradient toolbar.windowLabel.color: grey40 toolbar.windowLabel.colorTo: grey20 toolbar.windowLabel.textColor: grey85 toolbar.clock: flat crossdiagonal gradient toolbar.clock.color: grey40 toolbar.clock.colorTo: grey20 toolbar.clock.textColor: grey85 toolbar.justify: right toolbar.font: lucidasans-10 menu.title: flat crossdiagonal gradient menu.title.color: rgb:6/9/c menu.title.colorTo: rgb:3/48/6 menu.title.textColor: white menu.title.font: lucidasans-10 menu.title.justify: right menu.frame: flat crossdiagonal gradient menu.frame.color: grey40 menu.frame.colorTo: grey20 menu.frame.textColor: grey85 menu.frame.disableColor: rgb:4/4/38 menu.frame.font: lucidasans-10 menu.frame.justify: center menu.bullet.position: right menu.bullet: triangle menu.hilite: flat crossdiagonal gradient menu.hilite.color: rgb:6/9/c menu.hilite.colorTo: rgb:3/48/6 menu.hilite.textColor: white window.title.focus: flat diagonal gradient window.title.focus.color: rgb:6/9/c window.title.focus.colorTo: rgb:4/6/8 window.title.unfocus: flat solid window.title.unfocus.color: grey30 window.label.focus: flat crossdiagonal gradient window.label.focus.color: grey40 window.label.focus.colorTo: grey20 window.label.focus.textColor: white window.label.unfocus: flat crossdiagonal gradient window.label.unfocus.color: grey30 window.label.unfocus.colorTo: grey20 window.label.unfocus.textColor: grey60 window.button.focus: flat diagonal gradient window.button.focus.color: rgb:4/6/8 window.button.focus.colorTo: rgb:5/78/a window.button.focus.picColor: rgb:1/18/2 window.button.unfocus: flat solid window.button.unfocus.color: grey30 window.button.unfocus.picColor: grey20 window.button.pressed: flat crossdiagonal gradient window.button.pressed.color: grey40 window.button.pressed.colorTo: grey20 window.handle.focus: flat crossdiagonal gradient window.handle.focus.color: rgb:6/9/c window.handle.focus.colorTo: rgb:3/48/6 window.handle.unfocus: flat solid window.handle.unfocus.color: grey30 window.grip.focus: flat crossdiagonal gradient window.grip.focus.color: grey40 window.grip.focus.colorTo: grey20 window.grip.unfocus: flat crossdiagonal gradient window.grip.unfocus.color: grey30 window.grip.unfocus.colorTo: grey20 window.frame.focusColor: rgb:6/9/c window.frame.unfocusColor: grey30 window.font: lucidasans-10 window.justify: right borderColor: grey10 bevelWidth: 1 borderWidth: 2 handleWidth: 4 *textColor: grey85 *Font: lucidasans-10 background: flat background.color: grey20fluxbox-1.3.5/data/styles/PaxHeaders.25974/Flux0000644000175000017500000000013212106662425017351 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.839812458 30 ctime=1360750008.455811616 fluxbox-1.3.5/data/styles/Flux0000644000175000017500000000475712106662425015415 0ustar00mgmg00000000000000toolbar: flat solid toolbar.color: rgb:6/6/54 toolbar.button: flat solid toolbar.button.color: rgb:6/6/54 toolbar.button.picColor: rgb:2/2/1c toolbar.label: flat crossdiagonal gradient toolbar.label.color: rgb:8/8/7 toolbar.label.colorTo: rgb:f/f/d toolbar.label.textColor: rgb:2/2/1c toolbar.windowLabel: flat crossdiagonal gradient toolbar.windowLabel.color: rgb:8/8/7 toolbar.windowLabel.colorTo: rgb:f/f/d toolbar.windowLabel.textColor: rgb:2/2/1c toolbar.clock: flat crossdiagonal gradient toolbar.clock.color: rgb:8/8/7 toolbar.clock.colorTo: rgb:f/f/d toolbar.clock.textColor: rgb:2/2/1c toolbar.justify: right toolbar.font: lucidasans-10 menu.title: flat crossdiagonal gradient menu.title.color: rgb:8/8/7 menu.title.colorTo: rgb:f/f/d menu.title.textColor: rgb:2/2/1c menu.title.font: lucidasans-10 menu.title.justify: right menu.frame: flat solid menu.frame.color: rgb:6/6/54 menu.frame.textColor: grey85 menu.frame.disableColor: rgb:4/4/38 menu.frame.font: lucidasans-10 menu.frame.justify: center menu.bullet.position: right menu.bullet: triangle menu.hilite: flat solid menu.hilite.color: rgb:4/4/38 menu.hilite.textColor: white window.title.focus: flat solid window.title.focus.color: rgb:6/6/54 window.title.unfocus: flat solid window.title.unfocus.color: rgb:4/4/38 window.label.focus: flat crossdiagonal gradient window.label.focus.color: rgb:8/8/7 window.label.focus.colorTo: rgb:f/f/d window.label.focus.textColor: rgb:2/2/1c window.label.unfocus: flat solid window.label.unfocus.color: rgb:4/4/38 window.label.unfocus.textColor: rgb:2/2/1c window.button.focus: flat solid window.button.focus.color: rgb:6/6/54 window.button.focus.picColor: rgb:2/2/1c window.button.unfocus: flat solid window.button.unfocus.color: rgb:4/4/38 window.button.unfocus.picColor: rgb:2/2/1c window.handle.focus: flat crossdiagonal gradient window.handle.focus.color: rgb:8/8/7 window.handle.focus.colorTo: rgb:f/f/d window.handle.unfocus: flat solid window.handle.unfocus.color: rgb:4/4/38 window.grip.focus: flat solid window.grip.focus.color: rgb:8/8/7 window.grip.unfocus: flat solid window.grip.unfocus.color: rgb:4/4/38 window.frame.focusColor: rgb:f/f/d window.frame.unfocusColor: rgb:6/6/54 window.font: lucidasans-10 window.justify: right *button.pressed: flat solid *button.pressed.color: rgb:a/a/8c borderColor: rgb:2/2/1c bevelWidth: 2 borderWidth: 2 handleWidth: 3 *textColor: grey20 *Font: lucidasans-10 background: flat background.color: rgb:4/4/38fluxbox-1.3.5/data/styles/PaxHeaders.25974/Artwiz0000644000175000017500000000013212106662425017713 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.839812458 30 ctime=1360750008.455811616 fluxbox-1.3.5/data/styles/Artwiz0000644000175000017500000000647712106662425015760 0ustar00mgmg00000000000000toolbar: raised gradient vertical toolbar.color: rgb:80/84/88 toolbar.colorTo: rgb:30/34/38 toolbar.button: raised gradient diagonal toolbar.button.color: rgb:90/94/98 toolbar.button.colorTo: rgb:20/24/28 toolbar.button.picColor: white toolbar.button.pressed: sunken gradient diagonal toolbar.button.pressed.color: black toolbar.button.pressed.colorTo: rgb:80/98/d0 toolbar.clock: sunken gradient diagonal toolbar.clock.color: rgb:10/20/30 toolbar.clock.colorTo: rgb:70/80/90 toolbar.clock.textColor: white toolbar.label: sunken gradient diagonal toolbar.label.color: rgb:10/20/30 toolbar.label.colorTo: rgb:70/80/90 toolbar.label.textColor: white toolbar.windowLabel: sunken gradient diagonal toolbar.windowLabel.color: rgb:10/20/30 toolbar.windowLabel.colorTo: rgb:70/80/90 toolbar.windowLabel.textColor: white toolbar.justify: center menu.title: raised gradient diagonal menu.title.color: rgb:90/94/98 menu.title.colorTo: rgb:20/24/28 menu.title.textColor: white menu.title.justify: center menu.frame: sunken gradient diagonal menu.frame.color: rgb:10/20/30 menu.frame.colorTo: rgb:70/80/90 menu.frame.textColor: rgb:90/a0/b0 menu.frame.justify: center menu.hilite: raised gradient diagonal menu.hilite.color: rgb:90/94/98 menu.hilite.colorTo: rgb:20/24/28 menu.hilite.textColor: white menu.bullet: empty menu.bullet.position: right window.title.focus: raised gradient vertical window.title.focus.color: rgb:80/84/88 window.title.focus.colorTo: rgb:30/34/38 window.title.unfocus: raised vertical gradient window.title.unfocus.color: rgb:50/54/58 window.title.unfocus.colorTo: black window.label.focus: sunken diagonal gradient window.label.focus.color: rgb:10/20/30 window.label.focus.colorTo: rgb:70/80/90 window.label.focus.textColor: white window.label.unfocus: sunken gradient diagonal window.label.unfocus.color: black window.label.unfocus.colorTo: rgb:40/50/60 window.label.unfocus.textColor: rgb:60/64/68 window.button.focus: raised gradient diagonal window.button.focus.color: rgb:90/94/98 window.button.focus.colorTo: rgb:20/24/28 window.button.focus.picColor: white window.button.unfocus: raised gradient diagonal window.button.unfocus.color: rgb:50/54/58 window.button.unfocus.colorTo: black window.button.unfocus.picColor: rgb:70/74/78 window.button.pressed: sunken gradient diagonal window.button.pressed.color: rgb:20/40/50 window.button.pressed.colorTo: rgb:60/70/80 window.frame.focusColor: rgb:40/44/48 window.frame.unfocusColor: rgb:20/24/28 window.handle.focus: raised gradient diagonal window.handle.focus.color: rgb:70/74/78 window.handle.focus.colorTo: rgb:40/44/48 window.handle.unfocus: raised gradient diagonal window.handle.unfocus.color: rgb:50/54/58 window.handle.unfocus.colorTo: black window.grip.focus: sunken diagonal gradient window.grip.focus.color: rgb:20/30/40 window.grip.focus.colorTo: rgb:60/70/80 window.grip.unfocus: sunken diagonal gradient window.grip.unfocus.color: black window.grip.unfocus.colorTo: rgb:30/40/50 window.justify: center borderColor: black bevelWidth: 2 borderWidth: 1 handleWidth: 5 background: mod background.modX: 4 background.modY: 4 background.color: rgb:10/18/20 background.colorTo: rgb:30/38/40 *Font: -*-lucidatypewriter-medium-r-*-*-*-100-*-*-*-*-*-* !*Font: vera-7 fluxbox-1.3.5/data/styles/PaxHeaders.25974/MerleyKay0000644000175000017500000000013212106662425020335 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.835812458 30 ctime=1360750008.455811616 fluxbox-1.3.5/data/styles/MerleyKay0000644000175000017500000001374612106662425016377 0ustar00mgmg00000000000000# Merely Kay # A Fluxbox theme by: skypher of perplexity # 2001 # (Not created from scratch, basicly a modification of "Simple Elegance" # by Pax, thanks!) # update: added *.tab.* stuff to make fluxbox look real cool :) toolbar: Raised Gradient Vertical toolbar.color: rgb:62/70/85 toolbar.colorTo: rgb:56/66/75 toolbar.button: Raised Gradient Horizontal Interlaced toolbar.button.color: rgb:62/70/85 toolbar.button.colorTo: rgb:56/66/75 toolbar.button.picColor: rgb:FF/FF/FF toolbar.button.pressed: Sunken Gradient Horizontal toolbar.button.pressed.color: rgb:42/50/65 toolbar.button.pressed.colorTo: rgb:36/46/55 toolbar.clock: Sunken Gradient Vertical Interlaced toolbar.clock.color: rgb:62/70/85 toolbar.clock.colorTo: rgb:56/66/75 toolbar.clock.textColor: rgb:FF/FF/FF toolbar.label: Sunken Gradient Vertical Interlaced toolbar.label.color: rgb:62/70/85 toolbar.label.colorTo: rgb:56/66/75 toolbar.label.textColor: rgb:FF/FF/FF toolbar.windowLabel: Raised Gradient Vertical Interlaced toolbar.windowLabel.color: rgb:62/70/85 toolbar.windowLabel.colorTo: rgb:56/66/75 toolbar.windowLabel.textColor: rgb:FF/FF/FF toolbar.justify: center menu.title: Raised Gradient Horizontal Interlaced menu.title.color: rgb:62/66/70 menu.title.colorTo: rgb:56/60/68 menu.title.textColor: rgb:E9/E9/E9 menu.title.justify: Center menu.frame: Sunken Gradient PipeCross menu.frame.color: rgb:62/70/85 menu.frame.colorTo: rgb:56/66/75 menu.frame.textColor: rgb:E2/E2/E2 menu.frame.justify: Left menu.hilite: Raised Gradient PipeCross menu.hilite.color: rgb:50/50/50 menu.hilite.colorTo: rgb:42/42/42 menu.hilite.textColor: rgb:FF/FF/FF menu.bullet: Triangle menu.bullet.position: Right window.title.focus: Raised Gradient Vertical Interlaced window.title.focus.color: rgb:62/70/85 window.title.focus.colorTo: rgb:56/66/75 window.title.unfocus: Raised Gradient Vertical window.title.unfocus.color: rgb:60/66/70 window.title.unfocus.colorTo: rgb:54/60/68 window.label.focus: Flat Gradient Vertical Interlaced window.label.focus.color: rgb:62/70/85 window.label.focus.colorTo: rgb:56/66/75 window.label.focus.textColor: rgb:FF/FF/FF window.label.unfocus: Flat Gradient Vertical window.label.unfocus.color: rgb:60/66/70 window.label.unfocus.colorTo: rgb:54/60/68 window.label.unfocus.textColor: rgb:C1/C1/C1 window.button.focus: Raised Gradient Diagonal Bevel1 window.button.focus.color: rgb:9B/9B/9B window.button.focus.colorTo: rgb:42/42/42 window.button.focus.picColor: rgb:E2/E2/E2 window.button.unfocus: Raised Gradient Diagonal Bevel1 window.button.unfocus.color: rgb:9B/9B/9B window.button.unfocus.colorTo: rgb:42/42/42 window.button.unfocus.picColor: rgb:C1/C1/C1 window.button.pressed: Sunken Gradient Diagonal Bevel1 window.button.pressed.color: rgb:9B/9B/9B window.button.pressed.colorTo: rgb:42/42/42 window.frame.focus: Sunken window.frame.focus.color: rgb:87/99/9F window.frame.unfocus: Sunken window.frame.unfocus.color: rgb:87/99/9F window.handle.focus: Raised Gradient Diagonal window.handle.focus.color: rgb:62/70/85 window.handle.focus.colorTo: rgb:56/66/75 window.handle.unfocus: Raised Gradient Diagonal window.handle.unfocus.color: rgb:60/66/70 window.handle.unfocus.colorTo: rgb:54/60/68 window.grip.focus: Raised Gradient Diagonal Interlaced window.grip.focus.color: rgb:9B/9B/9B window.grip.focus.colorTo: rgb:42/42/42 window.grip.unfocus: Raised Gradient Diagonal window.grip.unfocus.color: rgb:9B/9B/9B window.grip.unfocus.colorTo: rgb:42/42/42 ! ----------- tab - explicit for fluxbox, the best wm out there[tm] (; window.tab.justify: Left window.tab.label.unfocus: Sunken Gradient Vertical window.tab.label.unfocus.color: rgb:50/50/50 window.tab.label.unfocus.colorTo: rgb:54/60/68 window.tab.label.unfocus.textColor: rgb:AA/AA/AA window.tab.label.focus: Raised Gradient Vertical window.tab.label.focus.color: rgb:62/70/85 window.tab.label.focus.colorTo: rgb:556/66/75 window.tab.label.focus.textColor: #FFFFFF window.tab.borderWidth: 2 window.tab.borderColor: black ! ----------- (fluxbox.sourceforge.net) window.justify: Center window.tab.font: -*-clean-medium-r-*-*-12-*-*-*-*-60-iso8859-* toolbar.font: -*-lucida-bold-r-*-*-*-100-*-*-*-*-*-* window.font: -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-iso8859-* #menu.title.font: -*-lucida-bold-r-*-*-*-100-*-*-*-*-*-* menu.title.font: -*-lucida-bold-r-*-*-*-100-*-*-*-*-*-* menu.frame.font: -*-lucida-medium-r-*-*-*-100-*-*-*-*-*-* borderColor: rgb:00/00/00 bevelWidth: 2 borderWidth: 2 handleWidth: 3 background: mod background.modX: 5 background.modY: 5 background.color: rgb:52/60/75 background.colorTo: rgb:62/70/85 fluxbox-1.3.5/data/styles/PaxHeaders.25974/Makro0000644000175000017500000000013212106662425017504 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.835812458 30 ctime=1360750008.459811616 fluxbox-1.3.5/data/styles/Makro0000644000175000017500000001053012106662425015532 0ustar00mgmg00000000000000# "Makro" # A Fluxbox theme by: skypher of perplexity # 2001 toolbar: Gradient Vertical Sunken toolbar.color: rgb:CC/CC/AA toolbar.button: Flat Solid toolbar.button.color: rgb:AB/90/40 toolbar.button.picColor: rgb:50/30/10 toolbar.button.pressed: Sunken Flat toolbar.button.pressed.color: rgb:90/70/20 toolbar.clock: Flat toolbar.clock.color: rgb:AB/90/40 toolbar.clock.textColor: rgb:40/20/05 toolbar.label: Flat toolbar.label.color: rgb:AB/90/40 toolbar.label.textColor: rgb:40/20/05 toolbar.windowLabel: Flat toolbar.windowLabel.color: rgb:AB/90/40 toolbar.windowLabel.textColor: rgb:40/20/05 toolbar.justify: Left menu.title: Raised Flat menu.title.color: rgb:AB/90/40 menu.title.textColor: rgb:40/20/05 menu.title.justify: Left menu.frame: Gradient PipeCross menu.frame.color: rgb:CC/CC/AA menu.frame.colorTo: rgb:AB/AA/90 menu.frame.textColor: rgb:10/10/01 menu.frame.justify: Right menu.hilite: Flat menu.hilite.color: rgb:DF/CF/BF menu.hilite.textColor: rgb:00/00/00 menu.bullet: Square menu.bullet.position: Right window.title.focus: Gradient Vertical Sunken window.title.focus.color: rgb:CC/CC/AA window.title.unfocus: Gradient Vertical Sunken window.title.unfocus.color: rgb:AC/AC/90 window.label.focus: Solid Flat window.label.focus.color: rgb:AB/90/40 window.label.focus.textColor: rgb:40/20/05 window.label.unfocus: Flat Solid window.label.unfocus.color: rgb:AA/80/30 window.label.unfocus.textColor: rgb:45/25/10 window.button.focus: Flat Solid window.button.focus.color: rgb:AC/99/50 window.button.focus.picColor: rgb:40/20/05 window.button.unfocus: Flat Solid window.button.unfocus.color: rgb:AA/80/30 window.button.unfocus.picColor: rgb:45/25/10 window.button.pressed: Sunken Solid window.button.pressed.color: rgb:90/70/20 window.frame.focus: Flat window.frame.focus.color: rgb:00/00/00 window.frame.unfocus: Flat window.frame.unfocus.color: rgb:10/10/10 window.handle.focus: Sunken Solid window.handle.focus.color: rgb:AC/99/50 window.handle.unfocus: Flat Solid window.handle.unfocus.color: rgb:AA/80/30 window.grip.focus: Sunken Gradient Diagonal Interlaced window.grip.focus.color: rgb:AC/99/50 window.grip.focus.colorTo: rgb:AA/80/30 window.grip.unfocus: Raised Gradient Diagonal window.grip.unfocus.color: rgb:AA/80/30 window.grip.unfocus.colorTo: rgb:AC/99/50 ! ----------- tab - explicit for fluxbox, the best wm out there[tm] (; window.tab.justify: Center window.tab.label.unfocus: Flat Solid window.tab.label.unfocus.color: rgb:AA/80/30 window.tab.label.unfocus.textColor: rgb:45/25/10 window.tab.label.focus: Solid Flat window.tab.label.focus.color: rgb:AB/90/40 window.tab.label.focus.textColor: rgb:40/20/05 window.tab.borderWidth: 1 window.tab.borderColor: rgb:10/10/10 ! ----------- (fluxbox.sourceforge.net) window.tab.font: -*-helvetica-medium-r-*-*-11-*-*-*-*-*-iso8859-* window.justify: Left toolbar.font: -*-helvetica-medium-r-*-*-11-*-*-*-*-*-iso8859-* window.font: -*-helvetica-bold-r-*-*-11-*-*-*-*-*-iso8859-* menu.title.font: -*-helvetica-bold-r-*-*-11-*-*-*-*-*-iso8859-* menu.frame.font: -*-helvetica-medium-r-*-*-10-*-*-*-*-*-iso8859-* borderColor: rgb:10/10/10 bevelWidth: 2 borderWidth: 1 handleWidth: 3 background: flat background.color: rgb:9A/9A/90fluxbox-1.3.5/data/styles/PaxHeaders.25974/Makefile.include0000644000175000017500000000013212106662425021572 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749853.039812611 30 ctime=1360750008.459811616 fluxbox-1.3.5/data/styles/Makefile.include0000644000175000017500000000031512106662425017620 0ustar00mgmg00000000000000## included by all Makefile.am files under the data/styles directory MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST=$(style_DATA) uninstall-hook: rmdir $(DESTDIR)$(styledir) distclean-local: rm -f *\~ fluxbox-1.3.5/data/styles/PaxHeaders.25974/Makefile.in0000644000175000017500000000013112106662603020552 xustar000000000000000030 mtime=1360749955.279811956 29 atime=1360750003.07981165 30 ctime=1360750008.459811616 fluxbox-1.3.5/data/styles/Makefile.in0000644000175000017500000004742712106662603016620 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/Makefile.include subdir = data/styles ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(styledir)" DATA = $(style_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = Emerge BlueFlux bora_black bora_blue bora_green \ zimek_bisque zimek_darkblue zimek_green \ arch carp ostrich green_tea bloe styledir = $(pkgdatadir)/styles style_DATA = Makro MerleyKay Artwiz Flux \ Nyz Operation Outcomes Results Shade LemonSpace \ Twice qnx-photon BlueNight Meta MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = $(style_DATA) all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/Makefile.include $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/styles/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/styles/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(srcdir)/Makefile.include: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-styleDATA: $(style_DATA) @$(NORMAL_INSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(styledir)'"; \ $(MKDIR_P) "$(DESTDIR)$(styledir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(styledir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(styledir)" || exit $$?; \ done uninstall-styleDATA: @$(NORMAL_UNINSTALL) @list='$(style_DATA)'; test -n "$(styledir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(styledir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(styledir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-styleDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-styleDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) uninstall-hook .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive uninstall-am .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic ctags \ ctags-recursive distclean distclean-generic distclean-local \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip install-styleDATA installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-hook uninstall-styleDATA uninstall-hook: rmdir $(DESTDIR)$(styledir) distclean-local: rm -f *\~ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/data/styles/PaxHeaders.25974/Makefile.am0000644000175000017500000000013112106662425020543 xustar000000000000000030 mtime=1360749845.875812656 29 atime=1360749853.13581261 30 ctime=1360750008.459811616 fluxbox-1.3.5/data/styles/Makefile.am0000644000175000017500000000050212106662425016570 0ustar00mgmg00000000000000SUBDIRS=Emerge BlueFlux bora_black bora_blue bora_green \ zimek_bisque zimek_darkblue zimek_green \ arch carp ostrich green_tea bloe styledir = $(pkgdatadir)/styles style_DATA = Makro MerleyKay Artwiz Flux \ Nyz Operation Outcomes Results Shade LemonSpace \ Twice qnx-photon BlueNight Meta include Makefile.include fluxbox-1.3.5/data/PaxHeaders.25974/windowmenu0000644000175000017500000000013212106662425017304 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749876.799812458 30 ctime=1360750008.459811616 fluxbox-1.3.5/data/windowmenu0000644000175000017500000000025012106662425015330 0ustar00mgmg00000000000000[begin] [shade] [stick] [maximize] [iconify] [raise] [lower] [settitledialog] [sendto] [layer] [alpha] [extramenus] [separator] [close] [end] fluxbox-1.3.5/data/PaxHeaders.25974/overlay0000644000175000017500000000013212106662425016571 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.799812458 30 ctime=1360750008.463811616 fluxbox-1.3.5/data/overlay0000644000175000017500000000013112106662425014613 0ustar00mgmg00000000000000! The following line will prevent styles from setting the background. ! background: none fluxbox-1.3.5/data/PaxHeaders.25974/apps.in0000644000175000017500000000013212106662425016460 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.799812458 30 ctime=1360750008.463811616 fluxbox-1.3.5/data/apps.in0000644000175000017500000000013412106662425014505 0ustar00mgmg00000000000000[app] (name=@pkgprefix@fbrun@pkgsuffix@) [Position] (WINCENTER) {0 0} [Layer] {2} [end] fluxbox-1.3.5/data/PaxHeaders.25974/init.in0000644000175000017500000000013212106662425016460 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.795812459 30 ctime=1360750008.463811616 fluxbox-1.3.5/data/init.in0000644000175000017500000000046512106662425014514 0ustar00mgmg00000000000000! If you're looking for settings to configure, they won't be saved here until ! you change something in the fluxbox configuration menu. session.menuFile: ~/.@pkgprefix@fluxbox@pkgsuffix@/menu session.keyFile: ~/.@pkgprefix@fluxbox@pkgsuffix@/keys session.styleFile: @default_style@ session.configVersion: 13 fluxbox-1.3.5/data/PaxHeaders.25974/keys0000644000175000017500000000013212106662425016063 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749876.795812459 30 ctime=1360750008.463811616 fluxbox-1.3.5/data/keys0000644000175000017500000000716312106662425014121 0ustar00mgmg00000000000000# click on the desktop to get menus OnDesktop Mouse1 :HideMenus OnDesktop Mouse2 :WorkspaceMenu OnDesktop Mouse3 :RootMenu # scroll on the desktop to change workspaces OnDesktop Mouse4 :PrevWorkspace OnDesktop Mouse5 :NextWorkspace # scroll on the toolbar to change current window OnToolbar Mouse4 :PrevWindow {static groups} (iconhidden=no) OnToolbar Mouse5 :NextWindow {static groups} (iconhidden=no) # alt + left/right click to move/resize a window OnWindow Mod1 Mouse1 :MacroCmd {Raise} {Focus} {StartMoving} OnWindowBorder Move1 :StartMoving OnWindow Mod1 Mouse3 :MacroCmd {Raise} {Focus} {StartResizing NearestCorner} OnLeftGrip Move1 :StartResizing bottomleft OnRightGrip Move1 :StartResizing bottomright # alt + middle click to lower the window OnWindow Mod1 Mouse2 :Lower # control-click a window's titlebar and drag to attach windows OnTitlebar Control Mouse1 :StartTabbing # double click on the titlebar to shade OnTitlebar Double Mouse1 :Shade # left click on the titlebar to move the window OnTitlebar Mouse1 :MacroCmd {Raise} {Focus} {ActivateTab} OnTitlebar Move1 :StartMoving # middle click on the titlebar to lower OnTitlebar Mouse2 :Lower # right click on the titlebar for a menu of options OnTitlebar Mouse3 :WindowMenu # alt-tab Mod1 Tab :NextWindow {groups} (workspace=[current]) Mod1 Shift Tab :PrevWindow {groups} (workspace=[current]) # cycle through tabs in the current window Mod4 Tab :NextTab Mod4 Shift Tab :PrevTab # go to a specific tab in the current window Mod4 1 :Tab 1 Mod4 2 :Tab 2 Mod4 3 :Tab 3 Mod4 4 :Tab 4 Mod4 5 :Tab 5 Mod4 6 :Tab 6 Mod4 7 :Tab 7 Mod4 8 :Tab 8 Mod4 9 :Tab 9 # open a terminal Mod1 F1 :Exec xterm # open a dialog to run programs Mod1 F2 :Exec fbrun # volume settings, using common keycodes # if these don't work, use xev to find out your real keycodes 176 :Exec amixer sset Master,0 1+ 174 :Exec amixer sset Master,0 1- 160 :Exec amixer sset Master,0 toggle # current window commands Mod1 F4 :Close Mod1 F5 :Kill Mod1 F9 :Minimize Mod1 F10 :Maximize Mod1 F11 :Fullscreen # open the window menu Mod1 space :WindowMenu # exit fluxbox Control Mod1 Delete :Exit # change to previous/next workspace Control Mod1 Left :PrevWorkspace Control Mod1 Right :NextWorkspace # send the current window to previous/next workspace Mod4 Left :SendToPrevWorkspace Mod4 Right :SendToNextWorkspace # send the current window and follow it to previous/next workspace Control Mod4 Left :TakeToPrevWorkspace Control Mod4 Right :TakeToNextWorkspace # change to a specific workspace Control F1 :Workspace 1 Control F2 :Workspace 2 Control F3 :Workspace 3 Control F4 :Workspace 4 Control F5 :Workspace 5 Control F6 :Workspace 6 Control F7 :Workspace 7 Control F8 :Workspace 8 Control F9 :Workspace 9 Control F10 :Workspace 10 Control F11 :Workspace 11 Control F12 :Workspace 12 # send the current window to a specific workspace Mod4 F1 :SendToWorkspace 1 Mod4 F2 :SendToWorkspace 2 Mod4 F3 :SendToWorkspace 3 Mod4 F4 :SendToWorkspace 4 Mod4 F5 :SendToWorkspace 5 Mod4 F6 :SendToWorkspace 6 Mod4 F7 :SendToWorkspace 7 Mod4 F8 :SendToWorkspace 8 Mod4 F9 :SendToWorkspace 9 Mod4 F10 :SendToWorkspace 10 Mod4 F11 :SendToWorkspace 11 Mod4 F12 :SendToWorkspace 12 # send the current window and change to a specific workspace Control Mod4 F1 :TakeToWorkspace 1 Control Mod4 F2 :TakeToWorkspace 2 Control Mod4 F3 :TakeToWorkspace 3 Control Mod4 F4 :TakeToWorkspace 4 Control Mod4 F5 :TakeToWorkspace 5 Control Mod4 F6 :TakeToWorkspace 6 Control Mod4 F7 :TakeToWorkspace 7 Control Mod4 F8 :TakeToWorkspace 8 Control Mod4 F9 :TakeToWorkspace 9 Control Mod4 F10 :TakeToWorkspace 10 Control Mod4 F11 :TakeToWorkspace 11 Control Mod4 F12 :TakeToWorkspace 12 fluxbox-1.3.5/data/PaxHeaders.25974/Makefile.in0000644000175000017500000000013112106662603017227 xustar000000000000000030 mtime=1360749955.159811957 29 atime=1360750003.05981165 30 ctime=1360750008.467811616 fluxbox-1.3.5/data/Makefile.in0000644000175000017500000005153612106662603015271 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # data/Makefile.am for Fluxbox - an X11 Window manager VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = data DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(pkgdatadir)" DATA = $(pkgdata_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ PROGRAM_PREFIX = @program_prefix@ PROGRAM_SUFFIX = @program_suffix@ SUBDIRS = styles CLEANFILES = menu menu.in menu.pre menu.bak init apps MAINTAINERCLEANFILES = Makefile.in pkgdata_DATA = keys menu init apps overlay windowmenu EXTRA_DIST = keys init.in apps.in overlay windowmenu all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign data/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign data/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): uninstall-pkgdataDATA: @$(NORMAL_UNINSTALL) @list='$(pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(pkgdatadir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(DATA) all-local installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(pkgdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-pkgdataDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-pkgdataDATA .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am all-local check check-am clean clean-generic ctags \ ctags-recursive distclean distclean-generic distclean-local \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-pkgdataDATA install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-pkgdataDATA all-local: menu init apps install-pkgdataDATA: @echo "Installing menu file in $(DESTDIR)$(DEFAULT_MENU)" $(mkinstalldirs) $(DESTDIR)$(dir $(DEFAULT_MENU)) $(INSTALL_DATA) ./menu $(DESTDIR)$(DEFAULT_MENU) @echo "Installing keys file in $(DESTDIR)$(DEFAULT_KEYS)" $(mkinstalldirs) $(DESTDIR)$(dir $(DEFAULT_KEYS)) $(INSTALL_DATA) $(srcdir)/keys $(DESTDIR)$(DEFAULT_KEYS) @echo "Installing apps file in $(DESTDIR)$(DEFAULT_APPS)" $(mkinstalldirs) $(DESTDIR)$(dir $(DEFAULT_APPS)) $(INSTALL_DATA) ./apps $(DESTDIR)$(DEFAULT_APPS) @echo "Installing overlay file in $(DESTDIR)$(DEFAULT_OVERLAY)" $(mkinstalldirs) $(DESTDIR)$(dir $(DEFAULT_OVERLAY)) $(INSTALL_DATA) $(srcdir)/overlay $(DESTDIR)$(DEFAULT_OVERLAY) @echo "Installing init file in $(DESTDIR)$(DEFAULT_INIT)" $(mkinstalldirs) $(DESTDIR)$(dir $(DEFAULT_INIT)) $(INSTALL_DATA) ./init $(DESTDIR)$(DEFAULT_INIT) @echo "Installing windowmenu file in $(DESTDIR)$(DEFAULT_WINDOWMENU)" $(mkinstalldirs) $(DESTDIR)$(dir $(DEFAULT_WINDOWMENU)) $(INSTALL_DATA) $(srcdir)/windowmenu $(DESTDIR)$(DEFAULT_WINDOWMENU) distclean-local: rm -f *\~ init: init.in @regex_cmd@ -e "s,@pkgdatadir@,$(pkgdatadir),g" \ -e "s,@pkgprefix@,$(PROGRAM_PREFIX:NONE=),g" \ -e "s,@pkgsuffix@,$(PROGRAM_SUFFIX:NONE=),g" \ -e "s,@default_style@,$(DEFAULT_STYLE),g" $(srcdir)/init.in > init apps: apps.in @regex_cmd@ -e "s,@pkgdatadir@,$(pkgdatadir),g" \ -e "s,@pkgprefix@,$(PROGRAM_PREFIX:NONE=),g" \ -e "s,@pkgsuffix@,$(PROGRAM_SUFFIX:NONE=),g" $(srcdir)/apps.in > apps menu: ../util/fluxbox-generate_menu env MENUFILENAME=menu \ PREFIX="${prefix}" \ MENUTITLE="Fluxbox-${VERSION}" \ INSTALL=Yes \ PATH="${PATH}:../util:../util/fbrun" \ ../util/fluxbox-generate_menu ../util/fluxbox-generate_menu: cd ../util && ${MAKE} fluxbox-generate_menu # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/data/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425017221 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749853.007812611 30 ctime=1360750008.467811616 fluxbox-1.3.5/data/Makefile.am0000644000175000017500000000453412106662425015256 0ustar00mgmg00000000000000# data/Makefile.am for Fluxbox - an X11 Window manager PROGRAM_PREFIX=@program_prefix@ PROGRAM_SUFFIX=@program_suffix@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ SUBDIRS= styles CLEANFILES= menu menu.in menu.pre menu.bak init apps MAINTAINERCLEANFILES= Makefile.in pkgdata_DATA= keys menu init apps overlay windowmenu EXTRA_DIST= keys init.in apps.in overlay windowmenu all-local: menu init apps install-pkgdataDATA: @echo "Installing menu file in $(DESTDIR)$(DEFAULT_MENU)" $(mkinstalldirs) $(DESTDIR)$(dir $(DEFAULT_MENU)) $(INSTALL_DATA) ./menu $(DESTDIR)$(DEFAULT_MENU) @echo "Installing keys file in $(DESTDIR)$(DEFAULT_KEYS)" $(mkinstalldirs) $(DESTDIR)$(dir $(DEFAULT_KEYS)) $(INSTALL_DATA) $(srcdir)/keys $(DESTDIR)$(DEFAULT_KEYS) @echo "Installing apps file in $(DESTDIR)$(DEFAULT_APPS)" $(mkinstalldirs) $(DESTDIR)$(dir $(DEFAULT_APPS)) $(INSTALL_DATA) ./apps $(DESTDIR)$(DEFAULT_APPS) @echo "Installing overlay file in $(DESTDIR)$(DEFAULT_OVERLAY)" $(mkinstalldirs) $(DESTDIR)$(dir $(DEFAULT_OVERLAY)) $(INSTALL_DATA) $(srcdir)/overlay $(DESTDIR)$(DEFAULT_OVERLAY) @echo "Installing init file in $(DESTDIR)$(DEFAULT_INIT)" $(mkinstalldirs) $(DESTDIR)$(dir $(DEFAULT_INIT)) $(INSTALL_DATA) ./init $(DESTDIR)$(DEFAULT_INIT) @echo "Installing windowmenu file in $(DESTDIR)$(DEFAULT_WINDOWMENU)" $(mkinstalldirs) $(DESTDIR)$(dir $(DEFAULT_WINDOWMENU)) $(INSTALL_DATA) $(srcdir)/windowmenu $(DESTDIR)$(DEFAULT_WINDOWMENU) distclean-local: rm -f *\~ init: init.in @regex_cmd@ -e "s,@pkgdatadir@,$(pkgdatadir),g" \ -e "s,@pkgprefix@,$(PROGRAM_PREFIX:NONE=),g" \ -e "s,@pkgsuffix@,$(PROGRAM_SUFFIX:NONE=),g" \ -e "s,@default_style@,$(DEFAULT_STYLE),g" $(srcdir)/init.in > init apps: apps.in @regex_cmd@ -e "s,@pkgdatadir@,$(pkgdatadir),g" \ -e "s,@pkgprefix@,$(PROGRAM_PREFIX:NONE=),g" \ -e "s,@pkgsuffix@,$(PROGRAM_SUFFIX:NONE=),g" $(srcdir)/apps.in > apps menu: ../util/fluxbox-generate_menu env MENUFILENAME=menu \ PREFIX="${prefix}" \ MENUTITLE="Fluxbox-${VERSION}" \ INSTALL=Yes \ PATH="${PATH}:../util:../util/fbrun" \ ../util/fluxbox-generate_menu ../util/fluxbox-generate_menu: cd ../util && ${MAKE} fluxbox-generate_menu fluxbox-1.3.5/PaxHeaders.25974/util0000644000175000017500000000013212106662667015164 xustar000000000000000030 mtime=1360750007.407811623 30 atime=1360750008.467811616 30 ctime=1360750008.467811616 fluxbox-1.3.5/util/0000755000175000017500000000000012106662667013270 5ustar00mgmg00000000000000fluxbox-1.3.5/util/PaxHeaders.25974/fbrun0000644000175000017500000000013212106662667016300 xustar000000000000000030 mtime=1360750007.439811622 30 atime=1360750008.467811616 30 ctime=1360750008.467811616 fluxbox-1.3.5/util/fbrun/0000755000175000017500000000000012106662667014404 5ustar00mgmg00000000000000fluxbox-1.3.5/util/fbrun/PaxHeaders.25974/fbrun.xpm0000644000175000017500000000013212106662425020207 xustar000000000000000030 mtime=1360749845.903812656 30 atime=1360749876.763812459 30 ctime=1360750008.471811616 fluxbox-1.3.5/util/fbrun/fbrun.xpm0000644000175000017500000002171312106662425016242 0ustar00mgmg00000000000000/* XPM */ static const char * fbrun_xpm[] = { "32 32 433 2", " c None", ". c #000000", "+ c #574448", "@ c #574549", "# c #59464A", "$ c #59474B", "% c #5B484C", "& c #5C494D", "* c #5D4B4E", "= c #5D4C4F", "- c #5E4D51", "; c #5F4D51", "> c #614E52", ", c #624F54", "' c #635154", ") c #635155", "! c #655256", "~ c #655357", "{ c #675458", "] c #685559", "^ c #68575A", "/ c #675659", "( c #615054", "_ c #5F4E52", ": c #5A484C", "< c #584549", "[ c #241D1E", "} c #5A474A", "| c #5B484B", "1 c #5C4A4C", "2 c #5E4B4F", "3 c #5E4D50", "4 c #604D51", "5 c #5F4E51", "6 c #624F53", "7 c #625054", "8 c #645255", "9 c #645356", "0 c #655358", "a c #665558", "b c #69585A", "c c #6A595D", "d c #6A5A5C", "e c #67575A", "f c #614F52", "g c #5E4C4F", "h c #5C484D", "i c #58464A", "j c #231C1E", "k c #5A484B", "l c #5A494C", "m c #5C494E", "n c #5D4A4E", "o c #5F4D4F", "p c #604E51", "q c #625053", "r c #655255", "s c #655356", "t c #665557", "u c #675558", "v c #68575B", "w c #69595C", "x c #6A595C", "y c #6B5A5E", "z c #6C5B5F", "A c #6C5A5E", "B c #69585B", "C c #665459", "D c #625052", "E c #5F4D50", "F c #5A474B", "G c #554246", "H c #614F53", "I c #625154", "J c #645155", "K c #655257", "L c #655457", "M c #675559", "N c #68565A", "O c #69575B", "P c #6B595C", "Q c #6B595E", "R c #6D5B5E", "S c #6D5C5F", "T c #6F5D60", "U c #6F5E61", "V c #6A585C", "W c #685659", "X c #5F4D52", "Y c #5D4B4F", "Z c #594649", "` c #554346", " . c #604E52", ".. c #615053", "+. c #635255", "@. c #665457", "#. c #67565A", "$. c #68585B", "%. c #6B595D", "&. c #6B5B5E", "*. c #6D5D60", "=. c #6F5D61", "-. c #715F62", ";. c #705F63", ">. c #6E5C5F", ",. c #6C5A5D", "'. c #5E4C50", "). c #5B494D", "!. c #645256", "~. c #6D5C60", "{. c #6E5D60", "]. c #6F5E62", "^. c #715F63", "/. c #726064", "(. c #726164", "_. c #726265", ":. c #6E5D61", "<. c #6C5B5D", "[. c #6A585B", "}. c #5C4A4D", "|. c #6B595B", "1. c #6C5B5E", "2. c #6D5C5E", "3. c #6E5C60", "4. c #6F5E60", "5. c #705E62", "6. c #705F62", "7. c #615355", "8. c #56484B", "9. c #473D3E", "0. c #2D2728", "a. c #181515", "b. c #0B090A", "c. c #100E0E", "d. c #1C1718", "e. c #261F20", "f. c #282123", "g. c #32292A", "h. c #3E3234", "i. c #4C3C40", "j. c #6B5A5D", "k. c #6D5B5F", "l. c #6E5E61", "m. c #706062", "n. c #6B5C5F", "o. c #57494C", "p. c #483D3F", "q. c #080504", "r. c #22150F", "s. c #3D261A", "t. c #5A3827", "u. c #8D583D", "v. c #B7724F", "w. c #D1825A", "x. c #D0815A", "y. c #C57A55", "z. c #A96949", "A. c #925A3F", "B. c #89553B", "C. c #6F4530", "D. c #503223", "E. c #281911", "F. c #4A3B3D", "G. c #6B585B", "H. c #706063", "I. c #66575A", "J. c #3F3637", "K. c #0C0705", "L. c #382318", "M. c #573626", "N. c #9F6345", "O. c #D7855D", "P. c #E38D62", "Q. c #E78F64", "R. c #C67B55", "S. c #A66747", "T. c #825138", "U. c #41281C", "V. c #1E130D", "W. c #130C08", "X. c #0D0805", "Y. c #0A0604", "Z. c #060403", "`. c #050302", " + c #040202", ".+ c #716163", "++ c #695A5D", "@+ c #160E09", "#+ c #69412D", "$+ c #B06D4C", "%+ c #DE8A60", "&+ c #E89064", "*+ c #D6855C", "=+ c #452B1E", "-+ c #120B08", ";+ c #211C1D", ">+ c #322B2C", ",+ c #514547", "'+ c #4B3F42", ")+ c #463B3D", "!+ c #473B3E", "~+ c #4A3E3F", "{+ c #4F4144", "]+ c #524346", "^+ c #564648", "/+ c #5B494C", "(+ c #726165", "_+ c #42393B", ":+ c #6A422D", "<+ c #BD7552", "[+ c #B26F4D", "}+ c #583726", "|+ c #1A100B", "1+ c #362F30", "2+ c #1F1B1C", "3+ c #190F0B", "4+ c #2B1B12", "5+ c #372218", "6+ c #482D1F", "7+ c #4F3122", "8+ c #4B2E20", "9+ c #3F271B", "0+ c #2E1D14", "a+ c #554448", "b+ c #716064", "c+ c #736265", "d+ c #736266", "e+ c #756367", "f+ c #383032", "g+ c #3E261B", "h+ c #C27854", "i+ c #BA7350", "j+ c #442A1D", "k+ c #110B07", "l+ c #150D09", "m+ c #AC6B4A", "n+ c #CC7E58", "o+ c #CF8159", "p+ c #BE7652", "q+ c #995F42", "r+ c #6E442F", "s+ c #3B2519", "t+ c #241710", "u+ c #0F0906", "v+ c #57464A", "w+ c #736165", "x+ c #756569", "y+ c #342C2E", "z+ c #563625", "A+ c #D9865D", "B+ c #D5845C", "C+ c #754933", "D+ c #5E3A28", "E+ c #D9875E", "F+ c #945C40", "G+ c #2A1A12", "H+ c #3A3132", "I+ c #43383A", "J+ c #4E4143", "K+ c #57474A", "L+ c #58484B", "M+ c #5B4A4E", "N+ c #746366", "O+ c #42393A", "P+ c #E28C61", "Q+ c #764933", "R+ c #975E41", "S+ c #DF8A60", "T+ c #0E0806", "U+ c #2C2627", "V+ c #615254", "W+ c #6A5B5E", "X+ c #6E5E62", "Y+ c #5F4C51", "Z+ c #625456", "`+ c #E08B60", " @ c #BB7451", ".@ c #D8865D", "+@ c #8E583D", "@@ c #352117", "#@ c #282324", "$@ c #594E50", "%@ c #766668", "&@ c #7B6A6D", "*@ c #78686B", "=@ c #766669", "-@ c #746367", ";@ c #6D5D5F", ">@ c #69575A", ",@ c #3A3233", "'@ c #724731", ")@ c #A26546", "!@ c #2C1B13", "~@ c #322C2D", "{@ c #64585A", "]@ c #807073", "^@ c #7E6E71", "/@ c #7D6D6F", "(@ c #7B6B6E", "_@ c #79696C", ":@ c #77676A", "<@ c #746468", "[@ c #614F54", "}@ c #CF8059", "|@ c #563525", "1@ c #5D5254", "2@ c #837376", "3@ c #827275", "4@ c #817174", "5@ c #806F72", "6@ c #7E6D71", "7@ c #77666A", "8@ c #78676B", "9@ c #766568", "0@ c #716063", "a@ c #665456", "b@ c #635054", "c@ c #625356", "d@ c #20140E", "e@ c #433A3C", "f@ c #7F6E72", "g@ c #847477", "h@ c #827276", "i@ c #6D5F61", "j@ c #746466", "k@ c #6A5A5D", "l@ c #635456", "m@ c #E68F63", "n@ c #815038", "o@ c #564B4D", "p@ c #837375", "q@ c #837275", "r@ c #827174", "s@ c #615556", "t@ c #633E2B", "u@ c #020101", "v@ c #78676A", "w@ c #010100", "x@ c #965D41", "y@ c #915A3E", "z@ c #5F3B29", "A@ c #7F6F72", "B@ c #817073", "C@ c #817274", "D@ c #807174", "E@ c #5A4F51", "F@ c #030201", "G@ c #9A5F42", "H@ c #443B3D", "I@ c #7A6A6D", "J@ c #746266", "K@ c #5E4E51", "L@ c #180F0A", "M@ c #AA6A49", "N@ c #492D1F", "O@ c #321F16", "P@ c #615557", "Q@ c #756769", "R@ c #66595B", "S@ c #23150F", "T@ c #A56647", "U@ c #776669", "V@ c #756467", "W@ c #6C595D", "X@ c #6A575B", "Y@ c #665559", "Z@ c #615155", "`@ c #523323", " # c #DC895F", ".# c #553524", "+# c #1F1A1B", "@# c #2F2829", "## c #3E3637", "$# c #373031", "%# c #140C09", "&# c #2F1D14", "*# c #DB885F", "=# c #2D1C13", "-# c #554A4C", ";# c #7A696D", "># c #79696B", ",# c #786769", "'# c #756568", ")# c #AB6A4A", "!# c #7A4C35", "~# c #744832", "{# c #835138", "]# c #9E6244", "^# c #BC7551", "/# c #B8724F", "(# c #3A3234", "_# c #766569", ":# c #766567", "<# c #746467", "[# c #746265", "}# c #736164", "|# c #393031", "1# c #6B432E", "2# c #784B34", "3# c #855239", "4# c #B4704E", "5# c #D3835B", "6# c #A66748", "7# c #5B3827", "8# c #4A4042", "9# c #6F5F61", "0# c #645456", "a# c #3B3133", "b# c #362D2F", "c# c #5E4F52", "d# c #312A2B", "e# c #1A1717", "f# c #090808", "g# c #221D1E", "h# c #493F40", "i# c #706163", "j# c #736366", "k# c #665458", "l# c #79686B", "m# c #6D5A5E", "n# c #69585C", "o# c #675759", "p# c #756468", "q# c #746365", "r# c #716164", "s# c #705F61", "t# c #635055", "u# c #292123", "v# c #6F5F62", "w# c #625155", "x# c #282022", "y# c #655456", "z# c #665357", " . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", " . + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ / ! ( _ * : < . ", ". . [ } | 1 * 2 3 4 5 6 7 8 9 0 a / ^ b c d e ~ ' f g h i j . . ", ". k l m n = o p f q ' r s t u ^ v w x y z A B C 8 D E m F < G . ", ". n g E 5 H 6 I J K L M N ^ O P Q R S T U R V W s ' X Y % Z ` . ", ". ; .f ..+.8 ~ @.M #.$.V %.&.R *.=.U -.;.>.,.B @.8 H '.).$ + . ", ". q 7 !.K @.M W v w P ,.R ~.{.].^./.(._.^.:.<.[.{ ! ( ; }.k @ . ", ". 8 L { / N B |.%.1.2.3.4.5.6.{.7.8.9.0.a.b.b.c.d.e.f.g.h.i.Z . ", ". M W O V j.j.k.3.l.U m.n.o.p.q.r.s.t.u.v.w.x.y.z.A.B.C.D.E.F.. ", ". [.G.%.A ~.3.U 5.H.I.J.K.L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. +F . ", ". 1.S *.=.5.;..+++J.@+#+$+%+&+&+*+T.=+-+;+>+,+'+)+!+~+{+]+^+/+. ", ". :.U 6.^./.(+_+-+:+<+&+&+&+[+}+|+1+2+`.3+4+5+6+7+8+9+0+r.W.a+. ", ". ;.b+c+d+e+f+g+h+&+&+&+i+j+k+l+U.T.m+n+o+R.p+q+r+}+s+t+|+u+v+. ", ". 6.w+e+x+y+z+A+&+&+B+C+g+D+z.E+&+&+h+F+D+G+k+`.H+I+J+K+L+M+'.. ", ". U (.N+O+6+P+&+&+h+Q+R+*+&+&+S+N.j+T+U+p.V+W+X+{.1.V / !.7 Y+. ", ". {.^.Z+r.R.&+&+`+ @.@&+&+A++@@@#@$@%@&@*@=@-@(+6.;@P >@L +.> . ", ". S 6.,@'@&+&+&+Q.&+&+&+)@!@~@{@]@^@/@(@_@:@<@_.6.{.j.B u !.[@. ", ". 1.$.u+ @&+&+&+&+&+}@|@`.1@2@3@4@5@6@=@7@8@9@N+0@U R P W a@b@. ", ". j.c@3+A+&+&+&+&+z.d@e@f@2@g@h@4@]@i@K.Z.9@=@j@(.6.S k@^ a +.. ", ". %.l@l+}@&+&+m@n@X.o@5@4@p@q@3@r@s@d@t@u@*@v@9@d+^.{.1.B M s . ", ". V V+w@x@&+&+y@t.z@w@A@B@3@C@D@E@F@G@:+H@I@*@=@J@/.].S V N L . ", ". K@L@|+G@&+M@k+N@O@P@^@A@Q@R@w@S@T@S.`.U@I@_@:@V@c+;.{.W@X@Y@. ", ". Z@X.`@ #&+.#+#@#,@##$#u@%#&#T.*#A+=#-#;#>#*@,#'#d+0@4.A V / . ", ". a 8 Z.T@B+)#m++@!#~#{#]#^#P.&+/#=#(#*@8@U@_#:#<#[#}#6.3.,.N . ", ". L >@|#1#2#E.3#4#*+&+&+&+5#6#7#u+8#:@_#'#V@-@c+(.0@0@9#3.1.[.. ", ". 9 M 0#a#b#c#d#e#f#. . . b.g#h#i#%@'#-@j#c+(.^.5.U T S 1.j.[.. ", ". 8 k#>@j.{.-.}#V@U@l#l#*@7@=@:#V@j#c+(.b+;.].{.~.z m#x n#>@W . ", ". 7 L o#P k.U 0@-@%@7@U@_#p#<#q#c+r#0@s#=.3.S <.j.x n#N #.a L . ", ". 7 !.M n#A T -.d+p#p#N+N+_.(.0@6.U :.S R j.d X@^ W { @.!.) t#. ", ". . u#@.^ %.S 9#(.N+d+(.r#H.v#U 3.k.<.%.x B ^ M a L r w#7 x#. . ", " . y#W [.k.=.b+(.0@v#U >.S 1.y V [.e / k#z#!.J q .. .p . ", " . . . . . . . . . . . . . . . . . . . . . . . . . . . . "}; fluxbox-1.3.5/util/fbrun/PaxHeaders.25974/main.cc0000644000175000017500000000013212106662425017600 xustar000000000000000030 mtime=1360749845.903812656 30 atime=1360749876.763812459 30 ctime=1360750008.471811616 fluxbox-1.3.5/util/fbrun/main.cc0000644000175000017500000002133012106662425015626 0ustar00mgmg00000000000000// main.cc for FbRun // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "FbRun.hh" #include "FbTk/App.hh" #include "FbTk/StringUtil.hh" #include "FbTk/Color.hh" #ifdef XINERAMA extern "C" { #include } #endif // XINERAMA #include #include #ifdef HAVE_CSTRING #include #else #include #endif #ifdef HAVE_CSTDLIB #include #else #include #endif using std::cerr; using std::endl; using std::string; void showUsage(const char *progname) { cerr<<"fbrun 1.5 : (c) 2002-2004 Henrik Kinnunen"<display(); if (XQueryPointer(dpy, DefaultRootWindow(dpy), &ret_win, &child_win, &x, &y, &wx, &wy, &mask)) { int root_x = 0; int root_y = 0; unsigned int root_w = WidthOfScreen(DefaultScreenOfDisplay(dpy)); unsigned int root_h = HeightOfScreen(DefaultScreenOfDisplay(dpy)); #ifdef XINERAMA if(XineramaIsActive(dpy)) { XineramaScreenInfo* screen_info = 0; int number = 0; screen_info = XineramaQueryScreens(dpy, &number); if (screen_info) { for(int i= 0; i < number; i++) { if (x >= screen_info[i].x_org && x < screen_info[i].x_org + screen_info[i].width && y >= screen_info[i].y_org && y < screen_info[i].y_org + screen_info[i].height) { root_x = screen_info[i].x_org; root_y = screen_info[i].y_org; root_w = screen_info[i].width; root_h = screen_info[i].height; break; } } XFree(screen_info); } } #endif // XINERAMA x-= fbrun.width()/2; y-= fbrun.height()/2; if (x < root_x) x = root_x; if (x + fbrun.width() > root_x + root_w) x = root_x + root_w - fbrun.width(); if (y < root_y) y = root_y; if (y + fbrun.height() > root_y + root_h) y = root_y + root_h - fbrun.height(); } } if (set_pos) fbrun.move(x, y); fbrun.lockPosition(set_pos); fbrun.show(); application.eventLoop(); } catch (string & errstr) { cerr<<"Error: "< #include "fbrun.xpm" #endif // HAVE_XPM #include #include #include #include #include #include #include #include #include #ifdef _WIN32 #include #endif using std::cerr; using std::endl; using std::string; using std::fstream; using std::ifstream; using std::ofstream; using std::ios; FbRun::FbRun(int x, int y, size_t width): FbTk::TextBox(DefaultScreen(FbTk::App::instance()->display()), m_font, ""), m_print(false), m_font("fixed"), m_display(FbTk::App::instance()->display()), m_bevel(4), m_gc(*this), m_end(false), m_current_history_item(0), m_last_completion_prefix(""), m_current_apps_item(0), m_cursor(XCreateFontCursor(FbTk::App::instance()->display(), XC_xterm)) { setGC(m_gc.gc()); setCursor(m_cursor); // setting nomaximize in local resize resize(width, font().height() + m_bevel); // setup class name XClassHint ch; ch.res_name = const_cast("fbrun"); ch.res_class = const_cast("FbRun"); XSetClassHint(m_display, window(), &ch); #ifdef HAVE_XPM Pixmap mask = 0; Pixmap pm; XpmCreatePixmapFromData(m_display, window(), const_cast(fbrun_xpm), &pm, &mask, 0); // attribs if (mask != 0) XFreePixmap(m_display, mask); m_pixmap = pm; #endif // HAVE_XPM if (m_pixmap.drawable()) { XWMHints wmhints; wmhints.flags = IconPixmapHint; wmhints.icon_pixmap = m_pixmap.drawable(); XSetWMHints(m_display, window(), &wmhints); } } FbRun::~FbRun() { hide(); } void FbRun::run(const std::string &command) { FbTk::App::instance()->end(); // end application m_end = true; // mark end of processing if (m_print) { std::cout << command; hide(); return; } #ifdef HAVE_FORK // fork and execute program if (!fork()) { const char *shell = getenv("SHELL"); if (!shell) shell = "/bin/sh"; setsid(); execl(shell, shell, "-c", command.c_str(), static_cast(NULL)); exit(0); //exit child } #elif defined(_WIN32) /// @todo - unduplicate from FbCommands.cc #ifndef PATH_MAX #define PATH_MAX 1024 #endif char comspec[PATH_MAX] = {0}; char * env_var = getenv("COMSPEC"); if (env_var != NULL) { strncpy(comspec, env_var, PATH_MAX - 1); comspec[PATH_MAX - 1] = '\0'; } else { strncpy(comspec, "cmd.exe", 7); comspec[7] = '\0'; } spawnlp(P_NOWAIT, comspec, comspec, "/c", command.c_str(), static_cast(NULL)); #else #error "Can't build FbRun - don't know how to launch without fork on your platform" #endif hide(); // hide gui // save command history to file if (text().size() != 0) { // no need to save empty command // don't allow duplicates into the history file, first // look for a duplicate if (m_current_history_item < m_history.size() && text() == m_history[m_current_history_item]) { // m_current_history_item is the duplicate } else { m_current_history_item = 0; for (; m_current_history_item < m_history.size(); ++m_current_history_item) { if (m_history[m_current_history_item] == text()) break; } } fstream inoutfile(m_history_file.c_str(), ios::in|ios::out); if (inoutfile) { // now m_current_history_item points at the duplicate, or // at m_history.size() if no duplicate if (m_current_history_item != m_history.size()) { unsigned int i = 0; // read past history items before current for (; inoutfile.good() && i < m_current_history_item; i++) inoutfile.ignore(1, '\n'); // write the history items that come after current for (i++; i < m_history.size(); i++) inoutfile<end(); // end program break; case XK_KP_Enter: case XK_Return: run(text()); break; case XK_Up: prevHistoryItem(); break; case XK_Down: nextHistoryItem(); break; case XK_Tab: did_tab_complete = true; tabCompleteApps(); break; } } clear(); if (!did_tab_complete) m_last_completion_prefix = ""; } void FbRun::lockPosition(bool size_too) { // we don't need to maximize this window XSizeHints sh; sh.flags = PMaxSize | PMinSize; sh.max_width = width(); sh.max_height = height(); sh.min_width = width(); sh.min_height = height(); if (size_too) { sh.flags |= USPosition; sh.x = x(); sh.y = y(); } XSetWMNormalHints(m_display, window(), &sh); } void FbRun::prevHistoryItem() { if (m_history.empty() || m_current_history_item == 0) { XBell(m_display, 0); } else { m_current_history_item--; setText(m_history[m_current_history_item]); } } void FbRun::nextHistoryItem() { if (m_current_history_item == m_history.size()) { XBell(m_display, 0); } else { m_current_history_item++; FbTk::BiDiString text(""); if (m_current_history_item == m_history.size()) { m_current_history_item = m_history.size(); } else text.setLogical((m_history[m_current_history_item])); setText(text); } } void FbRun::firstHistoryItem() { if (m_history.empty() || m_current_history_item == 0) { XBell(m_display, 0); } else { m_current_history_item = 0; setText(FbTk::BiDiString(m_history[m_current_history_item])); } } void FbRun::lastHistoryItem() { // actually one past the end if (m_history.empty()) { XBell(m_display, 0); } else { m_current_history_item = m_history.size(); setText(FbTk::BiDiString("")); } } void FbRun::tabCompleteHistory() { if (m_current_history_item == 0 || m_history.empty() ) { XBell(m_display, 0); } else { unsigned int nr= 0; unsigned int history_item = m_current_history_item - 1; if (m_last_completion_prefix.empty()) m_last_completion_prefix = text().substr(0, textStartPos() + cursorPosition()); while (history_item != m_current_history_item && nr++ < m_history.size()) { if (m_history[history_item].find(m_last_completion_prefix) == 0) { m_current_history_item = history_item; setText(FbTk::BiDiString(m_history[m_current_history_item])); cursorEnd(); break; } if (history_item == 0) // loop history_item = m_history.size(); history_item--; } if (history_item == m_current_history_item) XBell(m_display, 0); } } void FbRun::tabCompleteApps() { static bool first_run= true; if (m_last_completion_prefix.empty()) m_last_completion_prefix = text().substr(0, textStartPos() + cursorPosition()); string prefix = m_last_completion_prefix; FbTk::Directory dir; bool add_dirs= false; bool changed_prefix= false; // (re)build m_apps-container if (first_run || m_last_completion_prefix != prefix) { first_run= false; string path; if(!prefix.empty() && string("/.~").find_first_of(prefix[0]) != string::npos) { size_t rseparator= prefix.find_last_of("/"); path= prefix.substr(0, rseparator + 1) + ":"; add_dirs= true; } else { char* tmp_path = getenv("PATH"); if (tmp_path) path = tmp_path; } m_apps.clear(); unsigned int l; unsigned int r; for(l= 0, r= 0; r < path.size(); r++) { if ((path[r]==':' || r == path.size() - 1) && r - l > 0) { string filename; string fncomplete; dir.open(path.substr(l, r - l).c_str()); int n= dir.entries(); if (n >= 0) { while(n--) { filename= dir.readFilename(); fncomplete= dir.name() + (*dir.name().rbegin() != '/' ? "/" : "") + filename; // directories in dirmode ? if (add_dirs && FbTk::FileUtil::isDirectory(fncomplete.c_str()) && filename != ".." && filename != ".") { m_apps.push_back(fncomplete); // executables in dirmode ? } else if (add_dirs && FbTk::FileUtil::isRegularFile(fncomplete.c_str()) && FbTk::FileUtil::isExecutable(fncomplete.c_str()) && (prefix == "" || fncomplete.substr(0, prefix.size()) == prefix)) { m_apps.push_back(fncomplete); // executables in $PATH ? } else if (FbTk::FileUtil::isRegularFile(fncomplete.c_str()) && FbTk::FileUtil::isExecutable(fncomplete.c_str()) && (prefix == "" || filename.substr(0, prefix.size()) == prefix)) { m_apps.push_back(filename); } } } l= r + 1; dir.close(); } } sort(m_apps.begin(), m_apps.end()); unique(m_apps.begin(), m_apps.end()); m_last_completion_prefix = prefix; changed_prefix= true; m_current_apps_item= 0; } if (m_apps.empty() ) { XBell(m_display, 0); } else { size_t apps_item = m_current_apps_item + (changed_prefix ? 0 : 1); bool loop= false; while (true) { if (apps_item >= m_apps.size() ) { loop = true; apps_item = 0; } if ((!changed_prefix || loop) && apps_item == m_current_apps_item) { break; } if (m_apps[apps_item].find(prefix) == 0) { m_current_apps_item = apps_item; if (add_dirs && FbTk::FileUtil::isDirectory(m_apps[m_current_apps_item].c_str())) setText(m_apps[m_current_apps_item] + "/"); else setText(m_apps[m_current_apps_item]); cursorEnd(); break; } apps_item++; } if (!changed_prefix && apps_item == m_current_apps_item) XBell(m_display, 0); } } void FbRun::insertCharacter(char keychar) { char val[2] = {keychar, 0}; insertText(val); } fluxbox-1.3.5/util/fbrun/PaxHeaders.25974/FbRun.hh0000644000175000017500000000013212106662425017702 xustar000000000000000030 mtime=1360749845.903812656 30 atime=1360749876.759812459 30 ctime=1360750008.471811616 fluxbox-1.3.5/util/fbrun/FbRun.hh0000644000175000017500000000744212106662425015740 0ustar00mgmg00000000000000// FbRun.hh // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBRUN_HH #define FBRUN_HH #include "FbTk/EventHandler.hh" #include "FbTk/Font.hh" #include "FbTk/FbWindow.hh" #include "FbTk/TextBox.hh" #include "FbTk/GContext.hh" #include "FbTk/FbPixmap.hh" #include #include /** Creates and managed a run window */ class FbRun: public FbTk::TextBox { public: FbRun(int x = 0, int y = 0, size_t width = 200); ~FbRun(); void handleEvent(XEvent * const ev); void setTitle(const std::string &title); void resize(unsigned int width, unsigned int height); void setPrint(bool print) { m_print = print; } /// load and reconfigure for new font bool loadFont(const std::string &fontname); void setForegroundColor(const FbTk::Color &color); void setAntialias(bool val) { /*m_font.setAntialias(val);*/ } const FbTk::Font &font() const { return m_font; } /// execute command and exit void run(const std::string &execstring); /// is this application done? bool end() const { return m_end; } /** loads history file. @return true on success, else false */ bool loadHistory(const char *filename); /** @name events */ ///@{ void keyPressEvent(XKeyEvent &ev); ///@} /// set no maximizable for this window void lockPosition(bool size_too); private: void nextHistoryItem(); void prevHistoryItem(); void drawString(int x, int y, const char *text, size_t len); void getSize(size_t &width, size_t &height); void createWindow(int x, int y, size_t width, size_t height); void redrawLabel(); void insertCharacter(char key); void adjustStartPos(); void adjustEndPos(); void firstHistoryItem(); void lastHistoryItem(); void tabCompleteHistory(); void tabCompleteApps(); bool m_print; ///< the input should be printed to stdout rather than run FbTk::Font m_font; ///< font used to draw command text Display *m_display; ///< display connection int m_bevel; FbTk::GContext m_gc; ///< graphic context bool m_end; ///< marks when this object is done std::vector m_history; ///< history list of commands std::string m_history_file; ///< holds filename for command history file size_t m_current_history_item; ///< holds current position in command history std::string m_last_completion_prefix; ///< last prefix we completed on typedef std::vector AppsContainer; typedef AppsContainer::iterator AppsContainerIt; AppsContainer m_apps; ///< holds all apps in $PATH size_t m_current_apps_item; ///< holds current position in apps-history Cursor m_cursor; FbTk::FbPixmap m_pixmap; }; #endif // FBRUN_HH fluxbox-1.3.5/util/fbrun/PaxHeaders.25974/Makefile.in0000644000175000017500000000013112106662604020410 xustar000000000000000030 mtime=1360749956.635811948 29 atime=1360750003.04381165 30 ctime=1360750008.471811616 fluxbox-1.3.5/util/fbrun/Makefile.in0000644000175000017500000003745312106662604016454 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : bin_PROGRAMS = fbrun$(EXEEXT) subdir = util/fbrun DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am_fbrun_OBJECTS = FbRun.$(OBJEXT) main.$(OBJEXT) fbrun_OBJECTS = $(am_fbrun_OBJECTS) fbrun_DEPENDENCIES = ${FLUXBOX_SRC_DIR}FbTk/libFbTk.a DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(fbrun_SOURCES) DIST_SOURCES = $(fbrun_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ FLUXBOX_SRC_DIR = ../../src/ AM_CPPFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/src/FbTk fbrun_SOURCES = FbRun.hh FbRun.cc main.cc fbrun.xpm fbrun_LDADD = ${FLUXBOX_SRC_DIR}FbTk/libFbTk.a all: all-am .SUFFIXES: .SUFFIXES: .cc .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign util/fbrun/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign util/fbrun/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) fbrun$(EXEEXT): $(fbrun_OBJECTS) $(fbrun_DEPENDENCIES) $(EXTRA_fbrun_DEPENDENCIES) @rm -f fbrun$(EXEEXT) $(CXXLINK) $(fbrun_OBJECTS) $(fbrun_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FbRun.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ .cc.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic ctags distclean distclean-compile \ distclean-generic distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ uninstall-am uninstall-binPROGRAMS ${FLUXBOX_SRC_DIR}FbTk/libFbTk.a: cd ${FLUXBOX_SRC_DIR}FbTk && make # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/util/fbrun/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020401 xustar000000000000000030 mtime=1360749845.903812656 30 atime=1360749854.479812601 30 ctime=1360750008.475811616 fluxbox-1.3.5/util/fbrun/Makefile.am0000644000175000017500000000043012106662425016425 0ustar00mgmg00000000000000FLUXBOX_SRC_DIR= ../../src/ AM_CPPFLAGS= -I$(top_srcdir)/src -I$(top_srcdir)/src/FbTk bin_PROGRAMS= fbrun fbrun_SOURCES= FbRun.hh FbRun.cc main.cc fbrun.xpm fbrun_LDADD= ${FLUXBOX_SRC_DIR}FbTk/libFbTk.a ${FLUXBOX_SRC_DIR}FbTk/libFbTk.a: cd ${FLUXBOX_SRC_DIR}FbTk && make fluxbox-1.3.5/util/PaxHeaders.25974/startfluxbox.in0000644000175000017500000000013212106662425020326 xustar000000000000000030 mtime=1360749845.903812656 30 atime=1360749876.727812459 30 ctime=1360750008.475811616 fluxbox-1.3.5/util/startfluxbox.in0000744000175000017500000000253312106662425016361 0ustar00mgmg00000000000000#!/bin/sh command="`basename \"$0\"`" fluxdir="$HOME/.@pkgprefix@fluxbox@pkgsuffix@" startup="$fluxdir/startup" while [ $# -gt 0 ]; do case "$1" in -c|--config) if [ $# -lt 2 ]; then echo "$command:error, missing argument" exit 1 fi shift startup=$1 ;; -h|--help) cat < "$startup" fi chmod 644 "$startup" exec sh "$startup" fi fluxbox-1.3.5/util/PaxHeaders.25974/fluxbox-generate_menu.in0000644000175000017500000000013212106662425022064 xustar000000000000000030 mtime=1360749845.903812656 30 atime=1360749876.723812459 30 ctime=1360750008.475811616 fluxbox-1.3.5/util/fluxbox-generate_menu.in0000744000175000017500000020336012106662425020120 0ustar00mgmg00000000000000#!/bin/sh # # generate_menu for Fluxbox # # Copyright (c) 2005 Dung N. Lam # Copyright (c) 2002-2004 Han Boetes # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), # to deal in the Software without restriction, including without limitation # the rights to use, copy, modify, merge, publish, distribute, sublicense, # and/or sell copies of the Software, and to permit persons to whom the # Software is furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # DEALINGS IN THE SOFTWARE. # Portability notes: # To guarantee this script works on all platforms that support fluxbox # please keep the following restrictions in mind: # # - don't use [ "a" == "a" ]; use [ "a" = "a" ] (found with help from FreeBSD user relaxed) # - don't use if ! command;, use command; if [ $? -ne 0 ]; # - don't use [ -e file ] use [ -r file ] # - don't use $(), use `` # - don't use ~, use ${HOME} # - don't use id -u or $UID, use whoami # - getopts won't work on all platforms, but the config-file can # compensate for that. # - OpenBSD and Solaris grep do not have the -m option # - various software like grep/sed/perl may be not present or not # the version you have. for example grep '\W' only works on gnu-grep. # Keep this in mind, use bare basic defaults. # - Do _NOT_ suggest to use #!/bin/bash. Not everybody uses bash. # Non portable features like getopts in this script can be achieved in # other ways. # Functions display_usage() { cat << EOF Usage: @pkgprefix@fluxbox-generate_menu@pkgsuffix@ [-kgrBh] [-t terminal] [-w url] [-b browser] [-m menu-title] [-o /path] [-u /path] [-p /path] [-n /path] [-q /path] [-d /path ] [-ds] [-i /path] [-is] [-su] EOF } display_help() { display_usage cat << EOF Options: -k Insert a KDE menu -g Add a Gnome menu -B Enable backgrounds menu -su Enable sudo commands -r Don't remove empty menu-entries; for templates -d Other path(s) to recursively search for *.desktop files -ds Wider search for *.desktop files (takes more time) -i Other path(s) to search for icons e.g., "/usr/kde/3.3/share/icons/crystalsvg/16x16/*" -is Wider search for icons (worth the extra time) -in Skip icon search -t Favourite terminal -w Homepage for console-browsers. Default is fluxbox.org -b Favourite browser -m Menu-title; default is "Fluxbox" -o Outputfile; default is ~/.@pkgprefix@fluxbox@pkgsuffix@/menu -u User sub-menu; default is ~/.@pkgprefix@fluxbox@pkgsuffix@/usermenu -h Display this help -a Display the authors of this script Only for packagers: -p Prefix; default is @PREFIX@ -n Gnome-prefix; /opt, /usr, /usr/X11R6 and /usr/local autodetected -q KDE-prefix; idem dito Files: ~/.@pkgprefix@fluxbox@pkgsuffix@/usermenu Your own submenu which will be included in the menu ~/.@pkgprefix@fluxbox@pkgsuffix@/menuconfig rc file for fluxbox-generate_menu EOF } #' display_authors() { cat << EOF @pkgprefix@fluxbox-generate_menu@pkgsuffix@ was brought to you by: Henrik Kinnunen: Project leader. Han Boetes: Packaging, debugging and scripts. Simon Bowden: Cleanups and compatibility for SUN. Jeramy B. Smith: Packaging assistance, Gnome and KDE menu system. Filippo Pappalardo: Italian locales and -t option. $WHOAMI: Innocent bystander. EOF } testoption() { if [ -z "$3" -o -n "`echo $3|grep '^-'`" ]; then echo "Error: The option $2 requires an argument." >&2 exit 1 fi case $1 in ex) # executable if find_it "$3"; then : else echo "Error: The option $2 needs an executable as argument, and \`$3' is not." >&2 fi ;; di) # directory if [ -d "$3" ]; then : else echo "Error: The option $2 needs a directory as argument, and \`$3' is not." >&2 fi ;; fl) # file if [ -r "$3" ]; then : else echo "Error: The option $2 needs a readable file as argument, and \`$3' is not." >&2 fi ;; sk) # skip : ;; esac } find_it() { [ -n "$1" ] && hash $1 2> /dev/null && shift && "$@" } find_it_options() { [ -n "$1" ] && hash $1 2> /dev/null } #echo "replaceWithinString: $1, $2, $3" >&2 #echo ${1//$2/$3} # causes error in BSD even though not used replaceWithinString(){ echo $1 | awk "{ gsub(/$2/, \"$3\"); print }" } convertIcon(){ if [ ! -f "$1" ] ; then echo "Icon file not found: $1" >&2 return 1 fi if [ "$1" = "$2" ]; then # $dnlamVERBOSE "Files are in the same location: $1 = $2" >&2 # not really an error; just nothing to do. return 0; fi local BASENAME BASENAME="${1##*/}" # make sure it is an icon by checking if it has an extension if [ "$BASENAME" = "${BASENAME%%.*}" ]; then # $dnlamVERBOSE "File $1 does not have a filename extention." >&2 return 1; fi # don't have to convert xpm files case "$1" in *.xpm) echo "$1" return 0; ;; esac # may not have to convert png if imlib is enabled if [ "$PNG_ICONS" = "yes" ]; then case "$1" in *.png) echo "$1" return 0; ;; esac fi # convert all others icons and save it as xpm format under directory $2 entry_icon="$2/${BASENAME%.*}.xpm" if [ -f "${entry_icon}" ]; then : echo "File exists. To overwrite, type: convert \"$1\" \"$entry_icon\"" >&2 else if hash convert 2> /dev/null; then convert "$1" "$entry_icon" # echo convert "$1" , "$entry_icon" >> $ICONMAPPING else echo "Please install ImageMagick's convert utility" >&2 fi fi echo "$entry_icon" } removePath(){ execname="$1" progname="${execname%% *}" # separate program name and its parameters if [ "$progname" = "$execname" ]; then # no params # remove path from only program name execname="${progname##*/}" else params="${execname#* }" # remove path from only program name execname="${progname##*/} $params" fi echo $execname } doSearchLoop(){ for ICONPATH in "$@"; do ## $dnlamVERBOSE ": $ICONPATH" >> $ICONMAPPING [ -d "$ICONPATH" ] || continue #echo -n "." # # $dnlamVERBOSE ":: $ICONPATH/$temp_icon" >> $ICONMAPPING if [ -f "$ICONPATH/$temp_icon" ]; then echo "$ICONPATH/$temp_icon" return 0; else # try different extensions; # remove extension iconNOext="${temp_icon%%.*}" [ -d "$ICONPATH" ] && for ICONEXT in .xpm .png .gif ; do ## echo "::: $ICONPATH/$iconNOext$ICONEXT" >> $ICONMAPPING realpath=`find "$ICONPATH" -type f -name "$iconNOext$ICONEXT" | head -n 1` if [ -n "$realpath" ]; then echo $realpath return 0; fi done fi done #echo "done" return 1 } doSearch(){ # remove '(' from '(fluxbox ...) | ...' execname=`replaceWithinString "$1" "\("` temp_icon="$2" # $dnlamVERBOSE "# Searching for icon $temp_icon for $execname" >> $ICONMAPPING # check in $ICONMAPPING before searching directories entry_icon=`grep "^\"${execname}\"" $ICONMAPPING | head -n 1 | grep -o '<.*>'` if [ -n "$entry_icon" ]; then entry_icon=`replaceWithinString "$entry_icon" "<"` entry_icon=`replaceWithinString "$entry_icon" ">"` echo $entry_icon return 0; fi # echo "$ICONMAPPING for $execname: $entry_icon" # the following paths include a user-defined variable, listing paths to search for icons # echo -n "for $temp_icon" eval doSearchLoop $USER_ICONPATHS \ "$FB_ICONDIR" \ "/usr/share/${execname%% *}" \ ${OTHER_ICONPATHS} \ } searchForIcon(){ # remove '&' and everything after it entry_exec="${1%%&*}" entry_icon="$2" # $dnlamVERBOSE echo "searchForIcon \"$entry_exec\" \"$entry_icon\"" >&2 # get the basename and parameters of entry_exec -- no path entry_exec=`removePath "${entry_exec}"` [ -z "$entry_exec" ] && { echo "Exec is NULL $1 with icon $2"; return 1; } # search for specified icon if it does not exists if [ -n "$entry_icon" ] && [ ! "$entry_exec" = "$entry_icon" ] && [ ! -f "$entry_icon" ]; then # to search for icon in other paths, # get basename temp_icon="${entry_icon##*/}" # remove parameters temp_icon="${temp_icon#* }" # clear entry_icon until temp_icon is found unset entry_icon if [ ! -f "$entry_icon" ]; then entry_icon=`doSearch "$entry_exec" "$temp_icon"` fi fi # remove parameters execname="${entry_exec%% *}" # echo "search for icon named $execname.{xpm,png,gif}" if [ ! -f "$entry_icon" ]; then entry_icon=`doSearch "$entry_exec" "$execname"` fi # ----------- done with search ------------ # $dnlamVERBOSE echo "::: $entry_icon" >&2 # convert icon file, if needed if [ -f "$entry_icon" ] && [ -n "yes$ConvertIfNecessary" ]; then entry_icon=`convertIcon "$entry_icon" "$USERFLUXDIR/icons"` # $dnlamVERBOSE echo ":::: $entry_icon" >&2 fi # remove path to icon; just get basename icon_base="${entry_icon##*/}" # remove extension icon_base="${icon_base%%.*}" # echo "^.${entry_exec}.[[:space:]]*<.*/${icon_base}\....>" if [ -f "$entry_icon" ]; then # if icon exists and entry does not already exists, add it if ! grep -q -m 1 "^.${entry_exec}.[[:space:]]*<.*/${icon_base}\....>" $ICONMAPPING 2> /dev/null; then printf "\"${entry_exec}\" \t <${entry_icon}>\n" >> $ICONMAPPING else : echo "# mapping already exists for ${entry_exec}" >> $ICONMAPPING fi else echo "# No icon file found for $entry_exec" >> $ICONMAPPING fi } toSingleLine(){ echo "$@"; } createIconMapping(){ # $dnlamVERBOSE "# creating `date`" >> $ICONMAPPING # $dnlamVERBOSE "# using desktop files in $@" >> $ICONMAPPING # $dnlamVERBOSE "# searching for icons in `eval toSingleLine $OTHER_ICONPATHS`" >> $ICONMAPPING # need to determine when to use .fluxbox/icons/$execname.xpm over those listed in iconmapping # $dnlamVERBOSE echo "createIconMapping: $@" for DIR in "$@" ; do if [ -d "$DIR" ]; then # $dnlamVERBOSE echo "# ------- Looking in $DIR" >&2 # >> $ICONMAPPING find "$DIR" -type f -name "*.desktop" | while read DESKTOP_FILE; do # echo $DESKTOP_FILE; #entry_name=`grep '^[ ]*Name=' $DESKTOP_FILE | head -n 1` #entry_name=${entry_name##*=} entry_exec=`grep '^[ ]*Exec=' "$DESKTOP_FILE" | head -n 1` entry_exec=${entry_exec##*=} entry_exec=`replaceWithinString "$entry_exec" "\""` if [ -z "$entry_exec" ]; then entry_exec=${DESKTOP_FILE%%.desktop*} fi entry_icon=`grep '^[ ]*Icon=' "$DESKTOP_FILE" | head -n 1` entry_icon=${entry_icon##*=} # $dnlamVERBOSE echo "--- $entry_exec $entry_icon" >&2 case "$entry_icon" in "" | mime_empty | no_icon ) : echo "no icon for $entry_exec" ;; *) searchForIcon "$entry_exec" "$entry_icon" ;; esac done fi done # $dnlamVERBOSE "# done `date`" >> $ICONMAPPING } lookupIcon() { if [ ! -f "$ICONMAPPING" ]; then echo "!!! Icon map file not found: $ICONMAPPING" >&2 return 1 fi execname="$1" shift [ -n "$1" ] && echo "!! Ignoring extra parameters: $*" >&2 [ -z "$execname" ] && { echo "execname is NULL; cannot lookup"; return 1; } execname=`removePath "$execname"` #echo "grepping ${execname}" iconString=`grep "^\"${execname}\"" $ICONMAPPING | head -n 1 | grep -o '<.*>'` # $dnlamVERBOSE "lookupIcon $execname, $iconString" >&2 if [ -z "$iconString" ] ; then iconString=`grep "^\"${execname%% *}" $ICONMAPPING | head -n 1 | grep -o '<.*>'` fi if [ -z "$iconString" ] && [ -z "$PARSING_DESKTOP" ] ; then ## $dnlamVERBOSE "lookupIcon: Searching ... should only be needed for icons not gotten from *.desktop (manual-created ones): $execname" >&2 searchForIcon "$execname" "$execname" [ -n "$entry_icon" ] && iconString="<$entry_icon>" fi # [ -n "$iconString" ] && echo " Found icon for $execname: $iconString" >&2 echo $iconString } append() { if [ -z "${INSTALL}" ]; then # $dnlamVERBOSE echo "append: $*" >&2 iconString="`echo $* | grep -o '<.*>'`" # echo "iconString=$iconString" >&2 if [ -z "$iconString" ] && [ -z "$NO_ICON" ]; then echo -n " $* " >> ${MENUFILENAME} # get the program name between '{}' from parameters execname="$*" execname=${execname#*\{} execname=${execname%%\}*} # $dnlamVERBOSE echo "execname=$execname" >&2 # if execname hasn't changed from original $*, then no '{...}' was given if [ ! "$execname" = "$*" ]; then case "$execname" in $DEFAULT_TERM*) # remove quotes execname=`replaceWithinString "$execname" "\""` # remove "$DEFAULT_TERM -e " # needed in case calling another program (e.g., vi) via "xterm -e" execname=${execname##*$DEFAULT_TERM -e } ;; esac # lookup execname in icon map file iconString=`lookupIcon "$execname"` #[ -n "$iconString" ] || echo "No icon found for $execname" fi echo "${iconString}" >> ${MENUFILENAME} else echo " $*" >> ${MENUFILENAME} fi else echo " $*" >> ${MENUFILENAME} fi } append_menu() { echo "$*" >> ${MENUFILENAME} } append_submenu() { [ "${REMOVE}" ] && echo >> ${MENUFILENAME} # only an empty line in templates append_menu "[submenu] ($1)" } append_menu_end() { append_menu '[end]' [ "${REMOVE}" ] && echo >> ${MENUFILENAME} # only an empty line in templates } menu_entry() { if [ -f "$1" ]; then # space&tab here entry_name=`grep '^[ ]*Name=' "$1" | head -n 1 | cut -d = -f 2` entry_exec=`grep '^[ ]*Exec=' "$1" | head -n 1 | cut -d = -f 2` if [ -n "$entry_name" -a -n "$entry_exec" ]; then append "[exec] ($entry_name) {$entry_exec}" fi fi } menu_entry_dir() { for b in "$*"/*.desktop; do menu_entry "${b}" done } menu_entry_dircheck() { if [ -d "$*" ]; then menu_entry_dir "$*" fi } # recursively build a menu from the listed directories # the dirs are merged recurse_dir_menu () { ls "$@"/ 2>/dev/null | sort | uniq | while read name; do for dir in "$@"; do if [ -n "$name" -a -d "$dir/$name" ]; then # recurse append_submenu "${name}" # unfortunately, this is messy since we can't easily expand # them all. Only allow for 3 atm. Add more if needed recurse_dir_menu ${1:+"$1/$name"} ${2:+"$2/$name"} ${3:+"$3/$name"} append_menu_end break; # found one, it'll pick up all the rest fi # ignore it if it is a file, since menu_entry_dir picks those up done done # Make entries for current dir after all submenus for dir in "$@"; do menu_entry_dircheck "${dir}" done } normal_find() { while [ "$1" ]; do find_it $1 append "[exec] ($1) {$1}" shift done } cli_find() { while [ "$1" ]; do find_it $1 append "[exec] ($1) {${DEFAULT_TERM} -e $1}" shift done } sudo_find() { [ "${DOSUDO}" = yes ] || return while [ "$1" ]; do find_it $1 append "[exec] ($1 (as root)) {${DEFAULT_TERM} -e sudo $1}" shift done } clean_up() { [ -f "$ICONMAPPING" ] && rm -f "$ICONMAPPING" # Some magic to clean up empty menus rm -f ${MENUFILENAME}.tmp touch ${MENUFILENAME}.tmp counter=10 # prevent looping in odd circumstances until [ $counter -lt 1 ] || \ cmp ${MENUFILENAME} ${MENUFILENAME}.tmp >/dev/null 2>&1; do [ -s ${MENUFILENAME}.tmp ] && mv ${MENUFILENAME}.tmp ${MENUFILENAME} counter=`expr $counter - 1` grep -v '^$' ${MENUFILENAME}|sed -e "/^\[submenu].*/{ n N /^\[submenu].*\n\[end]/d }"|sed -e "/^\[submenu].*/{ N /^\[submenu].*\n\[end]/d }" > ${MENUFILENAME}.tmp done rm -f ${MENUFILENAME}.tmp } # End functions WHOAMI=`whoami` [ "$WHOAMI" = root ] && PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin # Check for Imlib2-support if @pkgprefix@fluxbox@pkgsuffix@@EXEEXT@ -info 2> /dev/null | grep -q "^IMLIB"; then PNG_ICONS="yes" else # better assume to assume "no" PNG_ICONS="no" fi # menu defaults (if translation forget to set one of them) MENU_ENCODING=UTF-8 # (its also ascii) ABOUTITEM='About' ANALYZERMENU='Analyzers' BACKGROUNDMENU='Backgrounds' BACKGROUNDMENUTITLE='Set the Background' BROWSERMENU='Browsers' BURNINGMENU='Burning' CONFIGUREMENU='Configure' EDITORMENU='Editors' EDUCATIONMENU='Education' EXITITEM='Exit' FBSETTINGSMENU='Fluxbox menu' FILEUTILSMENU='File utils' FLUXBOXCOMMAND='Fluxbox Command' GAMESMENU='Games' GNOMEMENUTEXT='Gnome-menus' GRAPHICMENU='Graphics' KDEMENUTEXT='KDE-menus' LOCKSCREEN='Lock screen' MISCMENU='Misc' MULTIMEDIAMENU='Multimedia' MUSICMENU='Audio' NETMENU='Net' NEWS='News' OFFICEMENU='Office' RANDOMBACKGROUND='Random Background' REGENERATEMENU='Regen Menu' RELOADITEM='Reload config' RESTARTITEM='Restart' RUNCOMMAND='Run' SCREENSHOT='Screenshot' STYLEMENUTITLE='Choose a style...' SYSTEMSTYLES='System Styles' SYSTEMTOOLSMENU='System Tools' TERMINALMENU='Terminals' TOOLS='Tools' USERSTYLES='User Styles' VIDEOMENU='Video' WINDOWMANAGERS='Window Managers' WINDOWNAME='Window name' WORKSPACEMENU='Workspace List' XUTILSMENU='X-utils' # Check translation case ${LC_ALL} in ru_RU*) #Russian locales # Ah my Russian hero. Please help me update the translation # $ cp fluxbox-generate-menu.in fluxbox-generate-menu.in.orig # $ $EDITOR fluxbox-generate-menu.in # $ diff -u fluxbox-generate-menu.in.orig fluxbox-generate-menu.in > fbgm.diff # email fbgm.diff to han@mijncomputer.nl MENU_ENCODING=KOI8-R BACKGROUNDMENU='ïÂÏÉ' BACKGROUNDMENUTITLE='õÓÔÁÎÏ×ÉÔØ ÏÂÏÉ' BROWSERMENU='âÒÁÕÚÅÒÙ' CONFIGUREMENU='îÁÓÔÒÏÊËÁ' EDITORMENU='òÅÄÁËÔÏÒÙ' EXITITEM='÷ÙÊÔÉ' FBSETTINGSMENU='FB-ÎÁÓÔÒÏÊËÉ' FILEUTILSMENU='æÁÊÌÏ×ÙÅ ÕÔÉÌÉÔÙ' FLUXBOXCOMMAND='÷ÙÐÏÌÎÉÔØ ËÏÍÁÎÄÕ' GAMESMENU='éÇÒÙ' GNOMEMENUTEXT='Gnome-ÍÅÎÀ' GRAPHICMENU='çÒÁÆÉËÁ' KDEMENUTEXT='KDE-ÍÅÎÀ' LOCKSCREEN='úÁÂÌÏËÉÒÏ×ÁÔØ ÜËÒÁÎ' MISCMENU='ðÒÏÞÅÅ' MUSICMENU='ú×ÕË' NETMENU='óÅÔØ' OFFICEMENU='ïÆÉÓÎÙÅ ÐÒÉÌÏÖÅÎÉÑ' RANDOMBACKGROUND='óÌÕÞÁÊÎÙÅ ÏÂÏÉ' REGENERATEMENU='óÏÚÄÁÔØ ÍÅÎÀ ÚÁÎÏ×Ï' RELOADITEM='ðÅÒÅÎÁÓÔÒÏÉÔØ' RESTARTITEM='ðÅÒÅÚÁÐÕÓÔÉÔØ' RUNCOMMAND='÷ÙÐÏÌÎÉÔØ' SCREENSHOT='óÎÉÍÏË ÜËÒÁÎÁ' STYLEMENUTITLE='÷ÙÂÅÒÉÔÅ ÓÔÉÌØ' SYSTEMSTYLES='óÉÓÔÅÍÎÙÅ ÓÔÉÌÉ' TERMINALMENU='ôÅÒÍÉÎÁÌÙ' TOOLS='õÔÉÌÉÔÙ' USERSTYLES='ðÏÌØÚÏ×ÁÔÅÌØÓËÉÅ ÓÔÉÌÉ' WINDOWMANAGERS='íÅÎÅÄÖÅÒÙ ÏËÏÎ' WINDOWNAME='éÍÑ ÏËÎÁ' WORKSPACEMENU='òÁÂÏÞÉÅ ÐÒÏÓÔÒÁÎÓÔ×Á' XUTILSMENU='X-ÕÔÉÌÉÔÙ' ;; cs_CZ.ISO*) # Czech locales (ISO-8859-2 encodings) MENU_ENCODING=ISO-8859-2 ABOUTITEM='O programu...' BACKGROUNDMENU='Pozadí' BACKGROUNDMENUTITLE='Nastavení pozadí' BROWSERMENU='Prohlí¾eèe' BURNINGMENU='Vypalování' CONFIGUREMENU='Konfigurace' EDITORMENU='Editory' EXITITEM='Ukonèit' FBSETTINGSMENU='Fluxbox Menu' FILEUTILSMENU='Souborové utility' FLUXBOXCOMMAND='Pøíkaz Fluxboxu' GAMESMENU='Hry' GNOMEMENUTEXT='Gnome-menu' GRAPHICMENU='Grafika' KDEMENUTEXT='KDE-menu' LOCKSCREEN='Zamknout obrazovku' MISCMENU='Rùzné' MULTIMEDIAMENU='Multimédia' MUSICMENU='Audio' NETMENU='Internet' NEWS='News' OFFICEMENU='Kanceláø' RANDOMBACKGROUND='Náhodné pozadí' REGENERATEMENU='Obnovení menu' RELOADITEM='Obnovení konfigurace' RESTARTITEM='Restart' RUNCOMMAND='Spustit program...' SCREENSHOT='Screenshot' STYLEMENUTITLE='Volba stylu...' SYSTEMTOOLSMENU='Systémové utility' SYSTEMSTYLES='Systémové styly' TERMINALMENU='Terminály' TOOLS='Nástroje' USERSTYLES='U¾ivatelské styly' VIDEOMENU='Video' WINDOWMANAGERS='Okenní mana¾ery' WINDOWNAME='Jméno okna' WORKSPACEMENU='Seznam ploch' XUTILSMENU='X-utility' ;; de_DE*) # german locales MENU_ENCODING=ISO-8859-15 BACKGROUNDMENU='Hintergrundbilder' BACKGROUNDMENUTITLE='Hintergrundbild setzen' BROWSERMENU='Internet-Browser' CONFIGUREMENU='Einstellungen' EDITORMENU='Editoren' EXITITEM='Beenden' FBSETTINGSMENU='Fluxbox-Einstellungen' FILEUTILSMENU='Datei-Utilities' FLUXBOXCOMMAND='Fluxbox Befehl' GAMESMENU='Spiele' GNOMEMENUTEXT='Gnome-Menues' GRAPHICMENU='Grafik' KDEMENUTEXT='Kde-Menues' LOCKSCREEN='Bildschirmsperre' MISCMENU='Sonstiges' MUSICMENU='Musik' NETMENU='Netzwerk' OFFICEMENU='Bueroprogramme' RANDOMBACKGROUND='Zufaelliger Hintergrund' REGENERATEMENU='Menu-Regeneration' RELOADITEM='Konfiguration neu laden' RESTARTITEM='Neustarten' RUNCOMMAND='Ausführen' SCREENSHOT='Bildschirmfoto' STYLEMENUTITLE='Einen Stil auswaehlen...' SYSTEMSTYLES='Systemweite Stile' TERMINALMENU='Terminals' TOOLS='Helfer' USERSTYLES='Eigene Stile' WINDOWMANAGERS='Window Manager' WINDOWNAME='Window Name' WORKSPACEMENU='Arbeitsflaechenliste' XUTILSMENU='X-Anwendungen' ;; sv_SE*) #Swedish locales # Ah my Swedish hero. Please help me update the translation # $ cp fluxbox-generate-menu.in fluxbox-generate-menu.in.orig # $ $EDITOR fluxbox-generate-menu.in # $ diff -u fluxbox-generate-menu.in.orig fluxbox-generate-menu.in > fbgm.diff # email fbgm.diff to han@mijncomputer.nl MENU_ENCODING=ISO-8859-1 BACKGROUNDMENU='Bakgrunder' BACKGROUNDMENUTITLE='Sätt bakgrund' BROWSERMENU='Webbläsare' CONFIGUREMENU='Konfiguration' EDITORMENU='Editorer' EXITITEM='Avsluta' FBSETTINGSMENU='FB-inställningar' FILEUTILSMENU='Filverktyg' FLUXBOXCOMMAND='Fluxbox kommando' GAMESMENU='Spel' GNOMEMENUTEXT='Gnome-menyer' GRAPHICMENU='Grafik' KDEMENUTEXT='KDE-menyer' LOCKSCREEN='Lås skärm' MISCMENU='Blandat' MULTIMEDIAMENU='Multimedia' MUSICMENU='Musik' NETMENU='Internet' OFFICEMENU='Office' RANDOMBACKGROUND='Slumpmässig bakgrund' REGENERATEMENU='Generera meny' RELOADITEM='Ladda om konfig' RESTARTITEM='Starta om' RUNCOMMAND='Kör' SCREENSHOT='Skärmdump' STYLEMENUTITLE='Välj en stil' SYSTEMSTYLES='Stiler' TERMINALMENU='Terminaler' TOOLS='Verktyg' USERSTYLES='Stiler' VIDEOMENU='Video' WINDOWMANAGERS='Fönsterhanterare' WINDOWNAME='Fönsternamn' WORKSPACEMENU='Arbetsytor' XUTILSMENU='X-program' ;; nl_*) #Nederlandse locales MENU_ENCODING=ISO-8859-15 BACKGROUNDMENU='Achtergrond' BACKGROUNDMENUTITLE='Kies een achtergrond' BROWSERMENU='Browsers' CONFIGUREMENU='Instellingen' EDITORMENU='Editors' EXITITEM='Afsluiten' FBSETTINGSMENU='FB-Instellingen' FILEUTILSMENU='Verkenners' FLUXBOXCOMMAND='Fluxbox Commando' GAMESMENU='Spelletjes' GNOMEMENUTEXT='Gnome-menu' GRAPHICMENU='Grafisch' KDEMENUTEXT='KDE-menu' LOCKSCREEN='Scherm op slot' MISCMENU='Onregelmatig' MUSICMENU='Muziek' NETMENU='Internet' OFFICEMENU='Office' RANDOMBACKGROUND='Willekeurige Achtergrond' REGENERATEMENU='Nieuw Menu' RELOADITEM='Vernieuw instellingen' RESTARTITEM='Herstart' RUNCOMMAND='Voer uit' SCREENSHOT='Schermafdruk' STYLEMENUTITLE='Kies een stijl' SYSTEMSTYLES='Systeem Stijlen' TERMINALMENU='Terminals' TOOLS='Gereedschap' USERSTYLES='Gebruikers Stijlen' WINDOWMANAGERS='Venster Managers' WINDOWNAME='Venster Naam' WORKSPACEMENU='Werkveld menu' XUTILSMENU='X-Gereedschap' ;; fi_FI*) #Finnish locales MENU_ENCODING=ISO-8859-1 ABOUTMENU='Tietoja ohjelmasta' ABOUTITEM='Tietoja ohjelmasta' BACKGROUNDMENU='Taustakuvat' BACKGROUNDMENUTITLE='Määritä taustakuva' BROWSERMENU='Selaimet' CONFIGUREMENU='Asetukset' EDITORMENU='Editorit' EXITITEM='Lopeta' FBSETTINGSMENU='Fluxboxin asetukset' FILEUTILSMENU='Tiedostotyökalut' FLUXBOXCOMMAND='Fluxbox komentorivi' GAMESMENU='Pelit' GNOMEMENUTEXT='Gnomen valikot' GRAPHICMENU='Grafiikka' KDEMENUTEXT='KDE:n valikot' LOCKSCREEN='Lukitse näyttö' MISCMENU='Sekalaista' MUSICMENU='Musiikki' NETMENU='Verkko' OFFICEMENU='Toimisto-ohjelmat' RANDOMBACKGROUND='Satunnainen taustakuva' REGENERATEMENU='Päivitä valikko' RELOADITEM='Päivitä' RESTARTITEM='Käynnistä uudelleen' RUNCOMMAND='Suorita' SCREENSHOT='Kuvakaappaus' STYLEMENUTITLE='Valitse tyyli' SYSTEMSTYLES='Järjestelmän tyylit' TERMINALMENU='Terminaalit' TOOLS='Työkalut' USERSTYLES='Käyttäjän tyylit' WINDOWMANAGERS='Ikkunointiohjelmat' WINDOWNAME='Ikkunan nimi' WORKSPACEMENU='Työalueet' XUTILSMENU='X-Ohjelmat' ;; ja_JP*) #Japanese locales # Ah my Japanese hero. Please help me update the translation # $ cp fluxbox-generate-menu.in fluxbox-generate-menu.in.orig # $ $EDITOR fluxbox-generate-menu.in # $ diff -u fluxbox-generate-menu.in.orig fluxbox-generate-menu.in > fbgm.diff # email fbgm.diff to han@mijncomputer.nl MENU_ENCODING=eucJP BACKGROUNDMENU='ÇØ·Ê' BACKGROUNDMENUTITLE='ÇØ·Ê¤ÎÀßÄê' BROWSERMENU='¥Ö¥é¥¦¥¶' CONFIGUREMENU='ÀßÄê' EDITORMENU='¥¨¥Ç¥£¥¿' EXITITEM='½ªÎ»' FBSETTINGSMENU='Fluxbox¤ÎÀßÄê' FILEUTILSMENU='¥Õ¥¡¥¤¥ëÁàºî' FLUXBOXCOMMAND='Fluxbox¥³¥Þ¥ó¥É' GAMESMENU='¥²¡¼¥à' GNOMEMENUTEXT='Gnome¥á¥Ë¥å¡¼' GRAPHICMENU='²èÁü' KDEMENUTEXT='KDE¥á¥Ë¥å¡¼' LOCKSCREEN='¥¹¥¯¥ê¡¼¥ó¥í¥Ã¥¯' MISCMENU='¤¤¤í¤¤¤í' MUSICMENU='²»³Ú' NETMENU='¥Í¥Ã¥È¥ï¡¼¥¯' OFFICEMENU='¥ª¥Õ¥£¥¹(Office)' RANDOMBACKGROUND='ÇØ·Ê(¥é¥ó¥À¥à)' REGENERATEMENU='¥á¥Ë¥å¡¼ºÆ¹½À®' RELOADITEM='ºÆÆÉ¤ß¹þ¤ß' RESTARTITEM='ºÆµ¯Æ°' RUNCOMMAND='¥³¥Þ¥ó¥É¤Î¼Â¹Ô' SCREENSHOT='¥¹¥¯¥ê¡¼¥ó¥·¥ç¥Ã¥È' STYLEMENUTITLE='¥¹¥¿¥¤¥ëÁªÂò...' SYSTEMSTYLES='¥¹¥¿¥¤¥ë' TERMINALMENU='¥¿¡¼¥ß¥Ê¥ë' TOOLS='¥Ä¡¼¥ë' USERSTYLES='¥¹¥¿¥¤¥ë' WINDOWMANAGERS='¥¦¥£¥ó¥É¥¦¥Þ¥Í¡¼¥¸¥ã' WINDOWNAME='¥¦¥£¥ó¥É¥¦Ì¾' WORKSPACEMENU='¥ï¡¼¥¯¥¹¥Ú¡¼¥¹' XUTILSMENU='X¥æ¡¼¥Æ¥£¥ê¥Æ¥£' ;; fr_FR*) # french locales # Ah my french hero. Please help me update the translation # $ cp fluxbox-generate-menu.in fluxbox-generate-menu.in.orig # $ $EDITOR fluxbox-generate-menu.in # $ diff -u fluxbox-generate-menu.in.orig fluxbox-generate-menu.in > fbgm.diff # email fbgm.diff to han@mijncomputer.nl MENU_ENCODING=ISO-8859-15 ANALYZERMENU='Analyseurs' BACKGROUNDMENU="Fond d'écran" BACKGROUNDMENUTITLE="Changer le fond d'écran" BROWSERMENU='Navigateurs' CONFIGUREMENU='Configurer' EDITORMENU='Éditeurs' EXITITEM='Sortir' FBSETTINGSMENU='Configurer Fluxbox' FILEUTILSMENU='Outils fichiers' FLUXBOXCOMMAND='Commande Fluxbox' GAMESMENU='Jeux' GNOMEMENUTEXT='Menus Gnome' GRAPHICMENU='Graphisme' KDEMENUTEXT='Menus KDE' LOCKSCREEN="Verrouiller l'écran" MISCMENU='Divers' MULTIMEDIAMENU='Multimédia' MUSICMENU='Musique' NETMENU='Réseau' OFFICEMENU='Bureautique' RANDOMBACKGROUND="Fond d'écran aléatoire" REGENERATEMENU='Régénérer le menu' RELOADITEM='Recharger la configuration' RESTARTITEM='Redémarrer Fluxbox' RUNCOMMAND='Run' SCREENSHOT="Capture d'écran" STYLEMENUTITLE='Choisir un style...' SYSTEMSTYLES='Styles Système' SYSTEMTOOLSMENU='Outils Système' TERMINALMENU='Terminaux' TOOLS='Outils' USERSTYLES='Styles Utilisateur' VIDEOMENU='Vidéo' WINDOWMANAGERS='Gestionnaires de fenêtres' WINDOWNAME='Nom de la fenêtre' WORKSPACEMENU='Liste des bureaux' XUTILSMENU='Outils X' ;; it_IT*) # italian locales MENU_ENCODING=ISO-8859-1 BACKGROUNDMENU='Sfondi' BACKGROUNDMENUTITLE='Imposta lo sfondo' BROWSERMENU='Browsers' CONFIGUREMENU='Configurazione' EDITORMENU='Editori' EXITITEM='Esci' FBSETTINGSMENU='Preferenze' FILEUTILSMENU='Utilità' FLUXBOXCOMMAND='Comando Fluxbox' GAMESMENU='Giochi' GNOMEMENUTEXT='Gnome' GRAPHICMENU='Grafica' KDEMENUTEXT='KDE' LOCKSCREEN='Blocca lo schermo' MISCMENU='Varie' MUSICMENU='Musica' NETMENU='Internet' OFFICEMENU='Office' RANDOMBACKGROUND='Sfondo casuale' REGENERATEMENU='Rigenera il menu' RELOADITEM='Rileggi la configurazione' RESTARTITEM='Riavvia' RUNCOMMAND='Esegui' SCREENSHOT='Schermata' STYLEMENUTITLE='Scegli uno stile' SYSTEMSTYLES='Stile' TERMINALMENU='Terminali' TOOLS='Attrezzi' USERSTYLES='Stile' WINDOWMANAGERS='Gestori finestre' WINDOWNAME='Nome della finestra' WORKSPACEMENU='Aree di lavoro' XUTILSMENU='Utilità X' ;; ro_RO*) # Romanian locales # Ah my Romanian hero. Please help me update the translation # $ cp fluxbox-generate-menu.in fluxbox-generate-menu.in.orig # $ $EDITOR fluxbox-generate-menu.in # $ diff -u fluxbox-generate-menu.in.orig fluxbox-generate-menu.in > fbgm.diff # email fbgm.diff to han@mijncomputer.nl MENU_ENCODING=ISO-8859-15 BACKGROUNDMENU='Fundaluri' BACKGROUNDMENUTITLE='Alege fundalul' BROWSERMENU='Navigatoare' CONFIGUREMENU='Configurare' EDITORMENU='Editoare' EXITITEM='Iesire' FBSETTINGSMENU='Meniul Fluxbox' FILEUTILSMENU='Utilitare de fisier' FLUXBOXCOMMAND='Comanda Fluxbox' GAMESMENU='Jocuri' GNOMEMENUTEXT='Meniu Gnome' GRAPHICMENU='Grafica' KDEMENUTEXT='Meniu KDE' LOCKSCREEN='Incuie ecranul' MISCMENU='Diverse' MULTIMEDIAMENU='Multimedia' MUSICMENU='Muzica' NETMENU='Retea' OFFICEMENU='Office' RANDOMBACKGROUND='Fundal aleator' REGENERATEMENU='Regenereaza meniul' RELOADITEM='Reincarca configuratia' RESTARTITEM='Restart' RUNCOMMAND='Lanseaza' SCREENSHOT='Captura ecran' STYLEMENUTITLE='Alege un stil...' SYSTEMSTYLES='Stiluri sistem' TERMINALMENU='Terminale' TOOLS='Unelte' USERSTYLES='Stiluri utilizator' WINDOWMANAGERS='WindowManagers' WINDOWNAME='Nume fereastra' WORKSPACEMENU='Lista workspace-uri' XUTILSMENU='Utilitare X' ;; es_ES*) # spanish locales MENU_ENCODING=ISO-8859-15 ABOUTITEM='Acerca' BACKGROUNDMENU='Fondos' BACKGROUNDMENUTITLE='Seleccionar Fondo' BROWSERMENU='Navegadores' BURNINGMENU='Herramientas de grabación' CONFIGUREMENU='Configurar' EDITORMENU='Editores' EDUCATIONMENU='Educación' EXITITEM='Salir' FBSETTINGSMENU='Menú fluxbox' FILEUTILSMENU='Utilidades' FLUXBOXCOMMAND='Comandos de Fluxbox' GAMESMENU='Juegos' GNOMEMENUTEXT='Menús Gnome' GRAPHICMENU='Gráficos' KDEMENUTEXT='Menús KDE' LOCKSCREEN='Bloquear Pantalla' MISCMENU='Varios' MULTIMEDIAMENU='Multimedia' MUSICMENU='Música' NETMENU='Red' NEWS='Noticias' OFFICEMENU='Oficina' RANDOMBACKGROUND='Fondo Aleatoreo' REGENERATEMENU='Regenerar Menú' RELOADITEM='Reconfigurar' RESTARTITEM='Reiniciar' RUNCOMMAND='Ejecutar' SCREENSHOT='Captura de Pantalla' STYLEMENUTITLE='Escoge un Estilo...' SYSTEMSTYLES='Estilos del Sistema' TERMINALMENU='Terminales' TOOLS='Herramienta' USERSTYLES='Estilos del Usuario' VIDEOMENU='Video' WINDOWMANAGERS='Gestores de Ventanas' WINDOWNAME='Nombre de Ventana' WORKSPACEMENU='Lista de Escritorios' XUTILSMENU='Utilidades X' ;; pl_PL*) # Polish locales # Ah my Russian hero. Please help me update the translation # $ cp fluxbox-generate-menu.in fluxbox-generate-menu.in.orig # $ $EDITOR fluxbox-generate-menu.in # $ diff -u fluxbox-generate-menu.in.orig fluxbox-generate-menu.in > fbgm.diff # email fbgm.diff to han@mijncomputer.nl MENU_ENCODING=ISO-8859-2 BACKGROUNDMENU='Tapety' BACKGROUNDMENUTITLE='Ustaw tapetê' BROWSERMENU='Przegl±darki' CONFIGUREMENU='Konfiguracja' EDITORMENU='Edytory' EXITITEM='Wyj¶cie' FBSETTINGSMENU='Menu Fluxbox' FILEUTILSMENU='Narzêdzia do plików' FLUXBOXCOMMAND='Polecenia Fluxbox' GAMESMENU='Gry' GNOMEMENUTEXT='Menu Gnome' GRAPHICMENU='Grafika' KDEMENUTEXT='Menu KDE' LOCKSCREEN='Zablokuj ekran' MISCMENU='Ró¿ne' MULTIMEDIAMENU='Multimedia' MUSICMENU='Muzyka' NETMENU='Sieæ' OFFICEMENU='Aplikacje biurowe' RANDOMBACKGROUND='Losowa tapeta' REGENERATEMENU='Wygeneruj menu' RELOADITEM='Od¶wie¿ konfiguracjê' RESTARTITEM='Restartuj' RUNCOMMAND='Uruchom...' SCREENSHOT='Zrzut ekranu' STYLEMENUTITLE='Wybierz styl...' SYSTEMSTYLES='Style systemowe' TERMINALMENU='Terminale' TOOLS='Narzêdzia' USERSTYLES='Style u¿ytkownika' WINDOWMANAGERS='Menad¿ery okien' WINDOWNAME='Nazwy okien' WORKSPACEMENU='Lista pulpitów' XUTILSMENU='Narzêdzia X' ;; pt_PT*) # Portuguese locales MENU_ENCODING=ISO-8859-1 ABOUTMENU="Sobre" BACKGROUNDMENU='Imagens de Fundo' BACKGROUNDMENUTITLE='Definir Imagem de Fundo' BROWSERMENU='Browsers' BURNINGMENU='Ferramentas de Gravação' CONFIGUREMENU='Configuração' EDITORMENU='Editores' EDUCATIONMENU='Educação' EXITITEM='Sair' FBSETTINGSMENU='Menu Fluxbox' FILEUTILSMENU='Utilitários de Ficheiros' FLUXBOXCOMMAND='Comando Fluxbox' GAMESMENU='Jogos' GNOMEMENUTEXT='Menu Gnome' GRAPHICMENU='Gráficos' KDEMENUTEXT='Menu KDE' LOCKSCREEN='Trancar Ecrã' MISCMENU='Misc.' MULTIMEDIAMENU='Multimédia' MUSICMENU='Áudio' NETMENU='Rede' NEWS='Notícias' OFFICEMENU='Escritório' RANDOMBACKGROUND='Imagem Aleatória' REGENERATEMENU='Regenerar Menu' RELOADITEM='Recarregar configuração' RESTARTITEM='Reiniciar' RUNCOMMAND='Executar' SCREENSHOT='Capturar Ecrã' STYLEMENUTITLE='Escolha um estilo...' SYSTEMSTYLES='Estilos do Sistema' SYSTEMTOOLSMENU='Ferramentas de Sistema' TERMINALMENU='Terminais' TOOLS='Ferramentas' USERSTYLES='Estilos do Utilizador' VIDEOMENU='Vídeo' WINDOWMANAGERS='Gestores de Janelas' WINDOWNAME='Nome da Janela' WORKSPACEMENU='Lista de Áreas de Trabalho' XUTILSMENU='Utilitários X' ;; nb_NO*) # Norwegian locales MENU_ENCODING=UTF-8 ABOUTITEM='Om' BACKGROUNDMENU='Bakgrunner' BACKGROUNDMENUTITLE='Velg bakgrunn' BROWSERMENU='Nettlesere' CONFIGUREMENU='Oppsett' EDITORMENU='Tekstredigeringsprogram' EDUCATIONMENU='Lek og lær' EXITITEM='Avslutt' FBSETTINGSMENU='FluxBox-meny' FILEUTILSMENU='Filverktøy' FLUXBOXCOMMAND='FluxBox-kommando' GAMESMENU='Spill' GNOMEMENUTEXT='Gnome-menyer' GRAPHICMENU='Grafikk' KDEMENUTEXT='KDE-menyer' LOCKSCREEN='LÃ¥s skjermen' MISCMENU='Diverse' MULTIMEDIAMENU='Multimedia' MUSICMENU='Lyd' NETMENU='Nett' NEWS='Nyheter' OFFICEMENU='Kontor' RANDOMBACKGROUND='Tilfeldig bakgrunn' REGENERATEMENU='Regen Menu' RELOADITEM='Last oppsett pÃ¥ nytt' RESTARTITEM='Start pÃ¥ nytt' RUNCOMMAND='Kjør' SCREENSHOT='Ta bilde' STYLEMENUTITLE='Velg en stil . . .' SYSTEMSTYLES='System-stiler' TERMINALMENU='Terminaler' TOOLS='Verktøy' USERSTYLES='Bruker-stiler' VIDEOMENU='Video' WINDOWMANAGERS='Vindusbehandlere' WINDOWNAME='Vindunavn' WORKSPACEMENU='Liste over arbeidsomrÃ¥der' XUTILSMENU='X-verktøy' ;; *) ;; esac # Set Defaults USERFLUXDIR="${HOME}/.@pkgprefix@fluxbox@pkgsuffix@" MENUFILENAME="${MENUFILENAME:=${USERFLUXDIR}/menu}" MENUTITLE="${MENUTITLE:=Fluxbox}" HOMEPAGE="${HOMEPAGE:=fluxbox.org}" USERMENU="${USERMENU:=${USERFLUXDIR}/usermenu}" MENUCONFIG="${MENUCONFIG:=${USERFLUXDIR}/menuconfig}" DOSUDO="no" # Read the menuconfig file if it exists or else create it. # But not during install time, use envvar for sun if [ ! "${INSTALL}" = Yes ]; then if [ -r ${MENUCONFIG} ]; then . ${MENUCONFIG} else if [ ! "$WHOAMI" = root ]; then # this is only for users. if touch ${MENUCONFIG}; then cat << EOF > ${MENUCONFIG} # This file is read by fluxbox-generate_menu. If you don't like a # default you can change it here. Don't forget to remove the # in front # of the line. # Your favourite terminal. Put the command in quotes if you want to use # options. Put a backslash in before odd chars # MY_TERM='Eterm --tint \#123456' # MY_TERM='aterm -tint \$(random_color)' # Your favourite browser. You can also specify options. # MY_BROWSER=mozilla # Name of the outputfile # MENUFILENAME=${USERFLUXDIR}/menu # MENUTITLE=\`@pkgprefix@fluxbox@pkgsuffix@@EXEEXT@ -version|cut -d " " -f-2\` # standard url for console-browsers # HOMEPAGE=fluxbox.org # location with your own menu-entries # USERMENU=~/.@pkgprefix@fluxbox@pkgsuffix@/usermenu # Put the launcher you would like to use here # LAUNCHER=@pkgprefix@fbrun@pkgsuffix@@EXEEXT@ # LAUNCHER=fbgm # Options for fbrun # FBRUNOPTIONS='-font 10x20 -fg grey -bg black -title run' # --- PREFIX'es # These are prefixes; So if fluxbox is installed in @PREFIX@/bin/fluxbox # your prefix is: @PREFIX@ # fluxbox-generate already looks in /usr/X11R6, /usr, /usr/local and /opt so # there should be no need to specify them. # # PREFIX=@PREFIX@ # GNOME_PREFIX=/opt/gnome # KDE_PREFIX=/opt/kde # Separate the list of background dirs with colons ':' # BACKGROUND_DIRS="${USERFLUXDIR}/backgrounds/:@PREFIX@/share/fluxbox/backgrounds/:/usr/share/wallpapers" # --- Boolean variables. # Setting a variable to ``no'' won't help. Comment them out if you don't # want them. Settings are overruled by the command-line options. # Include all backgrounds in your backgrounds-directory # BACKGROUNDMENUITEM=yes # Include KDE-menus # KDEMENU=yes # Include Gnome-menus # GNOMEMENU=yes # Enable sudo commands # DOSUDO=yes # Don't cleanup the menu # REMOVE=no # Don't add icons to the menu # NO_ICON=yes EOF else echo "Warning: I couldn't create ${MENUCONFIG}" >&2 fi fi fi fi BACKUPOPTIONS=$@ if [ -n "$BACKUPOPTIONS" ]; then FBGM_CMD="@pkgprefix@fluxbox-generate_menu@pkgsuffix@ $BACKUPOPTIONS" else FBGM_CMD=@pkgprefix@fluxbox-generate_menu@pkgsuffix@ fi # Get options. while [ $# -gt 0 ]; do case "$1" in -B) BACKGROUNDMENUITEM=yes; shift;; -k) KDEMENU=yes; shift;; -g) GNOMEMENU=yes; shift;; -in) NO_ICON=yes; shift;; -is) OTHER_ICONPATHS=" /usr/share/icons /usr/share/icons/mini /usr/share/pixmaps /usr/local/share/icons /usr/local/share/icons/mini /usr/local/share/pixmaps /usr/share/xclass/icons /usr/share/xclass/pixmaps /usr/local/share/xclass/icons /usr/local/share/xclass/pixmaps /usr/X11R6/share/icons/default/16x16 /usr/X11R6/share/icons/kde/16x16 /usr/X11R6/share/icons/hicolor/16x16 /usr/local/X11R6/share/icons/default/16x16 /usr/local/X11R6/share/icons/kde/16x16 /usr/local/X11R6/share/icons/hicolor/16x16 " shift;; -ds) OTHER_DESKTOP_PATHS=" /usr/share/mimelnk /usr/share/applications /usr/share/xsessions /usr/share/services " # /usr/share/apps \ shift;; -i) USER_ICONPATHS=${2}; #needs testing for aPath in $2; do testoption di $1 $aPath; done shift 2;; -d) USER_DESKTOP_PATHS=${2}; #needs testing for aPath in $2; do testoption di $1 $aPath; done shift 2;; -t) MY_TERM=${2}; testoption ex $1 $2; shift 2;; -b) MY_BROWSER=${2}; testoption ex $1 $2; shift 2;; -o) MENUFILENAME=${2}; shift 2; CHECKINIT=NO ;; -p) PREFIX=${2}; testoption di $1 $2; shift 2;; -n) GNOME_PREFIX=${2}; testoption di $1 $2; shift 2;; -q) KDE_PREFIX=${2}; testoption di $1 $2; shift 2;; -m) MENUTITLE=${2}; testoption sk $1 $2; shift 2;; -w) HOMEPAGE=${2}; testoption sk $1 $2; shift 2;; -u) USERMENU=${2}; testoption fl $1 $2; shift 2;; -su) DOSUDO=yes; shift;; -r) REMOVE=no; shift;; -h) display_help ; exit 0 ;; -a) display_authors ; exit 0 ;; --*) echo "fluxbox-generate_menu doesn't recognize -- gnu-longopts." echo 'Use fluxbox-generate_menu -h for a long help message.' display_usage exit 1 ;; -[a-zA-Z][a-zA-Z]*) # split concatenated single-letter options apart FIRST="$1"; shift set -- `echo "$FIRST" | sed 's/^-\(.\)\(.*\)/-\1 -\2/'` "$@" ;; -*) echo 1>&2 "fluxbox-generate_menu: unrecognized option "\`"$1'" display_usage exit 1 ;; *) break ;; esac done # Check defaults # Can we actually create ${MENUFILENAME} touch ${MENUFILENAME} 2> /dev/null if [ $? -ne 0 ]; then echo "Fatal error: can't create or write to $MENUFILENAME" >&2 exit 1 fi # backup menu if [ -w "${MENUFILENAME}" ]; then if [ -f ${MENUFILENAME}.firstbak ]; then cp ${MENUFILENAME} ${MENUFILENAME}.firstbak fi if [ -s "${MENUFILENAME}" ]; then mv ${MENUFILENAME} ${MENUFILENAME}.bak fi fi # prefix PREFIX="${PREFIX:=@PREFIX@}" if [ -z "${PREFIX}" -o ! -d "${PREFIX}" ]; then hash @pkgprefix@fluxbox@pkgsuffix@@EXEEXT@ PREFIX=`hash | grep @pkgprefix@fluxbox@pkgsuffix@ | sed 's,.*\t/,/,' | sed 's,/bin/@pkgprefix@fluxbox@pkgsuffix@@EXEEXT@$,,'` fi # gnome prefix for GNOME_PREFIX in "${GNOME_PREFIX}" /usr/local /usr/X11R6 /usr /opt "${PREFIX}"; do if [ -n "${GNOME_PREFIX}" -a -d "$GNOME_PREFIX/share/gnome" ]; then break; fi done # Will remain $PREFIX if all else fails # kde prefix for KDE_PREFIX in "${KDE_PREFIX}" /usr/local /usr/X11R6 /usr /opt "${PREFIX}"; do if [ -n "${KDE_PREFIX}" -a -d "$KDE_PREFIX/share/applnk" ]; then break; fi done if [ -z "${INSTALL}" ] && [ -z "${NO_ICON}" ]; then # [ -z "$dnlamVERBOSE" ] && dnlamVERBOSE=": echo" # for debugging FB_ICONDIR="$USERFLUXDIR/icons" [ -r "$FB_ICONDIR" ] || mkdir "$FB_ICONDIR" ICONMAPPING="$USERFLUXDIR/iconmapping" if [ "$GNOMEMENU" ] ; then OTHER_DESKTOP_PATHS="\"$HOME/.gnome/apps\" \"${GNOME_PREFIX}/share/gnome/apps\" $OTHER_DESKTOP_PATHS" #[ "OTHER_ICONPATHS" ] && OTHER_ICONPATHS= fi if [ "$KDEMENU" ] ; then OTHER_DESKTOP_PATHS="\"$HOME/.kde/share/applnk\" \"${KDE_PREFIX}/share/applnk\" $OTHER_DESKTOP_PATHS" [ "OTHER_ICONPATHS" ] && OTHER_ICONPATHS="\"$HOME\"/.kde/share/icons/{,*} $OTHER_ICONPATHS" fi [ "$GNOMEMENU$KDEMENU" ] && OTHER_DESKTOP_PATHS="\"$ETCAPPLNK\" $OTHER_DESKTOP_PATHS" checkDirs(){ #echo checkDirs: $* >&2 local CHECKED_DIRS="" for DIR in "$@"; do if [ -d "$DIR" ]; then # todo: should check if there are duplicates CHECKED_DIRS="$CHECKED_DIRS \"$DIR\"" fi done #echo checkDirs - $CHECKED_DIRS >&2 echo $CHECKED_DIRS } OTHER_ICONPATHS=`eval checkDirs $OTHER_ICONPATHS` OTHER_DESKTOP_PATHS=`eval checkDirs $OTHER_DESKTOP_PATHS` # $dnlamVERBOSE "Using USER_DESKTOP_PATHS=\"$USER_DESKTOP_PATHS\" and USER_ICONPATHS=\"$USER_ICONPATHS\"" # $dnlamVERBOSE "Using OTHER_ICONPATHS=$OTHER_ICONPATHS" # $dnlamVERBOSE "Using OTHER_DESKTOP_PATHS=$OTHER_DESKTOP_PATHS" # $dnlamVERBOSE "Calling function: createIconMapping" # $dnlamVERBOSE "Creating $ICONMAPPING" >&2 touch "$ICONMAPPING" eval createIconMapping $USER_DESKTOP_PATHS $OTHER_DESKTOP_PATHS # $dnlamVERBOSE "Done createIconMapping." fi # directory for the backgrounds if [ -z "$BACKGROUND_DIRS" ]; then BACKGROUND_DIRS="${USERFLUXDIR}/backgrounds/:${PREFIX}/share/fluxbox/backgrounds/" fi # find the default terminal if find_it_options $MY_TERM; then DEFAULT_TERM=$MY_TERM else [ -n "$MY_TERM" ] && echo "Warning: you chose an invalid term." >&2 #The precise order is up for debate. for term in Eterm urxvt urxvtc aterm mrxvt rxvt wterm konsole gnome-terminal xterm; do if find_it_options $term; then DEFAULT_TERM=$term break fi done fi # a unix system without any terms. that's odd if [ -z "$DEFAULT_TERM" ]; then cat << EOF >&2 Warning: I can't find any terminal-emulators in your PATH. Please fix your PATH or specify your favourite terminal-emulator with the -t option EOF DEFAULT_TERM=xterm fi DEFAULT_TERMNAME=`echo $DEFAULT_TERM|awk '{print $1}'` DEFAULT_TERMNAME=`basename $DEFAULT_TERMNAME` # find the default browser if find_it_options $MY_BROWSER; then DEFAULT_BROWSER=$MY_BROWSER else [ -n "$MY_BROWSER" ] && echo "Warning: you chose an invalid browser." >&2 #The precise order is up for debate. for browser in firefox mozilla-firefox mozilla-firebird MozillaFirebird opera skipstone mozilla seamonkey galeon konqueror dillo netscape w3m amaya links lynx; do if find_it_options $browser; then DEFAULT_BROWSER=$browser break fi done fi DEFAULT_BROWSERNAME=`echo $DEFAULT_BROWSER|awk '{print $1}'` if [ "x$DEFAULT_BROWSERNAME" != "x" ]; then DEFAULT_BROWSERNAME=`basename $DEFAULT_BROWSERNAME` else DEFAULT_BROWSERNAME="firefox" fi if [ -z "$LAUNCHER" ]; then LAUNCHER=@pkgprefix@fbrun@pkgsuffix@@EXEEXT@ fi if [ -n "$FBRUNOPTIONS" ]; then # with this, LAUNCHER should be renamed LAUNCHER_NAME, but then there's # backwards-compatibility... LAUNCHER_CMD="$LAUNCHER $FBRUNOPTIONS" else LAUNCHER_CMD=$LAUNCHER fi # if gxmessage exists, use it; else use xmessage if find_it gxmessage; then XMESSAGE=gxmessage else XMESSAGE=xmessage fi # Start of menu cat << EOF > ${MENUFILENAME} # Generated by fluxbox-generate_menu # # If you read this it means you want to edit this file manually, so here # are some useful tips: # # - You can add your own menu-entries to ~/.@pkgprefix@fluxbox@pkgsuffix@/usermenu # # - If you miss apps please let me know and I will add them for the next # release. # # - The -r option prevents removing of empty menu entries and lines which # makes things much more readable. # # - To prevent any other app from overwriting your menu # you can change the menu name in ~/.@pkgprefix@fluxbox@pkgsuffix@/init to: # session.menuFile: ~/.@pkgprefix@fluxbox@pkgsuffix@/my-menu EOF echo "[begin] (${MENUTITLE})" >> ${MENUFILENAME} if [ -n "$MENU_ENCODING" ]; then append_menu "[encoding] {$MENU_ENCODING}" fi append "[exec] (${DEFAULT_TERMNAME}) {${DEFAULT_TERM}}" case "$DEFAULT_BROWSERNAME" in links|w3m|lynx) append "[exec] (${DEFAULT_BROWSERNAME}) {${DEFAULT_TERM} -e ${DEFAULT_BROWSER} ${HOMEPAGE}}" ;; firefox|firebird|mozilla|seamonkey|phoenix|galeon|dillo|netscape|amaya) append "[exec] (${DEFAULT_BROWSERNAME}) {${DEFAULT_BROWSER}}" ;; konqueror) append "[exec] (konqueror) {kfmclient openProfile webbrowsing}" ;; opera) append "[exec] (opera) {env QT_XFT=true opera}" ;; MozillaFirebird) append "[exec] (firebird) {MozillaFirebird}" ;; MozillaFirefox) append "[exec] (firefox) {MozillaFirefox}" ;; *) append "[exec] ($DEFAULT_BROWSERNAME) {$DEFAULT_BROWSER}" ;; esac find_it "${LAUNCHER}" append "[exec] (${RUNCOMMAND}) {$LAUNCHER_CMD}" append_submenu "${TERMINALMENU}" normal_find xterm urxvt urxvtc gnome-terminal multi-gnome-terminal Eterm \ konsole aterm mlterm multi-aterm rxvt mrxvt append_menu_end append_submenu "${NETMENU}" append_submenu "${BROWSERMENU}" normal_find firefox mozilla-firefox MozillaFirefox galeon mozilla seamonkey dillo netscape vncviewer find_it links append "[exec] (links-graphic) {links -driver x ${HOMEPAGE}}" find_it opera append "[exec] (opera) {env QT_XFT=true opera}" find_it konqueror append "[exec] (konqueror) {kfmclient openProfile webbrowsing}" find_it links append "[exec] (links) {${DEFAULT_TERM} -e links ${HOMEPAGE}}" find_it w3m append "[exec] (w3m) {${DEFAULT_TERM} -e w3m ${HOMEPAGE}}" find_it lynx append "[exec] (lynx) {${DEFAULT_TERM} -e lynx ${HOMEPAGE}}" append_menu_end append_submenu IM normal_find pidgin gaim kopete gnomemeeting sim kadu psi amsn aim ayttm everybuddy gabber ymessenger find_it licq append "[exec] (licq) {env QT_XFT=true licq}" cli_find centericq micq append_menu_end append_submenu Mail normal_find sylpheed kmail evolution thunderbird mozilla-thunderbird \ sylpheed-claws claws-mail cli_find mutt pine append_menu_end append_submenu News normal_find liferea pears pan cli_find slrn tin append_menu_end append_submenu IRC normal_find xchat xchat-2 ksirc vyqchat lostirc logui konversation kvirc skype cli_find irssi epic4 weechat ninja find_it BitchX append "[exec] (BitchX) {${DEFAULT_TERM} -e BitchX -N}" || \ find_it bitchx append "[exec] (BitchX) {${DEFAULT_TERM} -e bitchx -N}" find_it ircii append "[exec] (ircii) {${DEFAULT_TERM} -e ircii -s}" append_menu_end append_submenu P2P normal_find gtk-gnutella lopster nicotine pyslsk xmule amule \ valknut dcgui-qt dc_qt quickdc asami azureus cli_find TekNap giFTcurs append_menu_end append_submenu FTP normal_find gftp IglooFTP-PRO kbear cli_find ncftp pftp ftp lftp yafc append_menu_end append_submenu SMB normal_find LinNeighborhood jags SambaSentinel append_menu_end append_submenu "${ANALYZERMENU}" normal_find xnmap nmapfe wireshark ettercap sudo_find xnmap nmapfe wireshark ettercap append_menu_end normal_find x3270 wpa_gui append_menu_end append_submenu "${EDITORMENU}" normal_find gvim bluefish nedit gedit xedit kword kwrite kate anjuta \ wings xemacs emacs kvim cream evim scite Ted cli_find nano vim vi zile jed joe find_it emacs append "[exec] (emacs-nw) {${DEFAULT_TERM} -e emacs -nw}" find_it xemacs append "[exec] (xemacs-nw) {${DEFAULT_TERM} -e xemacs -nw}" append_menu_end append_submenu "${EDUCATIONMENU}" normal_find celestia scilab geomview scigraphica oregano xcircuit electric \ pymol elem chemtool xdrawchem gperiodic stellarium find_it drgeo append "[exec] (Dr. Geo) {drgeo}" find_it R append "[exec] (R) {${DEFAULT_TERM} -e R --gui=gnome}" cli_find maxima grace yacas octave gnuplot grass coq acl append_menu_end append_submenu "${FILEUTILSMENU}" find_it konqueror append "[exec] (konqueror) {kfmclient openProfile filemanagement}" normal_find gentoo krusader kcommander linuxcmd rox tuxcmd krename xfe xplore worker endeavour2 evidence find_it nautilus append "[exec] (nautilus) {nautilus --no-desktop --browser}" cli_find mc append_menu_end append_submenu "${MULTIMEDIAMENU}" append_submenu "${GRAPHICMENU}" normal_find gimp gimp2 gimp-2.2 inkscape sodipodi xv gqview showimg xpaint kpaint kiconedit \ ee xzgv xscreensaver-demo xlock gphoto tuxpaint krita skencil find_it xnview append "[exec] (xnview browser) {xnview -browser}" find_it blender append "[exec] (blender) {blender -w}" find_it gears append "[exec] (Mesa gears) {gears}" find_it morph3d append "[exec] (Mesa morph) {morph3d}" find_it reflect append "[exec] (Mesa reflect) {reflect}" append_menu_end append_submenu "${MUSICMENU}" normal_find xmms noatun alsaplayer gqmpeg aumix xmixer gnome-alsamixer gmix kmix kscd \ grecord kmidi xplaycd soundtracker grip easytag audacity \ zinf rhythmbox kaboodle beep-media-player amarok tagtool \ audacious bmpx cli_find cdcd cplay alsamixer orpheus mp3blaster append_menu_end append_submenu "${VIDEOMENU}" normal_find xine gxine aviplay gtv gmplayer xmovie xcdroast xgdb \ realplay xawtv fxtv ogle goggles vlc find_it dvdrip append "[exec] (dvdrip) {nohup dvdrip}" append_menu_end append_submenu "${XUTILSMENU}" normal_find xfontsel xman xload xbiff editres viewres xclock \ xmag wmagnify gkrellm gkrellm2 vmware portagemaster agave find_it xrdb append "[exec] (Reload .Xdefaults) {xrdb -load \$HOME/.Xdefaults}" append_menu_end append_menu_end append_submenu "${OFFICEMENU}" normal_find xclock xcalc kcalc grisbi qbankmanager evolution find_it gcalc append "[exec] (gcalc) {gcalc}" || \ find_it gnome-calculator append "[exec] (gcalc) {gnome-calculator}" find_it ical append "[exec] (Calendar) {ical}" # older <=1.1.3 apparently have stuff like swriter, not sowriter for ext in s so oo xoo; do find_it ${ext}ffice2 && ( find_it ${ext}ffice2 append "[exec] (Open Office 2) {${ext}ffice2}" find_it ${ext}base2 append "[exec] (OO Base 2) {${ext}base2}" find_it ${ext}calc2 append "[exec] (OO Calc 2) {${ext}calc2}" find_it ${ext}writer2 append "[exec] (OO Writer 2) {${ext}writer2}" find_it ${ext}web2 append "[exec] (OO Web 2) {${ext}web2}" find_it ${ext}html2 append "[exec] (OO HTML 2) {${ext}html2}" find_it ${ext}impress2 append "[exec] (OO Impress 2) {${ext}impress2}" find_it ${ext}draw2 append "[exec] (OO Draw 2) {${ext}draw2}" find_it ${ext}math2 append "[exec] (OO Math 2) {${ext}math2}" find_it ${ext}fromtemplate2 append "[exec] (OO Templates 2) {${ext}fromtemplate2}" ) find_it ${ext}ffice && ( find_it ${ext}ffice append "[exec] (Open Office) {${ext}ffice}" find_it ${ext}base append "[exec] (OO Base) {${ext}base}" find_it ${ext}calc append "[exec] (OO Calc) {${ext}calc}" find_it ${ext}writer append "[exec] (OO Writer) {${ext}writer}" find_it ${ext}web append "[exec] (OO Web) {${ext}web}" find_it ${ext}impress append "[exec] (OO Impress) {${ext}impress}" find_it ${ext}draw append "[exec] (OO Draw) {${ext}draw}" find_it ${ext}math append "[exec] (OO Math) {${ext}math}" find_it ${ext}fromtemplate append "[exec] (OO Templates) {${ext}fromtemplate}" find_it ${ext}padmin append "[exec] (OO Printer Admin) {${ext}padmin}" find_it mrproject append "[exec] (Mr.Project) {mrproject}" ) done normal_find abiword kword wordperfect katoob lyx acroread xpdf gv ghostview normal_find dia xfig normal_find gnumeric append_menu_end append_submenu "${GAMESMENU}" normal_find bzflag gnibbles gnobots2 tuxpuck gataxx glines \ gnect mahjongg gnomine gnome-stones gnometris gnotravex \ gnotski iagno knights eboard xboard scid freecell pysol \ gtali tuxracer xpenguins xsnow xeyes smclone \ openmortal quake2 quake3 skoosh same-gnome enigma xbill \ icebreaker scorched3d sol dosbox black-box freeciv \ freeciv-server frozen-bubble liquidwar qt-nethack \ nethack-gnome pathological scummvm xqf \ wesnoth canfeild ace_canfeild golf merlin chickens \ supertux tuxdash neverball cube_client blackjack \ doom doom3 quake4 blackshades gltron kpoker concentration \ torrent scramble kiki xmoto warsow wormux zsnes cli_find gnugo xgame find_it et append "[exec] (Enemy Territory) {et}" find_it ut append "[exec] (Unreal Tournament) {ut}" find_it ut2003 append "[exec] (Unreal Tournament 2003) {ut2003}" find_it ut2004 append "[exec] (Unreal Tournament 2004) {ut2004}" append_menu_end append_submenu "${SYSTEMTOOLSMENU}" append_submenu "${BURNINGMENU}" normal_find k3b cdbakeoven graveman xcdroast arson eroaster gcombust \ gtoaster kiso kover gtkcdlabel kcdlabel cdw cdlabelgen cli_find mp3burn cdrx burncenter append_menu_end normal_find firestarter gtk-lshw gproftd gpureftpd guitoo porthole gtk-iptables \ gtk-cpuspeedy find_it fireglcontrol append "[exec] (ATI Config) {fireglcontrol}" cli_find top htop iotop ntop powertop append_menu_end # We'll only use this once ETCAPPLNK=/etc/X11/applnk PARSING_DESKTOP="true" # gnome menu if [ "${GNOMEMENU}" ]; then append_submenu "${GNOMEMENUTEXT}" recurse_dir_menu "${GNOME_PREFIX}/share/gnome/apps" "$HOME/.gnome/apps" ${ETCAPPLNK} append_menu_end unset ETCAPPLNK fi # kde submenu if [ -d "${KDE_PREFIX}/share/applnk/" -a "${KDEMENU}" ]; then append_submenu "${KDEMENUTEXT}" recurse_dir_menu "${KDE_PREFIX}/share/applnk" "$HOME/.kde/share/applnk" ${ETCAPPLNK} append_menu_end unset ETCAPPLNK fi unset PARSING_DESKTOP #User menu if [ -r "${USERMENU}" ]; then cat ${USERMENU} >> ${MENUFILENAME} fi append_submenu "${FBSETTINGSMENU}" append "[config] (${CONFIGUREMENU})" append_menu "[submenu] (${SYSTEMSTYLES}) {${STYLEMENUTITLE}}" append "[stylesdir] (${PREFIX}/share/fluxbox/styles)" append_menu_end append_menu "[submenu] (${USERSTYLES}) {${STYLEMENUTITLE}}" append "[stylesdir] (~/.@pkgprefix@fluxbox@pkgsuffix@/styles)" append_menu_end # Backgroundmenu addbackground() { picturename=`basename "$1"` append "[exec] (${picturename%.???}) {@pkgprefix@fbsetbg@pkgsuffix@ -a \"$1\" }" } if [ "$BACKGROUNDMENUITEM" = yes ]; then IFS=: # set delimetor for find NUMBER_OF_BACKGROUNDS=`find $BACKGROUND_DIRS -follow -type f 2> /dev/null|wc -l` if [ "$NUMBER_OF_BACKGROUNDS" -gt 0 ]; then append_menu "[submenu] (${BACKGROUNDMENU}) {${BACKGROUNDMENUTITLE}}" append "[exec] (${RANDOMBACKGROUND}) {@pkgprefix@fbsetbg@pkgsuffix@ -r ${USERFLUXDIR}/backgrounds}" if [ "$NUMBER_OF_BACKGROUNDS" -gt 30 ]; then menucounter=1 ; counter=1 append_menu "[submenu] (${BACKGROUNDMENU} $menucounter) {${BACKGROUNDMENUTITLE}}" find $BACKGROUND_DIRS -follow -type f|sort|while read i; do counter=`expr $counter + 1` if [ $counter -eq 30 ]; then counter=1 menucounter=`expr $menucounter + 1` append_menu_end append_menu "[submenu] (${BACKGROUNDMENU} $menucounter) {${BACKGROUNDMENUTITLE}}" fi addbackground "$i" done append_menu_end else find $BACKGROUND_DIRS -follow -type f|sort|while read i; do addbackground "$i" done fi append_menu_end else echo "Warning: You wanted a background-menu but I couldn't find any backgrounds in: $BACKGROUND_DIRS" >&2 fi fi append "[workspaces] (${WORKSPACEMENU})" append_submenu "${TOOLS}" normal_find fluxconf fluxkeys fluxmenu find_it fbpanel append "[exec] (Fluxbox panel) {fbpanel}" find_it $XMESSAGE append \ "[exec] (${WINDOWNAME}) {xprop WM_CLASS|cut -d \\\" -f 2|$XMESSAGE -file - -center}" find_it import append "[exec] (${SCREENSHOT} - JPG) {import screenshot.jpg && display -resize 50% screenshot.jpg}" find_it import append "[exec] (${SCREENSHOT} - PNG) {import screenshot.png && display -resize 50% screenshot.png}" find_it ${LAUNCHER} append "[exec] (${RUNCOMMAND}) {$LAUNCHER_CMD}" find_it switch append "[exec] (gtk-theme-switch) {switch}" find_it switch2 append "[exec] (gtk2-theme-switch) {switch2}" find_it @pkgprefix@fluxbox-generate_menu@pkgsuffix@ append "[exec] (${REGENERATEMENU}) {$FBGM_CMD}" append_menu_end append_submenu "${WINDOWMANAGERS}" #hard to properly maintain since there are so many exceptions to the rule. for wm in mwm twm wmii beryl compiz metacity icewm ion kde sawfish enlightenment fvwm openbox evilwm waimea xfce pekwm xfce4 fvwm2 blackbox ; do find_it start${wm} append "[restart] (${wm}) {start${wm}}" ||\ find_it ${wm} append "[restart] (${wm}) {${wm}}" done find_it startgnome append "[restart] (gnome) {startgnome}" ||\ find_it gnome-session append "[restart] (gnome) {gnome-session}" find_it startwindowmaker append "[restart] (windowmaker) {startwindowmaker}" ||\ find_it wmaker append "[restart] (windowmaker) {wmaker}" append_menu_end find_it xlock append "[exec] (${LOCKSCREEN}) {xlock}" ||\ find_it xscreensaver-command append "[exec] (${LOCKSCREEN}) {xscreensaver-command -lock}" append "[commanddialog] (${FLUXBOXCOMMAND})" append "[reconfig] (${RELOADITEM})" append "[restart] (${RESTARTITEM})" append "[exec] (${ABOUTITEM}) {(@pkgprefix@fluxbox@pkgsuffix@@EXEEXT@ -v; @pkgprefix@fluxbox@pkgsuffix@@EXEEXT@ -info | sed 1d) | $XMESSAGE -file - -center}" append "[separator]" append "[exit] (${EXITITEM})" append_menu_end if [ -n "$MENU_ENCODING" ]; then append_menu "[endencoding]" fi append_menu_end # this function removes empty menu items. It can not yet remove nested # empty submenus :\ if [ ! "${REMOVE}" ]; then clean_up fi # escapes any parentheses in menu label # e.g., "[exec] (konqueror (web))" becomes "[exec] (konqueror (web\))" sed 's/(\(.*\)(\(.*\)))/(\1 (\2\\))/' $MENUFILENAME > $MENUFILENAME.tmp mv -f $MENUFILENAME.tmp $MENUFILENAME if [ -z "$INSTALL" ]; then if [ -z "$CHECKINIT" ]; then INITMENUFILENAME=`awk '/menuFile/ {print $2}' $USERFLUXDIR/init` INITMENUFILENAME=`replaceWithinString "$INITMENUFILENAME" "~" "$HOME"` if [ ! "$INITMENUFILENAME" = "$MENUFILENAME" ]; then echo "Note: In $USERFLUXDIR/init, your \"session.menuFile\" does not point to $MENUFILENAME but to $INITMENUFILENAME" >&2 fi fi echo "Menu successfully generated: $MENUFILENAME" #echo " Make sure \"session.menuFile: $MENUFILENAME\" is in $HOME/.@pkgprefix@fluxbox@pkgsuffix@/init." echo 'Use @pkgprefix@fluxbox-generate_menu@pkgsuffix@ -h to read about all the latest features.' fi fluxbox-1.3.5/util/PaxHeaders.25974/fbsetbg0000644000175000017500000000013212106662425016570 xustar000000000000000030 mtime=1360749845.903812656 30 atime=1360749876.723812459 30 ctime=1360750008.475811616 fluxbox-1.3.5/util/fbsetbg0000644000175000017500000004116612106662425014627 0ustar00mgmg00000000000000#!/bin/sh # # Set wallpaper for fluxbox. # # Copyright (c) 2003-2004 Han Boetes # # Permission is hereby granted, free of charge, to any person obtaining # a copy of this software and associated documentation files (the # "Software"), to deal in the Software without restriction, including # without limitation the rights to use, copy, modify, merge, publish, # distribute, sublicense, and/or sell copies of the Software, and to # permit persons to whom the Software is furnished to do so, subject to # the following conditions: # # The above copyright notice and this permission notice shall be # included in all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. # IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY # CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # Portability notes: # To guarantee this script works on all platforms that support fluxbox # please keep the following restrictions in mind: # # - don't use if ! command;, use command; if [ $? -ne 0 ]; # - don't use [ -e file ] use [ -r file ] # - don't use $(), use `` # - don't use ~, use ${HOME} # - don't use id -u or $UID, use whoami # - don't use echo -e # - getopts won't work on all platforms, but the config-file can # compensate for that. # - various software like grep/sed/perl may be not present or not # the version you have. for example grep '\W' only works on gnu-grep. # Keep this in mind, use bare basic defaults. # - Do _NOT_ suggest to use #!/bin/bash. Not everybody uses bash. # TODO purheps: xprop -root _WIN_WORKSPACE # _NET_CURRENT_DESKTOP # The wallpapersetter is selected in this order wpsetters="${wpsetters:=Esetroot wmsetbg feh hsetroot chbg display qiv xv xsri xli xsetbg}" # broken icewmbg' lastwallpaper="${HOME}/.fluxbox/lastwallpaper" WHOAMI=`whoami` [ "$WHOAMI" = root ] && PATH=/bin:/usr/bin/:/usr/local/bin:/usr/X11R6/bin command="`basename \"$0\"`" # Functions display_usage() { cat << EOF Usage: $command [-u/-U [wallpapersetter]] [-fFcCtTaA] /path/to/wallpaper $command [-u/-U [wallpapersetter]] [-fFcCtTaA] -r/-R /path/to/directory $command [-b/-B fbsetrootoptions] $command [-lhip] Use \`\`$command -h'' for a complete help message. EOF } display_help() { display_usage cat << EOF Options: -u Use specified wallpapersetter, use no argument to forget. -f Set fullscreen wallpaper (default). -c Set centered wallpaper. -t Set tiled wallpaper. -a Set maximized wallpaper, preserving aspect. ( if your wallpapersetter doesn't support this we fall back to -f ) -r set random wallpaper from a directory -b Forward the rest of the arguments to fbsetroot(1). This can be used to set solid, pattern, or gradient backgrounds. -F,-C,-T,-A,-U,-B,-R same as lower-case, but without remembering. -h Display this help. -l Set previous wallpaper. -i Information about selected wallpaper command. -d (deprecated, use -i) Debug info. -p Tips. Files: ~/.fluxbox/lastwallpaper In this file the wallpaper you set will be stored, for the -l option: Environment variables: wpsetters Wallpapersetters to use. example: wpsetters=feh fbsetbg wallpaper.jpg DISPLAY The display you want to set the wallpaper on. example: DISPLAY=:0.0 fbsetbg -l EOF } display_tips() { cat << EOF Common tips to use with $command: 1) To replace all occurrences of bsetbg with $command in a file use this command: perl -pi -e 's,([^f]|^)bsetbg,$command,' filename 2) If you want to set the wallpaper and you want $command to remember the previous wallpaper put this in your ~/.fluxbox/overlay background: none 3) Use $command -i to find out what wallpapersetter $command will be used and what $command thinks about it. EOF } find_it() { [ -n "$1" ] && hash $1 2> /dev/null } message() { # This Terminal detection method is inaccurate. Looking for a # replacement. # echo if we have terminal output, otherwise pop up a window # if [ -t 1 ]; then # echo "$command: $@" # else extra_args="-default okay" if find_it gxmessage; then gxmessage $extra_args -center "$command: $@" & else xmessage $extra_args -center "$command: $@" & fi # fi } remembercommand() { grep -vs "|${DISPLAY}$" ${lastwallpaper} > ${lastwallpaper}.tmp mv -f ${lastwallpaper}.tmp ${lastwallpaper} if [ "$option" = fbsetroot ]; then echo $option"|$wallpaper|$style|"$DISPLAY >> $lastwallpaper return fi # Make dir/../../path/file.jpg work case $wallpaper in # no spaces allowed between the varname and '|' /*) echo $option $option2"|$wallpaper|$style|"$DISPLAY >> $lastwallpaper ;; *) echo $option $option2"|$PWD/$wallpaper|$style|"$DISPLAY >> $lastwallpaper ;; esac } debugfbsetbg() { echo echo $debugstory echo $sad_esetroot_story exit 0 } use_fbsetroot() { fbsetroot $wallpaper if [ ! "$remember" = false ]; then remembercommand fi exit 0 } if [ $# -eq 0 ]; then message "no options given" display_usage exit 1 fi # create directory and last wallpaper file if [ ! -d "$HOME/.fluxbox" ]; then mkdir "$HOME/.fluxbox" touch ${lastwallpaper} fi unset debug setterfromcommandline # Parse command-line options while [ $# -gt 0 ]; do case "$1" in -u) if find_it "$2"; then grep -v wpsetters $lastwallpaper > ${lastwallpaper}.tmp echo "wpsetters $2" >> ${lastwallpaper}.tmp mv ${lastwallpaper}.tmp $lastwallpaper WPSETTER=$2 setterfromcommandline=true elif [ -z "$2" ]; then grep -v wpsetters $lastwallpaper > ${lastwallpaper}.tmp mv ${lastwallpaper}.tmp $lastwallpaper message "wpsetter removed from historyfile" exit 0 else message "Couldn't find \"$2\" for wallpapersetter" display_usage exit 1 fi shift 2 ;; -U) if find_it "$2"; then WPSETTER=$2 setterfromcommandline=true else message "Couldn't find \"$2\" for wallpapersetter" display_usage exit 1 fi shift 2 ;; -d|-i) debug=true break ;; -a) option='$aspect' shift ;; -f) option='$full' shift ;; -c) option='$center' shift ;; -t) option='$tile' shift ;; -A) option='$aspect' remember=false shift ;; -F) option='$full' remember=false shift ;; -C) option='$center' remember=false shift ;; -T) option='$tile' remember=false shift ;; -b) option=fbsetroot shift wallpaper=$* break ;; -B) option=fbsetroot shift wallpaper=$* remember=false break ;; -r) option2=$option option=random wallpaper=$2 # in this case it's a dir break ;; -R) option2=$option option=random wallpaper=$2 # in this case it's a dir remember=false break ;; -l) if [ -r "$lastwallpaper" ]; then option=`grep "|${DISPLAY}$" $lastwallpaper|cut -d'|' -f1` option2=`echo $option|cut -d' ' -f2` option=`echo $option|cut -d' ' -f1` wallpaper=`grep "|${DISPLAY}$" $lastwallpaper|cut -d'|' -f2` if [ -z "$wallpaper" ]; then option=`grep "|${DISPLAY}.0$" $lastwallpaper|cut -d'|' -f1` option2=`echo $option|cut -d' ' -f2` option=`echo $option|cut -d' ' -f1` wallpaper=`grep "|${DISPLAY}.0$" $lastwallpaper|cut -d'|' -f2` fi if [ -z "$wallpaper" ]; then message "No previous wallpaper recorded for display ${DISPLAY}" exit 1 fi else message "No previous wallpaper recorded for display ${DISPLAY}" exit 1 fi remember=false break ;; -z) if [ -r "$lastwallpaper" ]; then option=`grep "|${DISPLAY}$" $lastwallpaper|cut -d'|' -f1` option2=`echo $option|cut -d' ' -f2` option=`echo $option|cut -d' ' -f1` style=`grep "|${DISPLAY}$" $lastwallpaper|cut -d'|' -f3` wallpaper=`grep "|${DISPLAY}$" $lastwallpaper|cut -d'|' -f2` if [ -z "$wallpaper" ]; then option=`grep "|${DISPLAY}.0$" $lastwallpaper|cut -d'|' -f1` option2=`echo $option|cut -d' ' -f2` option=`echo $option|cut -d' ' -f1` style=`grep "|${DISPLAY}.0$" $lastwallpaper|cut -d'|' -f3` wallpaper=`grep "|${DISPLAY}.0$" $lastwallpaper|cut -d'|' -f2` fi fi if [ "$style" != "style" -a -n "$wallpaper" ]; then remember=false break fi ignore_missing_wallpaper=true style="style" shift ;; -Z) style="style" shift ;; -p) display_tips ; exit 0 ;; -h) display_help ; exit 0 ;; --) message "$command doesn't recognize -- gnu-longopts." message 'Use $command -h for a help message.' display_usage exit 1 ;; -*) message "unrecognized option "\`"$1'" display_usage exit 1 ;; *) if [ "$option" = random ]; then option='$aspect' elif [ ! -r "$1" ]; then message "$1 isn't an existing wallpaper or a valid option." display_usage exit 1 elif [ -z "$1" ]; then message 'No wallpaper to set' display_usage exit 1 else wallpaper=$1 break fi ;; esac done if [ "$option" = "fbsetroot" ]; then use_fbsetroot fi # Find the default wallpapersetter if [ "$setterfromcommandline" != true ]; then if [ -r "$lastwallpaper" ]; then wpsetters="`awk '/wpsetters/ {print $2}' $lastwallpaper` $wpsetters" fi for wpsetter in $wpsetters; do if find_it $wpsetter; then if [ ! "$wpsetter" = Esetroot ]; then WPSETTER=$wpsetter break elif ldd `which Esetroot`|grep libImlib 2>&1 > /dev/null; then WPSETTER=$wpsetter break else sad_esetroot_story="I also found Esetroot, but it doesn't have support for setting wallpapers. You need to install libimlib2 and rebuild Eterm to get it working." fi fi done fi standardrant=\ "$WPSETTER doesn't set the wallpaper properly. Transparency for fluxbox and apps like aterm and xchat won't work right with it. Consider installing feh, wmsetbg (from windowmaker) or Esetroot (from Eterm) and I'll use them instead." standardok=\ "$WPSETTER is a nice wallpapersetter. You won't have any problems." case $WPSETTER in chbg) full='-once -mode maximize' tile='-once -mode tile' center='-once -mode center' aspect='-once -mode smart -max_grow 100 -max_size 100' debugstory="chbg supports all features but it doesn't report errors. I reported this bug to the chbg developers." ;; xsri) full='--center-x --center-y --scale-width=100 --scale-height=100' tile='--tile' center='--center-x --center-y --color=black' aspect='--center-x --center-y --scale-width=100 --scale-height=100 --keep-aspect --color=black' debugstory=$standardok ;; display) full="`xwininfo -root 2> /dev/null|grep geom` -window root" tile='-window root' center='-backdrop -window root' aspect=$full debugstory=$standardrant ;; Esetroot) full='-scale' tile='' center='-c' aspect='-fit' debugstory=$standardok ;; wmsetbg) full='-s -S' tile='-t' center='-b black -e' aspect='-b black -a -S' debugstory=$standardok ;; xsetbg) tile='-border black' center='-center -border black' aspect='-fullscreen -border black' full=$aspect #broken debugstory="xsetbg is actually xli. The fillscreen option (-f) is broken, defaults to (-a). $standardrant" ;; xli) tile='-onroot -quiet -border black' center='-center -onroot -quiet -border black' aspect='-fullscreen -onroot -quiet -border black' full=$aspect #broken debugstory="The fillscreen option (-f) is broken, defaults to (-a). $standardrant" ;; qiv) full='--root_s' tile='--root_t' center='--root' aspect='-m --root' debugstory=$standardrant ;; xv) full='-max -smooth -root -quit' tile='-root -quit' center='-rmode 5 -root -quit' aspect='-maxpect -smooth -root -quit' debugstory=$standardrant ;; feh) full='--bg-scale' tile='--bg-tile' center='--bg-center' aspect="--bg-fill" debugstory=$standardok ;; hsetroot) full='-fill' tile='-tile' center='-center' aspect='-full' debugstory=$standardok ;; icewmbg) tile='-s' full=$tile center=$tile aspect=$tile debugstory="icewmbg does support transparency, but only tiling. And I noticed odd errormessages with aterm. Don't use it unless you have to." ;; '') message \ "I can't find an app to set the wallpaper with. You can install one in many many ways but I will give you some simple advice: install Eterm and you're set. Eterm provides Esetroot and thats a great wallpaper setter. I recommend you install the package provided by your distro." exit 1 ;; esac if [ "$debug" = true ]; then debugfbsetbg exit 0 fi option=${option:='$full'} option2=${option2:='$full'} if [ -z "$DISPLAY" ]; then message "You are not connected to an X session\nPerhaps you should set the DISPLAY environment variable?" exit 1 fi # random wallpaper code if [ "$option" = random ]; then # Lets make one thing clear... wallpaperdir="$wallpaper" if [ -z "$wallpaperdir" ]; then message "No random wallpaper directory specified." exit 1 fi if [ -d "$wallpaperdir" ]; then number_of_wallpapers=`ls "$wallpaperdir"|wc -l` if find_it random_number; then randomnumber=`random_number` # some shells don't support $RANDOM elif [ -z "$RANDOM" ]; then if [ -r /dev/urandom ]; then randomnumber=`hexdump -n 2 -e '/2 "%u"' /dev/urandom` else randomnumber=`(echo $$; ps; w; date) 2>&1 | cksum | cut -f1 -d' '` fi else randomnumber="$RANDOM" fi wallpapernumber=`expr $randomnumber % $number_of_wallpapers + 1` #remember previous wallpaper if [ ! "$remember" = false ]; then remembercommand fi remember=false #set -x wallpaper="$wallpaperdir/`ls \"$wallpaperdir\"|sed -n ${wallpapernumber}p`" option=$option2 # have to choose something... else message "Invalid random wallpaper directory specified." exit 1 fi fi if [ ! -r "$wallpaper" ]; then if [ "$ignore_missing_wallpaper" = "true" ]; then exit 0 fi message "Can't find wallpaper $wallpaper" exit 1 fi $WPSETTER `eval echo $option` "$wallpaper" if [ $? -ne 0 ]; then message "Something went wrong while setting the wallpaper. Run '$WPSETTER "`eval echo $option` $wallpaper"' from an xterm to find out what." exit 1 fi #remember previous wallpaper if [ ! "$remember" = false ]; then remembercommand fi fluxbox-1.3.5/util/PaxHeaders.25974/fluxbox-update_configs.cc0000644000175000017500000000013212106662425022217 xustar000000000000000030 mtime=1360749845.903812656 30 atime=1360749876.723812459 30 ctime=1360750008.479811616 fluxbox-1.3.5/util/fluxbox-update_configs.cc0000644000175000017500000006455312106662425020263 0ustar00mgmg00000000000000// fluxbox-update_configs.cc // Copyright (c) 2007 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "../src/FbTk/I18n.hh" #include "../src/FbTk/Resource.hh" #include "../src/FbTk/StringUtil.hh" #include "../src/FbTk/FileUtil.hh" #include "../src/defaults.hh" #ifdef HAVE_CONFIG_H #include "config.h" #endif // HAVE_CONFIG_H #ifdef HAVE_SIGNAL_H #include #endif // HAVE_SIGNAL_H //use GNU extensions #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif // _GNU_SOURCE #ifdef HAVE_CSTRING #include #else #include #endif #include #include #include #include #include #include #include using std::cout; using std::cerr; using std::endl; using std::string; using std::ifstream; using std::ofstream; using std::set; using std::map; using std::list; using std::exit; using std::getenv; string read_file(const string& filename); void write_file(const string& filename, const string &contents); void save_all_files(); /*------------------------------------------------------------------*\ \*------------------------------------------------------------------*/ void update_add_mouse_evens_to_keys(FbTk::ResourceManager& rm, const FbTk::FbString& keyfilename, const FbTk::FbString& appsfilename) { string whole_keyfile = read_file(keyfilename); string new_keyfile = ""; // let's put our new keybindings first, so they're easy to find new_keyfile += "!mouse actions added by fluxbox-update_configs\n"; new_keyfile += "OnDesktop Mouse1 :HideMenus\n"; new_keyfile += "OnDesktop Mouse2 :WorkspaceMenu\n"; new_keyfile += "OnDesktop Mouse3 :RootMenu\n"; // scrolling on desktop needs to match user's desktop wheeling settings // hmmm, what are the odds that somebody wants this to be different on // different screens? the ability is going away until we make per-screen // keys files, anyway, so let's just use the first screen's setting FbTk::Resource rc_wheeling(rm, true, "session.screen0.desktopwheeling", "Session.Screen0.DesktopWheeling"); FbTk::Resource rc_reverse(rm, false, "session.screen0.reversewheeling", "Session.Screen0.ReverseWheeling"); if (*rc_wheeling) { if (*rc_reverse) { // if you ask me, this should have been default new_keyfile += "OnDesktop Mouse4 :PrevWorkspace\n"; new_keyfile += "OnDesktop Mouse5 :NextWorkspace\n"; } else { new_keyfile += "OnDesktop Mouse4 :NextWorkspace\n"; new_keyfile += "OnDesktop Mouse5 :PrevWorkspace\n"; } } new_keyfile += "\n"; // just for good looks new_keyfile += whole_keyfile; // don't forget user's old keybindings write_file(keyfilename, new_keyfile); } void update_move_groups_entries_to_apps_file(FbTk::ResourceManager& rm, const FbTk::FbString& keyfilename, const FbTk::FbString& appsfilename) { FbTk::Resource rc_groupfile(rm, "~/.fluxbox/groups", "session.groupFile", "Session.GroupFile"); string groupfilename = FbTk::StringUtil::expandFilename(*rc_groupfile); string whole_groupfile = read_file(groupfilename); string whole_appsfile = read_file(appsfilename); string new_appsfile = ""; list lines; FbTk::StringUtil::stringtok(lines, whole_groupfile, "\n"); list::iterator line_it = lines.begin(); list::iterator line_it_end = lines.end(); for (; line_it != line_it_end; ++line_it) { new_appsfile += "[group] (workspace=[current])\n"; list apps; FbTk::StringUtil::stringtok(apps, *line_it); list::iterator it = apps.begin(); list::iterator it_end = apps.end(); for (; it != it_end; ++it) { new_appsfile += " [app] (name="; new_appsfile += *it; new_appsfile += ")\n"; } new_appsfile += "[end]\n"; } new_appsfile += whole_appsfile; write_file(appsfilename, new_appsfile); } void update_move_toolbar_wheeling_to_keys_file(FbTk::ResourceManager& rm, const FbTk::FbString& keyfilename, const FbTk::FbString& appsfilename) { string whole_keyfile = read_file(keyfilename); string new_keyfile = ""; // let's put our new keybindings first, so they're easy to find new_keyfile += "!mouse actions added by fluxbox-update_configs\n"; bool keep_changes = false; // scrolling on toolbar needs to match user's toolbar wheeling settings FbTk::Resource rc_wheeling(rm, "Off", "session.screen0.iconbar.wheelMode", "Session.Screen0.Iconbar.WheelMode"); FbTk::Resource rc_screen(rm, true, "session.screen0.desktopwheeling", "Session.Screen0.DesktopWheeling"); FbTk::Resource rc_reverse(rm, false, "session.screen0.reversewheeling", "Session.Screen0.ReverseWheeling"); if (strcasecmp((*rc_wheeling).c_str(), "On") == 0 || (strcasecmp((*rc_wheeling).c_str(), "Screen") == 0 && *rc_screen)) { keep_changes = true; if (*rc_reverse) { // if you ask me, this should have been default new_keyfile += "OnToolbar Mouse4 :PrevWorkspace\n"; new_keyfile += "OnToolbar Mouse5 :NextWorkspace\n"; } else { new_keyfile += "OnToolbar Mouse4 :NextWorkspace\n"; new_keyfile += "OnToolbar Mouse5 :PrevWorkspace\n"; } } new_keyfile += "\n"; // just for good looks new_keyfile += whole_keyfile; // don't forget user's old keybindings if (keep_changes) write_file(keyfilename, new_keyfile); } void update_move_modkey_to_keys_file(FbTk::ResourceManager& rm, const FbTk::FbString& keyfilename, const FbTk::FbString& appsfilename) { string whole_keyfile = read_file(keyfilename); string new_keyfile = ""; // let's put our new keybindings first, so they're easy to find new_keyfile += "!mouse actions added by fluxbox-update_configs\n"; // need to match user's resize model FbTk::Resource rc_mode(rm, "Bottom", "session.screen0.resizeMode", "Session.Screen0.ResizeMode"); FbTk::Resource rc_modkey(rm, "Mod1", "session.modKey", "Session.ModKey"); new_keyfile += "OnWindow " + *rc_modkey + " Mouse1 :MacroCmd {Raise} {Focus} {StartMoving}\n"; new_keyfile += "OnWindow " + *rc_modkey + " Mouse3 :MacroCmd {Raise} {Focus} {StartResizing "; if (strcasecmp((*rc_mode).c_str(), "Quadrant") == 0) { new_keyfile += "NearestCorner}\n"; } else if (strcasecmp((*rc_mode).c_str(), "Center") == 0) { new_keyfile += "Center}\n"; } else { new_keyfile += "BottomRight}\n"; } new_keyfile += "\n"; // just for good looks new_keyfile += whole_keyfile; // don't forget user's old keybindings write_file(keyfilename, new_keyfile); } void update_window_patterns_for_iconbar(FbTk::ResourceManager& rm, const FbTk::FbString& keyfilename, const FbTk::FbString& appsfilename) { // this needs to survive after going out of scope // it won't get freed, but that's ok FbTk::Resource *rc_mode = new FbTk::Resource(rm, "Workspace", "session.screen0.iconbar.mode", "Session.Screen0.Iconbar.Mode"); std::string mode = FbTk::StringUtil::toLower(**rc_mode); if (mode == "none") *rc_mode = "none"; else if (mode == "icons") *rc_mode = "{static groups} (minimized=yes)"; else if (mode == "noicons") *rc_mode = "{static groups} (minimized=no)"; else if (mode == "workspaceicons") *rc_mode = "{static groups} (minimized=yes) (workspace)"; else if (mode == "workspacenoicons") *rc_mode = "{static groups} (minimized=no) (workspace)"; else if (mode == "allwindows") *rc_mode = "{static groups}"; else *rc_mode = "{static groups} (workspace)"; } void update_move_titlebar_actions_to_keys_file(FbTk::ResourceManager& rm, const FbTk::FbString& keyfilename, const FbTk::FbString& appsfilename) { string whole_keyfile = read_file(keyfilename); string new_keyfile = ""; // let's put our new keybindings first, so they're easy to find new_keyfile += "!mouse actions added by fluxbox-update_configs\n"; new_keyfile += "OnTitlebar Double Mouse1 :Shade\n"; new_keyfile += "OnTitlebar Mouse3 :WindowMenu\n"; FbTk::Resource rc_reverse(rm, false,"session.screen0.reversewheeling", "Session.Screen0.ReverseWheeling"); FbTk::Resource scroll_action(rm, "", "session.screen0.windowScrollAction", "Session.Screen0.WindowScrollAction"); if (strcasecmp((*scroll_action).c_str(), "shade") == 0) { if (*rc_reverse) { new_keyfile += "OnTitlebar Mouse5 :ShadeOn\n"; new_keyfile += "OnTitlebar Mouse4 :ShadeOff\n"; } else { new_keyfile += "OnTitlebar Mouse4 :ShadeOn\n"; new_keyfile += "OnTitlebar Mouse5 :ShadeOff\n"; } } else if (strcasecmp((*scroll_action).c_str(), "nexttab") == 0) { if (*rc_reverse) { new_keyfile += "OnTitlebar Mouse5 :PrevTab\n"; new_keyfile += "OnTitlebar Mouse4 :NextTab\n"; } else { new_keyfile += "OnTitlebar Mouse4 :PrevTab\n"; new_keyfile += "OnTitlebar Mouse5 :NextTab\n"; } } new_keyfile += "\n"; // just for good looks new_keyfile += whole_keyfile; // don't forget user's old keybindings write_file(keyfilename, new_keyfile); } void update_added_starttabbing_command(FbTk::ResourceManager& rm, const FbTk::FbString& keyfilename, const FbTk::FbString& appsfilename) { string whole_keyfile = read_file(keyfilename); string new_keyfile = ""; // let's put our new keybindings first, so they're easy to find new_keyfile += "!mouse actions added by fluxbox-update_configs\n"; new_keyfile += "OnTitlebar Mouse2 :StartTabbing\n\n"; new_keyfile += whole_keyfile; // don't forget user's old keybindings write_file(keyfilename, new_keyfile); } void update_disable_icons_in_tabs_for_backwards_compatibility(FbTk::ResourceManager& rm, const FbTk::FbString& keyfilename, const FbTk::FbString& appsfilename) { FbTk::Resource *show = new FbTk::Resource(rm, false, "session.screen0.tabs.usePixmap", "Session.Screen0.Tabs.UsePixmap"); if (!*show) // only change if the setting didn't already exist *show = false; } void update_change_format_of_split_placement_menu(FbTk::ResourceManager& rm, const FbTk::FbString& keyfilename, const FbTk::FbString& appsfilename) { FbTk::Resource *placement = new FbTk::Resource(rm, "BottomRight", "session.screen0.slit.placement", "Session.Screen0.Slit.Placement"); FbTk::Resource *direction = new FbTk::Resource(rm, "Vertical", "session.screen0.slit.direction", "Session.Screen0.Slit.Direction"); if (strcasecmp((**direction).c_str(), "vertical") == 0) { if (strcasecmp((**placement).c_str(), "BottomRight") == 0) *placement = "RightBottom"; else if (strcasecmp((**placement).c_str(), "BottomLeft") == 0) *placement = "LeftBottom"; else if (strcasecmp((**placement).c_str(), "TopRight") == 0) *placement = "RightTop"; else if (strcasecmp((**placement).c_str(), "TopLeft") == 0) *placement = "LeftTop"; } } void update_update_keys_file_for_nextwindow_syntax_changes(FbTk::ResourceManager& rm, const FbTk::FbString& keyfilename, const FbTk::FbString& appsfilename) { string whole_keyfile = read_file(keyfilename); size_t pos = 0; while (true) { const char *keyfile = whole_keyfile.c_str(); const char *loc = 0; size_t old_pos = pos; // find the first position that matches any of next/prevwindow/group if ((loc = FbTk::StringUtil::strcasestr(keyfile + old_pos, "nextwindow"))) pos = (loc - keyfile) + 10; if ((loc = FbTk::StringUtil::strcasestr(keyfile + old_pos, "prevwindow"))) pos = (pos > old_pos && keyfile + pos < loc) ? pos : (loc - keyfile) + 10; if ((loc = FbTk::StringUtil::strcasestr(keyfile + old_pos, "nextgroup"))) pos = (pos > old_pos && keyfile + pos < loc) ? pos : (loc - keyfile) + 9; if ((loc = FbTk::StringUtil::strcasestr(keyfile + old_pos, "prevgroup"))) pos = (pos > old_pos && keyfile + pos < loc) ? pos : (loc - keyfile) + 9; if (pos == old_pos) break; pos = whole_keyfile.find_first_not_of(" \t", pos); if (pos != std::string::npos && isdigit(whole_keyfile[pos])) { char *endptr = 0; unsigned int mask = strtoul(keyfile + pos, &endptr, 0); string insert = ""; if ((mask & 9) == 9) insert = "{static groups}"; else if (mask & 1) insert = "{groups}"; else if (mask & 8) insert = "{static}"; if (mask & 2) insert += " (stuck=no)"; if (mask & 4) insert += " (shaded=no)"; if (mask & 16) insert += " (minimized=no)"; if (mask) whole_keyfile.replace(pos, endptr - keyfile - pos, insert); } } write_file(keyfilename, whole_keyfile); } void update_keys_for_ongrip_onwindowborder(FbTk::ResourceManager& rm, const FbTk::FbString& keyfilename, const FbTk::FbString& appsfilename) { string whole_keyfile = read_file(keyfilename); string new_keyfile = ""; // let's put our new keybindings first, so they're easy to find new_keyfile += "!mouse actions added by fluxbox-update_configs\n"; new_keyfile += "OnTitlebar Move1 :StartMoving\n"; new_keyfile += "OnLeftGrip Move1 :StartResizing bottomleft\n"; new_keyfile += "OnRightGrip Move1 :StartResizing bottomright\n"; new_keyfile += "OnWindowBorder Move1 :StartMoving\n\n"; new_keyfile += whole_keyfile; // don't forget user's old keybindings new_keyfile += "\n"; // just for good looks write_file(keyfilename, new_keyfile); } void update_keys_for_activetab(FbTk::ResourceManager& rm, const FbTk::FbString& keyfilename, const FbTk::FbString& appsfilename) { string whole_file = read_file(keyfilename); string new_keyfile = ""; new_keyfile += "!mouse actions added by fluxbox-update_configs\n"; new_keyfile += "OnTitlebar Mouse1 :MacroCmd {Focus} {Raise} {ActivateTab}\n"; new_keyfile += whole_file; new_keyfile += "\n"; // just for good looks write_file(keyfilename, new_keyfile); } // NextWindow {static groups} => NextWindow {static groups} (workspace=[current]) void update_limit_nextwindow_to_current_workspace(FbTk::ResourceManager& rm, const FbTk::FbString& keyfilename, const FbTk::FbString& appsfilename) { string whole_file = read_file(keyfilename); string new_keyfile = ""; new_keyfile += "! fluxbox-update_configs added '(workspace=[current])' to (Next|Prev)(Window|Group)\n"; new_keyfile += "! check lines marked by 'FBCV13' if they are correctly updated\n"; const char* pos = whole_file.c_str(); string last_word; enum { SCAN, COMMENT, CMD, OPEN_STATIC_GROUP_OR_PATTERN, CLOSE_STATIC_GROUP }; int state = SCAN; bool mark_line_change = false; for ( ; *pos; ++pos) { new_keyfile += *pos; char c = tolower(*pos); switch (state) { case SCAN: if (c == '{' || c == ':') // ':NextWindow' or 'MacroCmd {NextWindow' state = CMD; break; case CMD: if (isspace(c) || c == '}' || c == '#' || c == '!' ) { if (last_word == "nextwindow" || last_word == "nextgroup" || last_word == "prevwindow" || last_word == "prevgroup") { // ':NewWindow[\n!#]' or 'MacroCmd {NextWindow}' if (c == '\n' || c == '#' || c == '!' || c == '}') { new_keyfile.insert(new_keyfile.size() - 1, " (workspace=[current])"); mark_line_change = true; state = SCAN; } else { state = OPEN_STATIC_GROUP_OR_PATTERN; } } else { state = SCAN; last_word.clear(); } } else { // possible '(next|prev)(group|window)' last_word += c; } break; case OPEN_STATIC_GROUP_OR_PATTERN: if (c == '{') { // NextWindow {static group} state = CLOSE_STATIC_GROUP; } else if (c == '(') { // NextWindow (foo=bar) new_keyfile += "workspace=[current]) ("; mark_line_change = true; state = SCAN; } else if (c == '}') { // MacroCmd {NextWindow } new_keyfile.insert(new_keyfile.size() - 1, " (workspace=[current]) "); mark_line_change = true; state = SCAN; } break; case CLOSE_STATIC_GROUP: if (c == '}') { new_keyfile += " (workspace=[current]) "; mark_line_change = true; state = SCAN; } break; }; if (*pos == '\n') { // a new line or a comment resets the state if (mark_line_change) new_keyfile.insert(new_keyfile.size() - 1, " !! FBCV13 !!"); mark_line_change = false; last_word.clear(); state = SCAN; } else if (*pos == '#' || *pos == '!') { last_word.clear(); state = COMMENT; } } new_keyfile += "\n"; // just for good looks write_file(keyfilename, new_keyfile); } /*------------------------------------------------------------------*\ \*------------------------------------------------------------------*/ struct Update { int version; void (*update)(FbTk::ResourceManager& rm, const FbTk::FbString&, const FbTk::FbString&); }; const Update UPDATES[] = { { 1, update_add_mouse_evens_to_keys }, { 2, update_move_groups_entries_to_apps_file }, { 3, update_move_toolbar_wheeling_to_keys_file }, { 4, update_move_modkey_to_keys_file }, { 5, update_window_patterns_for_iconbar }, { 6, update_move_titlebar_actions_to_keys_file }, { 7, update_added_starttabbing_command }, { 8, update_disable_icons_in_tabs_for_backwards_compatibility }, { 9, update_change_format_of_split_placement_menu }, { 10, update_update_keys_file_for_nextwindow_syntax_changes }, { 11, update_keys_for_ongrip_onwindowborder }, { 12, update_keys_for_activetab }, { 13, update_limit_nextwindow_to_current_workspace } }; /*------------------------------------------------------------------*\ \*------------------------------------------------------------------*/ int run_updates(int old_version, FbTk::ResourceManager &rm) { int new_version = old_version; FbTk::Resource rc_keyfile(rm, "~/.fluxbox/keys", "session.keyFile", "Session.KeyFile"); FbTk::Resource rc_appsfile(rm, "~/.fluxbox/apps", "session.appsFile", "Session.AppsFile"); string appsfilename = FbTk::StringUtil::expandFilename(*rc_appsfile); string keyfilename = FbTk::StringUtil::expandFilename(*rc_keyfile); for (size_t i = 0; i < sizeof(UPDATES) / sizeof(Update); ++i) { if (old_version < UPDATES[i].version) { UPDATES[i].update(rm, keyfilename, appsfilename); new_version = UPDATES[i].version; } } return new_version; } int main(int argc, char **argv) { string rc_filename; set style_filenames; int i = 1; bool check = 0; pid_t fb_pid = 0; FbTk::NLSInit("fluxbox.cat"); _FB_USES_NLS; for (; i < argc; i++) { string arg = argv[i]; if (arg == "-rc") { // look for alternative rc file to use if ((++i) >= argc) { cerr<<_FB_CONSOLETEXT(main, RCRequiresArg, "error: '-rc' requires an argument", "the -rc option requires a file argument")<= argc) { // need translations for this, too cerr<<"the -pid option requires a numeric argument"<\t\t\tuse alternate resource file.\n" << " -pid \t\t\ttell fluxbox to reload configuration.\n" << " -check\t\t\tcheck version of this tool and the fluxbox config.\n" << " -help\t\t\t\tdisplay this help text and exit.\n\n" << endl; exit(0); } } if (rc_filename.empty()) rc_filename = getenv("HOME") + string("/.fluxbox/init"); FbTk::ResourceManager resource_manager(rc_filename.c_str(),false); if (!resource_manager.load(rc_filename.c_str())) { // couldn't load rc file cerr<<_FB_CONSOLETEXT(Fluxbox, CantLoadRCFile, "Failed to load database", "Failed trying to read rc file")<<":"< config_version(resource_manager, 0, "session.configVersion", "Session.ConfigVersion"); if (check) { cout << rc_filename << ": " << *config_version << endl << "fluxbox-update_configs: " << UPDATES[sizeof(UPDATES)/sizeof(Update) - 1].version << endl; exit(0); } int old_version = *config_version; int new_version = run_updates(old_version, resource_manager); if (new_version > old_version) { // configs were updated -- let's save our changes config_version = new_version; resource_manager.save(rc_filename.c_str(), rc_filename.c_str()); save_all_files(); #if defined(HAVE_SIGNAL_H) && !defined(_WIN32) // if we were given a fluxbox pid, send it a reconfigure signal if (fb_pid > 0) kill(fb_pid, SIGUSR2); #endif // defined(HAVE_SIGNAL_H) && !defined(_WIN32) } return 0; } namespace { set modified_files; // we may want to put a size limit on this cache, so it doesn't grow too big map file_cache; } // returns the contents of the file given, either from the cache or by reading // the file from disk string read_file(const string& filename) { // check if we already have the file in memory map::iterator it = file_cache.find(filename); if (it != file_cache.end()) return it->second; if (!FbTk::FileUtil::isRegularFile(filename.c_str())) { return ""; } // nope, we'll have to read the file ifstream infile(filename.c_str()); string whole_file = ""; if (!infile) // failed to open file return whole_file; string linebuffer; while (!infile.eof()) { getline(infile, linebuffer); whole_file += linebuffer + "\n"; } infile.close(); file_cache[filename] = whole_file; return whole_file; } #ifdef NOT_USED // remove the file from the cache, writing to disk if it's been changed void forget_file(const string& filename) { map::iterator cache_it = file_cache.find(filename); // check if we knew about the file to begin with if (cache_it == file_cache.end()) return; // check if we've actually modified it set::iterator mod_it = modified_files.find(filename); if (mod_it == modified_files.end()) { file_cache.erase(cache_it); return; } // flush our changes to disk and remove all traces ofstream outfile(filename.c_str()); outfile << cache_it->second; file_cache.erase(cache_it); modified_files.erase(mod_it); } #endif // NOT_USED // updates the file contents in the cache and marks the file as modified so it // gets saved later void write_file(const string& filename, const string &contents) { modified_files.insert(filename); file_cache[filename] = contents; } // actually save all the files we've modified void save_all_files() { set::iterator it = modified_files.begin(); set::iterator it_end = modified_files.end(); for (; it != it_end; ++it) { ofstream outfile(it->c_str()); outfile << file_cache[it->c_str()]; } modified_files.clear(); } fluxbox-1.3.5/util/PaxHeaders.25974/fluxbox-remote.cc0000644000175000017500000000013212106662425020520 xustar000000000000000030 mtime=1360749845.903812656 30 atime=1360749876.719812459 30 ctime=1360750008.479811616 fluxbox-1.3.5/util/fluxbox-remote.cc0000644000175000017500000000574212106662425016557 0ustar00mgmg00000000000000// fluxbox-remote.cc // Copyright (c) 2007 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include #include #include #include #include #include bool g_gotError = false; static int HandleIPCError(Display *disp, XErrorEvent*ptr) { // ptr->error_code contains the actual error flags g_gotError = true; return( 0 ); } typedef int (*xerror_cb_t)(Display*,XErrorEvent*); int main(int argc, char **argv) { int rc; Display* disp; Window root; Atom atom_utf8; Atom atom_fbcmd; Atom atom_result; xerror_cb_t error_cb; char* cmd; if (argc <= 1) { printf("fluxbox-remote \n"); return EXIT_SUCCESS; } disp = XOpenDisplay(NULL); if (!disp) { perror("error, can't open display."); return rc; } cmd = argv[1]; atom_utf8 = XInternAtom(disp, "UTF8_STRING", False); atom_fbcmd = XInternAtom(disp, "_FLUXBOX_ACTION", False); atom_result = XInternAtom(disp, "_FLUXBOX_ACTION_RESULT", False); root = DefaultRootWindow(disp); // assign the custom handler, clear the flag, sync the data, // then check it for success/failure error_cb = XSetErrorHandler(HandleIPCError); if (strcmp(cmd, "result") == 0) { XTextProperty text_prop; if (XGetTextProperty(disp, root, &text_prop, atom_result) != 0 && text_prop.value > 0 && text_prop.nitems > 0) { printf("%s", text_prop.value); XFree(text_prop.value); } } else { XChangeProperty(disp, root, atom_fbcmd, XA_STRING, 8, PropModeReplace, (unsigned char *)cmd, strlen(cmd)); XSync(disp, false); } rc = (g_gotError ? EXIT_FAILURE : EXIT_SUCCESS); XSetErrorHandler(error_cb); XCloseDisplay(disp); return rc; } fluxbox-1.3.5/util/PaxHeaders.25974/fbsetroot.hh0000644000175000017500000000013212106662425017561 xustar000000000000000030 mtime=1360749845.903812656 30 atime=1360749876.719812459 30 ctime=1360750008.479811616 fluxbox-1.3.5/util/fbsetroot.hh0000644000175000017500000000330212106662425015606 0ustar00mgmg00000000000000// Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // Copyright (c) 1997 - 2000 Brad Hughes // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #ifndef FBSETROOT_HH #define FBSETROOT_HH #include "../src/FbTk/App.hh" namespace FbTk { class ImageControl; } class fbsetroot : public FbTk::App { public: fbsetroot(int argc, char **argv, char * dpy_name= 0); ~fbsetroot(); void gradient(); void modula(int, int); void solid(); void usage(int = 0); void setRootAtoms(Pixmap pixmap, int screen); private: FbTk::ImageControl *img_ctrl; Pixmap *pixmap; int screen; char *fore, *back, *grad; char *m_app_name; }; #endif // FBSETROOT_HH fluxbox-1.3.5/util/PaxHeaders.25974/fbsetroot.cc0000644000175000017500000000013212106662425017547 xustar000000000000000030 mtime=1360749845.903812656 30 atime=1360749876.719812459 30 ctime=1360750008.479811616 fluxbox-1.3.5/util/fbsetroot.cc0000644000175000017500000003015012106662425015575 0ustar00mgmg00000000000000// Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // Copyright (c) 1997 - 2000 Brad Hughes // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #include "fbsetroot.hh" #include "../src/FbTk/I18n.hh" #include "../src/FbTk/ImageControl.hh" #include "../src/FbTk/Texture.hh" #include "../src/FbTk/GContext.hh" #include "../src/FbRootWindow.hh" #ifdef HAVE_CONFIG_H #include "config.h" #endif // HAVE_CONFIG_H #include #ifdef HAVE_CSTRING #include #else #include #endif #ifdef HAVE_CSTDLIB #include #else #include #endif #ifdef HAVE_CSTDIO #include #else #include #endif #include using std::cout; using std::cerr; using std::endl; using std::string; inline int getRootDepth(const FbTk::FbWindow& w) { return (w.depth() == 32 ? 24 : w.depth()); } fbsetroot::fbsetroot(int argc, char **argv, char *dpy_name) : FbTk::App(dpy_name), m_app_name(argv[0]) { pixmap = (Pixmap *) 0; screen = DefaultScreen(FbTk::App::instance()->display()); grad = fore = back = (char *) 0; bool mod = false, sol = false, grd = false; int mod_x = 0, mod_y = 0, i = 1; img_ctrl = new FbTk::ImageControl(screen); for (; i < argc; i++) { string arg = argv[i]; if (arg == "-help" || arg == "--help" || arg == "-h") { usage(); } else if (arg == "-fg" || arg == "-foreground" || arg == "--foreground" || arg == "-from" || arg == "--from") { if ((++i) >= argc) usage(1); fore = argv[i]; } else if (arg == "-bg" || arg == "-background" || arg == "--background" || arg == "-to" || arg == "--to") { if ((++i) >= argc) usage(1); back = argv[i]; } else if (arg == "-solid" || arg == "--solid") { if ((++i) >= argc) usage(1); fore = argv[i]; sol = true; } else if (arg == "-mod" || arg == "--mod") { if ((++i) >= argc) usage(); mod_x = atoi(argv[i]); if ((++i) >= argc) usage(); mod_y = atoi(argv[i]); if (mod_x < 1) mod_x = 1; if (mod_y < 1) mod_y = 1; mod = true; } else if (arg == "-gradient" || arg == "--gradient") { if ((++i) >= argc) usage(); grad = argv[i]; grd = true; } else if (arg == "-display" || arg == "--display") { // -display passed through tests earlier... we just skip it now i++; } else usage(); } if ((mod + sol + grd) != true) { _FB_USES_NLS; cerr << _FB_CONSOLETEXT(fbsetroot, MustSpecify, "Error: must specify one of: -solid, -mod, -gradient\n", "user didn't give one of the required options") << endl; exit(2); } if (sol && fore) solid(); else if (mod && mod_x && mod_y && fore && back) modula(mod_x, mod_y); else if (grd && grad && fore && back) gradient(); else usage(); } fbsetroot::~fbsetroot() { XKillClient(display(), AllTemporary); if (pixmap) { // should always be true XSetCloseDownMode(display(), RetainTemporary); delete pixmap; } delete img_ctrl; } /** set root pixmap atoms so that apps like Eterm and xchat will be able to use transparent background */ void fbsetroot::setRootAtoms(Pixmap pixmap, int screen) { Atom atom_root, atom_eroot, type; unsigned char *data_root, *data_eroot; int format; unsigned long length, after; atom_root = XInternAtom(display(), "_XROOTMAP_ID", true); atom_eroot = XInternAtom(display(), "ESETROOT_PMAP_ID", true); FbRootWindow root(screen); // doing this to clean up after old background if (atom_root != None && atom_eroot != None) { root.property(atom_root, 0L, 1L, false, AnyPropertyType, &type, &format, &length, &after, &data_root); if (type == XA_PIXMAP) { root.property(atom_eroot, 0L, 1L, False, AnyPropertyType, &type, &format, &length, &after, &data_eroot); if (data_root && data_eroot && type == XA_PIXMAP && *((Pixmap *) data_root) == *((Pixmap *) data_eroot)) { XKillClient(display(), *((Pixmap *) data_root)); } } } atom_root = XInternAtom(display(), "_XROOTPMAP_ID", false); atom_eroot = XInternAtom(display(), "ESETROOT_PMAP_ID", false); if (atom_root == None || atom_eroot == None) { _FB_USES_NLS; cerr<<_FB_CONSOLETEXT(fbsetroot, NoPixmapAtoms, "Couldn't create pixmap atoms, giving up!", "Couldn't create atoms to point at root pixmap")<> 8) & 0xff; } } Pixmap bitmap, r_bitmap; bitmap = XCreateBitmapFromData(display(), root.window(), data, s, s); // bitmap used as tile, needs to have the same depth as background pixmap r_bitmap = XCreatePixmap(display(), root.window(), s, s, (root.depth() == 32 ? 24 : root.depth())); FbTk::Color f(fore, screen), b(back, screen); if (! f.isAllocated()) f.setPixel(WhitePixel(display(), screen)); if (! b.isAllocated()) b.setPixel(BlackPixel(display(), screen)); FbTk::GContext gc(root); gc.setForeground(f); gc.setBackground(b); // copying bitmap to the one going to be used as tile XCopyPlane(display(), bitmap, r_bitmap, gc.gc(), 0, 0, s, s, 0, 0, 1l); gc.setTile(r_bitmap); gc.setFillStyle(FillTiled); pixmap = new Pixmap(XCreatePixmap(display(), root.window(), root.width(), root.height(), getRootDepth(root))); XFillRectangle(display(), *pixmap, gc.gc(), 0, 0, root.width(), root.height()); setRootAtoms(*pixmap, screen); root.setBackgroundPixmap(*pixmap); root.clear(); XFreePixmap(display(), bitmap); XFreePixmap(display(), r_bitmap); } /** draws pixmaps with a fluxbox texure */ void fbsetroot::gradient() { // using temporaray pixmap and then copying it to background pixmap, as it'll // get crashed somewhere on the way causing apps like XChat chrashing // as the pixmap has been destroyed Pixmap tmp; // we must insert gradient text string texture_value = grad ? grad : "solid"; texture_value.insert(0, "gradient "); FbTk::Texture texture; texture.setFromString(texture_value.c_str()); FbRootWindow root(screen); FbTk::GContext gc(root); texture.color().setFromString(fore, screen); texture.colorTo().setFromString(back, screen); if (! texture.color().isAllocated()) texture.color().setPixel(WhitePixel(display(), screen)); if (! texture.colorTo().isAllocated()) texture.colorTo().setPixel(BlackPixel(display(), screen)); tmp = img_ctrl->renderImage(root.width(), root.height(), texture); pixmap = new Pixmap(XCreatePixmap(display(), root.window(), root.width(), root.height(), getRootDepth(root))); XCopyArea(display(), tmp, *pixmap, gc.gc(), 0, 0, root.width(), root.height(), 0, 0); setRootAtoms(*pixmap, screen); root.setBackgroundPixmap(*pixmap); root.clear(); if (! (root.visual()->c_class & 1)) { img_ctrl->removeImage(tmp); img_ctrl->cleanCache(); } } /** Shows information about usage */ void fbsetroot::usage(int exit_code) { _FB_USES_NLS; cout << m_app_name << " 2.3 : (c) 2003-2011 Fluxbox Development Team" << endl; cout << m_app_name << " 2.1 : (c) 2002 Claes Nasten" << endl; cout << m_app_name << " 2.0 : (c) 1997-2000 Brad Hughes\n" << endl; cout << _FB_CONSOLETEXT(fbsetroot, Usage, " -display display connection\n" " -mod modula pattern\n" " -foreground, -fg modula foreground color\n" " -background, -bg modula background color\n\n" " -gradient gradient texture\n" " -from gradient start color\n" " -to gradient end color\n\n" " -solid solid color\n\n" " -help print this help text and exit\n", "fbsetroot usage options") << endl; exit(exit_code); } int main(int argc, char **argv) { char *display_name = (char *) 0; int i = 1; FbTk::NLSInit("fluxbox.cat"); for (; i < argc; i++) { if (!strcmp(argv[i], "-display") || !strcmp(argv[i], "--display")) { // check for -display option if ((++i) >= argc) { _FB_USES_NLS; cerr<<_FB_CONSOLETEXT(main, DISPLAYRequiresArg, "error: '-display' requires an argument", "option requires an argument")</dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : bin_PROGRAMS = fbsetroot$(EXEEXT) fluxbox-update_configs$(EXEEXT) \ fluxbox-remote$(EXEEXT) subdir = util DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am_fbsetroot_OBJECTS = fbsetroot.$(OBJEXT) fbsetroot_OBJECTS = $(am_fbsetroot_OBJECTS) fbsetroot_DEPENDENCIES = ../src/FbRootWindow.o ../src/FbAtoms.o \ ../src/FbTk/libFbTk.a am_fluxbox_remote_OBJECTS = fluxbox-remote.$(OBJEXT) fluxbox_remote_OBJECTS = $(am_fluxbox_remote_OBJECTS) fluxbox_remote_LDADD = $(LDADD) am_fluxbox_update_configs_OBJECTS = fluxbox-update_configs.$(OBJEXT) fluxbox_update_configs_OBJECTS = $(am_fluxbox_update_configs_OBJECTS) fluxbox_update_configs_DEPENDENCIES = ../src/defaults.o \ ../src/Resources.o ../src/FbTk/libFbTk.a am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } SCRIPTS = $(bin_SCRIPTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(fbsetroot_SOURCES) $(fluxbox_remote_SOURCES) \ $(fluxbox_update_configs_SOURCES) DIST_SOURCES = $(fbsetroot_SOURCES) $(fluxbox_remote_SOURCES) \ $(fluxbox_update_configs_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # util/Makefile.am for Fluxbox SUBDIRS = fbrun AM_CPPFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/src/FbTk bin_SCRIPTS = fbsetbg fluxbox-generate_menu startfluxbox fbsetroot_SOURCES = fbsetroot.cc fbsetroot.hh fbsetroot_LDADD = ../src/FbRootWindow.o ../src/FbAtoms.o \ ../src/FbTk/libFbTk.a fluxbox_update_configs_SOURCES = fluxbox-update_configs.cc fluxbox_update_configs_LDADD = ../src/defaults.o ../src/Resources.o \ ../src/FbTk/libFbTk.a fluxbox_remote_SOURCES = fluxbox-remote.cc MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = fbsetbg fluxbox-generate_menu.in \ startfluxbox.in PROGRAM_PREFIX = @program_prefix@ PROGRAM_SUFFIX = @program_suffix@ all: all-recursive .SUFFIXES: .SUFFIXES: .cc .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign util/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign util/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) fbsetroot$(EXEEXT): $(fbsetroot_OBJECTS) $(fbsetroot_DEPENDENCIES) $(EXTRA_fbsetroot_DEPENDENCIES) @rm -f fbsetroot$(EXEEXT) $(CXXLINK) $(fbsetroot_OBJECTS) $(fbsetroot_LDADD) $(LIBS) fluxbox-remote$(EXEEXT): $(fluxbox_remote_OBJECTS) $(fluxbox_remote_DEPENDENCIES) $(EXTRA_fluxbox_remote_DEPENDENCIES) @rm -f fluxbox-remote$(EXEEXT) $(CXXLINK) $(fluxbox_remote_OBJECTS) $(fluxbox_remote_LDADD) $(LIBS) fluxbox-update_configs$(EXEEXT): $(fluxbox_update_configs_OBJECTS) $(fluxbox_update_configs_DEPENDENCIES) $(EXTRA_fluxbox_update_configs_DEPENDENCIES) @rm -f fluxbox-update_configs$(EXEEXT) $(CXXLINK) $(fluxbox_update_configs_OBJECTS) $(fluxbox_update_configs_LDADD) $(LIBS) install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fbsetroot.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fluxbox-remote.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fluxbox-update_configs.Po@am__quote@ .cc.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) $(SCRIPTS) all-local installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic clean-local mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-binPROGRAMS install-binSCRIPTS install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am all-local check check-am clean clean-binPROGRAMS \ clean-generic clean-local ctags ctags-recursive distclean \ distclean-compile distclean-generic distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-binPROGRAMS install-binSCRIPTS install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-binSCRIPTS all-local: startfluxbox clean-local: rm -f startfluxbox fluxbox-generate_menu fbsetroot.o: fbsetroot.cc ../config.h $(srcdir)/fbsetroot.hh \ $(top_srcdir)/src/FbRootWindow.hh $(top_srcdir)/src/FbAtoms.hh fluxbox-update_configs.o: fluxbox-update_configs.cc ../config.h \ $(top_builddir)/src/defaults.hh fluxbox-remote.o: fluxbox-remote.cc startfluxbox: startfluxbox.in @regex_cmd@ -e "s,@pkgdatadir@,$(pkgdatadir),g" \ -e "s,@pkgbindir@,$(bindir),g" \ -e "s,@pkgprefix@,$(PROGRAM_PREFIX:NONE=),g" \ -e "s,@pkgsuffix@,$(PROGRAM_SUFFIX:NONE=),g" \ -e "s,@EXEEXT@,$(EXEEXT),g" \ $(srcdir)/startfluxbox.in > startfluxbox -chmod 755 startfluxbox fluxbox-generate_menu: fluxbox-generate_menu.in @regex_cmd@ -e "s,@PREFIX@,$(prefix),g" \ -e "s,@pkgprefix@,$(PROGRAM_PREFIX:NONE=),g" \ -e "s,@pkgsuffix@,$(PROGRAM_SUFFIX:NONE=),g" \ -e "s,@EXEEXT@,$(EXEEXT),g" \ $(srcdir)/fluxbox-generate_menu.in \ > fluxbox-generate_menu -chmod 755 fluxbox-generate_menu ../src/FbRootWindow.o: cd ../src && ${MAKE} FbRootWindow.o ../src/FbAtoms.o: cd ../src && ${MAKE} FbAtoms.o ../src/defaults.o: cd ../src && ${MAKE} defaults.o ../src/Resources.o: cd ../src && ${MAKE} Resources.o # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/util/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425017265 xustar000000000000000030 mtime=1360749845.903812656 30 atime=1360749854.447812602 30 ctime=1360750008.483811616 fluxbox-1.3.5/util/Makefile.am0000644000175000017500000000374112106662425015321 0ustar00mgmg00000000000000# util/Makefile.am for Fluxbox SUBDIRS= fbrun AM_CPPFLAGS= -I$(top_srcdir)/src -I$(top_srcdir)/src/FbTk bin_SCRIPTS= fbsetbg fluxbox-generate_menu startfluxbox bin_PROGRAMS= fbsetroot fluxbox-update_configs fluxbox-remote fbsetroot_SOURCES= fbsetroot.cc fbsetroot.hh fbsetroot_LDADD=../src/FbRootWindow.o ../src/FbAtoms.o \ ../src/FbTk/libFbTk.a fluxbox_update_configs_SOURCES= fluxbox-update_configs.cc fluxbox_update_configs_LDADD= ../src/defaults.o ../src/Resources.o \ ../src/FbTk/libFbTk.a fluxbox_remote_SOURCES= fluxbox-remote.cc MAINTAINERCLEANFILES= Makefile.in EXTRA_DIST= fbsetbg fluxbox-generate_menu.in \ startfluxbox.in PROGRAM_PREFIX=@program_prefix@ PROGRAM_SUFFIX=@program_suffix@ all-local: startfluxbox clean-local: rm -f startfluxbox fluxbox-generate_menu fbsetroot.o: fbsetroot.cc ../config.h $(srcdir)/fbsetroot.hh \ $(top_srcdir)/src/FbRootWindow.hh $(top_srcdir)/src/FbAtoms.hh fluxbox-update_configs.o: fluxbox-update_configs.cc ../config.h \ $(top_builddir)/src/defaults.hh fluxbox-remote.o: fluxbox-remote.cc startfluxbox: startfluxbox.in @regex_cmd@ -e "s,@pkgdatadir@,$(pkgdatadir),g" \ -e "s,@pkgbindir@,$(bindir),g" \ -e "s,@pkgprefix@,$(PROGRAM_PREFIX:NONE=),g" \ -e "s,@pkgsuffix@,$(PROGRAM_SUFFIX:NONE=),g" \ -e "s,@EXEEXT@,$(EXEEXT),g" \ $(srcdir)/startfluxbox.in > startfluxbox -chmod 755 startfluxbox fluxbox-generate_menu: fluxbox-generate_menu.in @regex_cmd@ -e "s,@PREFIX@,$(prefix),g" \ -e "s,@pkgprefix@,$(PROGRAM_PREFIX:NONE=),g" \ -e "s,@pkgsuffix@,$(PROGRAM_SUFFIX:NONE=),g" \ -e "s,@EXEEXT@,$(EXEEXT),g" \ $(srcdir)/fluxbox-generate_menu.in \ > fluxbox-generate_menu -chmod 755 fluxbox-generate_menu ../src/FbRootWindow.o: cd ../src && ${MAKE} FbRootWindow.o ../src/FbAtoms.o: cd ../src && ${MAKE} FbAtoms.o ../src/defaults.o: cd ../src && ${MAKE} defaults.o ../src/Resources.o: cd ../src && ${MAKE} Resources.o fluxbox-1.3.5/PaxHeaders.25974/src0000644000175000017500000000013212106662667014776 xustar000000000000000030 mtime=1360750007.319811623 30 atime=1360750008.483811616 30 ctime=1360750008.483811616 fluxbox-1.3.5/src/0000755000175000017500000000000012106662667013102 5ustar00mgmg00000000000000fluxbox-1.3.5/src/PaxHeaders.25974/tests0000644000175000017500000000013212106662667016140 xustar000000000000000030 mtime=1360750007.359811623 30 atime=1360750008.483811616 30 ctime=1360750008.483811616 fluxbox-1.3.5/src/tests/0000755000175000017500000000000012106662667014244 5ustar00mgmg00000000000000fluxbox-1.3.5/src/tests/PaxHeaders.25974/texturetest.cc0000644000175000017500000000013212106662425021114 xustar000000000000000030 mtime=1360749845.903812656 30 atime=1360749876.683812459 30 ctime=1360750008.483811616 fluxbox-1.3.5/src/tests/texturetest.cc0000644000175000017500000000722712106662425017153 0ustar00mgmg00000000000000// texturetest.cc a test app for Textures // Copyright (c) 2004 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) #include "FbTk/ImageControl.hh" #include "FbTk/Color.hh" #include "FbTk/GContext.hh" #include "FbTk/FbPixmap.hh" #include "FbTk/Texture.hh" #include "FbTk/FbWindow.hh" #include "FbTk/EventHandler.hh" #include "FbTk/EventManager.hh" #include "FbTk/Theme.hh" #include "FbTk/Font.hh" #include "FbTk/App.hh" #include #include #include #include #include using namespace std; using namespace FbTk; class TestTheme: public Theme { public: TestTheme(int screen):Theme(screen) { } bool fallback(ThemeItem_base &item) { return false; } void reconfigTheme() { } }; class Application: public FbTk::FbWindow, public FbTk::EventHandler { public: Application(int box_size, int num): FbWindow(0, 0, 0, 640, ((5+box_size)*num)/9 + 5, ExposureMask | KeyPressMask), m_box_size(box_size), m_num(num), m_font("fixed"), m_imgctrl(screenNumber()), m_background(*this, width(), height(), depth()), m_gc(m_background) { setName("Texture Test"); setBackgroundPixmap(m_background.drawable()); FbTk::EventManager::instance()->add(*this, *this); renderPixmaps(); show(); } void keyPressEvent(XKeyEvent &ev) { //App::instance()->end(); } void exposeEvent(XExposeEvent &ev) { clear(); } private: void renderPixmap(const Texture &text, int x, int y) { Pixmap pm = m_imgctrl.renderImage(2*m_box_size, m_box_size, text); m_background.copyArea(pm, m_gc.gc(), 0, 0, x, y, 2*m_box_size, m_box_size); m_imgctrl.removeImage(pm); } void renderPixmaps() { m_gc.setForeground(Color("gray", screenNumber())); m_background.fillRectangle(m_gc.gc(), 0, 0, width(), height()); // for text color m_gc.setForeground(Color("black", screenNumber())); const int step_size = m_box_size + 5; unsigned int next_x = 5; unsigned int next_y = 5; TestTheme tm(screenNumber()); std::auto_ptr > text; char value[18]; for (int i=0; i (tm, string("texture") + value, string("Texture") + value)); ThemeManager::instance().load("test.theme", ""); renderPixmap(**text.get(), next_x, next_y); next_x += (step_size + m_box_size); if (next_x + 2*m_box_size > width()) { m_font.drawText(m_background, screenNumber(), m_gc.gc(), value, strlen(value), next_x, next_y + m_box_size/2); next_x = 5; next_y += step_size; } } } const int m_box_size; const int m_num; FbTk::Font m_font; ImageControl m_imgctrl; FbPixmap m_background; FbTk::GContext m_gc; }; int main(int argc, char **argv) { int boxsize= 30; int num = 63; for (int i=1; i #include #include #include #include using namespace std; using namespace FbTk; void testStringtok() { vector ls; StringUtil::stringtok(ls, " arg1 arg2 \targ3\n arg4 arg5\t\t\t\targ6\n\n \n\n \t\t\narg7"); cerr<<"Size: "<::const_iterator i = ls.begin(); i != ls.end(); ++i) { cerr << ':' << (*i) << ":\n"; } } void testExpandFilename() { string filename(StringUtil::expandFilename("~/filename/~filename2/file3~/file4")); cerr<<"test "; string test = string(getenv("HOME"))+"/filename/~filename2/file3~/file4"; if (test == filename) cerr<<"ok."; else cerr<<"faild"; cerr< stringlist; stringlist.push_back(" \t\t\t \t[(in \\)\t haha )] \t\t "); stringlist.push_back("(in\\)) {_ _ my_ _}"); stringlist.push_back("(in) {_ _ my_ _}"); stringlist.push_back("(in){_ _ my_ _}"); stringlist.push_back("\t \t \t ( in ) {haha}"); stringlist.push_back("\t \t \t (( in \\) ) {haha}"); stringlist.push_back("\t \t \t (( in \\) ){hihi}"); stringlist.push_back("\t \t \t (( in \\) )|{hihi}"); for (unsigned int i=0; i using namespace std; #include "../FbTk/Signal.hh" #include "../FbTk/MemFun.hh" #include struct NoArgument { void operator() () const { cout << "No Argument." << endl; } }; struct OneArgument { void operator ()( int value ) { cout << "One argument = " << value << endl; } }; struct TwoArguments { template void operator ()( const T1& value, const T2& message ) { cout << "Two arguments, (1) = " << value << ", (2) = " << message << endl; } }; struct ThreeArguments { void operator ()( int value, const string& message, double value2 ) { cout << "Two arguments, (1) = " << value << ", (2) = " << message << ", (3) = " << value2 << endl; } }; struct FunctionClass { FunctionClass() { cout << "FunctionClass created." << endl; } ~FunctionClass() { cout << "FunctionClass deleted." << endl; } void print() { cout << "Printing." << endl; } void takeIt( string& str ) { cout << "FunctionClass::takeIt( " << str << " )" << endl; } void showMessage( int value, const string& message ) { cout << "(" << value << "): " << message << endl; } void showMessage2( const string& message1, const string& message2) { cout << "(" << message1 << ", " << message2 << ")" << endl; } void threeArgs( int value, const string& str, double pi ) { cout << "(" << value << "): " << str << ", pi = " << pi << endl; } }; struct Printer { void printInt(int value) { cout << "Int:" << value << endl; } void printString(string value) { cout << "string:" << value << endl; } void printFloat(float value) { cout << "Float:" << value << endl; } }; int main() { using FbTk::Signal; using FbTk::SignalTracker; Signal<> no_arg; no_arg.connect( NoArgument() ); Signal one_arg; one_arg.connect( OneArgument() ); Signal two_args; two_args.connect( TwoArguments() ); Signal three_args; three_args.connect( ThreeArguments() ); // emit test no_arg.emit(); one_arg.emit( 10 ); two_args.emit( 10, "Message" ); three_args.emit( 10, "Three", 3.141592 ); // test signal tracker { cout << "---- tracker ----" << endl; SignalTracker tracker; // setup two new slots and track them SignalTracker::TrackID id_no_arg = tracker.join( no_arg, NoArgument() ); SignalTracker::TrackID id_one_arg = tracker.join( one_arg, OneArgument() ); // two outputs each from these two signals no_arg.emit(); one_arg.emit( 31 ); // stop tracking id_one_arg, which should keep the slot after this scope, // the id_no_arg connection should be destroyed after this. tracker.leave( id_one_arg ); cout << "---- tracker end ----" << endl; } // now we should have one output from no_arg and two outputs from one_arg no_arg.emit(); one_arg.emit( 2 ); using FbTk::MemFun; FunctionClass obj; no_arg.clear(); no_arg.connect(MemFun(obj, &FunctionClass::print)); no_arg.emit(); string takeThis("Take this"); Signal ref_arg; ref_arg.connect(MemFun(obj, &FunctionClass::takeIt)); ref_arg.emit( takeThis ); two_args.clear(); two_args.connect(MemFun(obj, &FunctionClass::showMessage)); two_args.emit(10, "This is a message"); three_args.clear(); three_args.connect(MemFun(obj, &FunctionClass::threeArgs)); three_args.emit(9, "nine", 3.141592); // Test ignore signals { cout << "----------- Testing ignoring arguments for signal." << endl; using FbTk::MemFunIgnoreArgs; // Create a signal that emits with three arguments, and connect // sinks that takes less than three arguments. Signal more_args; more_args.connect(MemFunIgnoreArgs(obj, &FunctionClass::print)); more_args.connect(MemFunIgnoreArgs(obj, &FunctionClass::takeIt)); more_args.connect(MemFunIgnoreArgs(obj, &FunctionClass::showMessage2)); more_args.emit("This should be visible for takeIt(string)", "Visible to the two args function.", 2.9); } // Test argument selector { using namespace FbTk; Signal source; Printer printer; source.connect(MemFunSelectArg0(printer, &Printer::printInt)); source.connect(MemFunSelectArg1(printer, &Printer::printString)); source.connect(MemFunSelectArg2(printer, &Printer::printFloat)); source.emit(10, "hello", 3.141592); Signal source2; source2.connect(MemFunSelectArg0(printer, &Printer::printString)); source2.connect(MemFunSelectArg1(printer, &Printer::printInt)); source2.emit("world", 37); } } fluxbox-1.3.5/src/tests/PaxHeaders.25974/testRectangleUtil.cc0000644000175000017500000000013212106662425022156 xustar000000000000000030 mtime=1360749845.903812656 30 atime=1360749876.679812459 30 ctime=1360750008.487811616 fluxbox-1.3.5/src/tests/testRectangleUtil.cc0000644000175000017500000000636412106662425020216 0ustar00mgmg00000000000000#include "RectangleUtil.hh" #include struct Rect { int x() const { return m_x; } int y() const { return m_y; } int width() const { return m_width; } int height() const { return m_height; } int m_x, m_y, m_width, m_height; }; int test_insideBorder() { printf("testing RectangleUtil::insideBorder()\n"); struct _t { struct Rect rect; int x; int y; int bw; int truth; }; _t tests[] = { { { 0, 0, 10, 10 }, 0, 0, 2, false }, // on the (outer) edge { { 0, 0, 10, 10 }, 1, 1, 2, false }, // on the (inner) edge { { 0, 0, 10, 10 }, 5, 5, 2, true }, // really inside { { 0, 0, 10, 10 }, -5, 0, 2, false }, // somewhere outside { { 0, 0, 10, 10 }, 20, 20, 2, false } // outside for sure }; for (unsigned int i = 0; i < sizeof(tests)/sizeof(_t); ++i) { const _t& t = tests[i]; int result = RectangleUtil::insideBorder(t.rect, t.x, t.y, t.bw); printf(" %u: is (%02d|%02d) inside [%d %d]-[%d %d] with border %d: %s, %s\n", i, t.x, t.y, t.rect.x(), t.rect.y(), t.rect.x() + (int)t.rect.width(), t.rect.y() + (int)t.rect.height(), t.bw, result ? "yes" : "no", result == t.truth ? "ok" : "failed"); } printf("done.\n"); return 0; } int test_overlapRectangles() { printf("testing RectangleUtil::overlapRectangles()\n"); struct _t { struct Rect a; struct Rect b; int truth; }; struct _test { bool operator()(const Rect& a, const Rect& b, int truth, unsigned int i) { int result = RectangleUtil::overlapRectangles(a, b); printf(" %u: [%2d %2d]-[%2d %2d] %s [%2d %2d]-[%2d %2d]: %s\n", i, a.x(), a.y(), a.x() + (int)a.width(), a.y() + (int)a.height(), result ? "overlaps" : "does not overlap", b.x(), b.y(), b.x() + (int)b.width(), b.y() + (int)b.height(), result == truth ? "ok" : "failed"); return result == truth; } }; const _t tests[] = { { { 0, 0, 8, 8 }, { 0, 0, 8, 8 }, true }, // b equals a { { 0, 0, 8, 8 }, { 3, 3, 3, 3 }, true }, // b completely inside a { { 0, 0, 8, 8 }, { 4, 4, 8, 8 }, true }, // b overlaps a in one corner { { 0, 0, 8, 8 }, { 4,-1, 2, 9 }, true }, // b overlaps a in the middle { { 0, 0, 8, 8 }, { -8, 0, 5, 8 }, false }, // b completely left from a { { 0, 0, 8, 8 }, { 9, 0, 5, 8 }, false }, // b completely right from a { { 0, 0, 8, 8 }, { 0,-9, 5, 8 }, false }, // b completely down below a { { 0, 0, 8, 8 }, { 0, 9, 5, 8 }, false }, // b completely up above a }; _test test; for (unsigned int i = 0; i < sizeof(tests)/sizeof(_t); ++i) { test(tests[i].a, tests[i].b, tests[i].truth, i); test(tests[i].b, tests[i].a, tests[i].truth, i); } printf("done.\n"); return 0; } int main(int argc, char **argv) { test_insideBorder(); test_overlapRectangles(); return 0; } fluxbox-1.3.5/src/tests/PaxHeaders.25974/testKeys.cc0000644000175000017500000000013212106662425020327 xustar000000000000000030 mtime=1360749845.903812656 30 atime=1360749876.679812459 30 ctime=1360750008.487811616 fluxbox-1.3.5/src/tests/testKeys.cc0000644000175000017500000000333212106662425016357 0ustar00mgmg00000000000000// testKeys.cc // Copyright (c) 2001 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include #include "../FbTk/App.hh" #include "../FbTk/KeyUtil.hh" using namespace std; void testKeys(int argc, char **argv) { FbTk::App app(0); if (app.display() == 0) { cerr<<"Cant open display."< #include #include #include #include #include using namespace std; /// Motif wm Hints enum { MwmHintsFunctions = (1l << 0), ///< use motif wm functions MwmHintsDecorations = (1l << 1) ///< use motif wm decorations }; /// Motif wm functions enum MwmFunc{ MwmFuncAll = (1l << 0), ///< all motif wm functions MwmFuncResize = (1l << 1), ///< resize MwmFuncMove = (1l << 2), ///< move MwmFuncIconify = (1l << 3), ///< iconify MwmFuncMaximize = (1l << 4), ///< maximize MwmFuncClose = (1l << 5) ///< close }; typedef struct MwmHints { unsigned long flags; // Motif wm flags unsigned long functions; // Motif wm functions unsigned long decorations; // Motif wm decorations } MwmHints; class App:public FbTk::App, public FbTk::EventHandler { public: App(const char *displayname, bool fullscreen): FbTk::App(displayname), m_win(DefaultScreen(display()), 0, 0, 100, 100, KeyPressMask | ExposureMask ), m_fullscreen(fullscreen) { if (fullscreen) { // setup fullscreen as initial state Atom net_wm_state = XInternAtom(display(), "_NET_WM_STATE", False); Atom state_fullscreen = XInternAtom(display(), "_NET_WM_STATE_FULLSCREEN", False); m_win.changeProperty(net_wm_state, XA_ATOM, 32, PropModeReplace, reinterpret_cast(&state_fullscreen), 1 ); MwmHints hints; hints.flags = MwmHintsFunctions; hints.functions = MwmFuncIconify | MwmFuncClose; // disable resize Atom mwm_hints = XInternAtom(display(), "_MOTIF_WM_HINTS", False); m_win.changeProperty(mwm_hints, mwm_hints, 32, PropModeReplace, reinterpret_cast(&hints), 3); } m_win.show(); m_win.setBackgroundColor(FbTk::Color("white", m_win.screenNumber())); FbTk::EventManager::instance()->add(*this, m_win); m_win.setName("Fullscreen test."); } ~App() { } void keyPressEvent(XKeyEvent &ke) { KeySym ks; char keychar[1]; XLookupString(&ke, keychar, 1, &ks, 0); if (ks == XK_Escape) end(); else toggleFullscreen(); } void exposeEvent(XExposeEvent &event) { redraw(); } void redraw() { m_win.clear(); } void toggleFullscreen() { setFullscreen(!m_fullscreen); } void setFullscreen( bool state ) { m_fullscreen = state; Atom net_wm_state = XInternAtom(display(), "_NET_WM_STATE", False); Atom net_wm_state_fullscreen = XInternAtom(display(), "_NET_WM_STATE_FULLSCREEN", False); XEvent event; event.type = ClientMessage; event.xclient.message_type = net_wm_state; event.xclient.display = m_win.display(); event.xclient.format = 32; event.xclient.window = m_win.window(); event.xclient.data.l[0] = state; event.xclient.data.l[1] = net_wm_state_fullscreen; event.xclient.data.l[2] = 0; event.xclient.data.l[3] = 0; event.xclient.data.l[4] = 0; XSendEvent(display(), DefaultRootWindow(display()), False, SubstructureRedirectMask | SubstructureNotifyMask, &event); if ( ! state ) { // if no fullscreen then // enable all functions MwmHints hints; hints.flags = MwmHintsFunctions; hints.functions = MwmFuncAll; // disable resize Atom mwm_hints = XInternAtom(display(), "_MOTIF_WM_HINTS", False); m_win.changeProperty(mwm_hints, mwm_hints, 32, PropModeReplace, reinterpret_cast(&hints), 3); } } private: FbTk::FbWindow m_win; bool m_fullscreen; }; int main(int argc, char **argv) { string displayname(""); bool fullscreen = false; for (int a=1; a #include #include #include #include #include #include using namespace std; class App:public FbTk::App, public FbTk::FbWindow, public FbTk::EventHandler { public: App(const char *displayname, const string& foreground, const string& background): FbTk::App(displayname), FbTk::FbWindow(DefaultScreen(this->FbTk::App::display()), 0, 0, 640, 480, KeyPressMask|ExposureMask|StructureNotifyMask), m_gc(drawable()), m_foreground(foreground.c_str(), screenNumber()), m_background(background.c_str(), screenNumber()) { m_gc.setLineAttributes(1, FbTk::GContext::JOINMITER, FbTk::GContext::LINESOLID, FbTk::GContext::CAPNOTLAST); m_gc.setForeground(m_foreground); m_gc.setBackground(m_background); setBackgroundColor(m_background); FbTk::EventManager::instance()->add(*this, *this); } ~App() { } void keyPressEvent(XKeyEvent &ke) { KeySym ks; char keychar[1]; XLookupString(&ke, keychar, 1, &ks, 0); if (ks == XK_Escape) { end(); } } virtual void handleEvent(XEvent& event) { if (event.type == ConfigureNotify) { resize(event.xconfigure.width, event.xconfigure.height); } } void exposeEvent(XExposeEvent &event) { redraw(); } void redraw() { size_t i; for (i = 0; i < m_buttons.size(); ++i) { FbTk::TextButton* b = m_buttons[i]; b->clear(); b->drawLine(m_gc.gc(), 0, b->height() / 2, b->width(), b->height() / 2); } this->clear(); } void resize(unsigned int width, unsigned int height) { FbTk::FbWindow::resize(width, height); unsigned w = width / m_buttons.size(); size_t i; for (i = 0; i < m_buttons.size(); ++i) { m_buttons[i]->moveResize(i * w, 0, w, height); } redraw(); } void addText(const FbTk::BiDiString& text, FbTk::Font& font, const FbTk::Orientation orient) { FbTk::FbWindow* win = this; FbTk::TextButton* button = new FbTk::TextButton(*win, font, text); button->setGC(m_gc.gc()); button->setOrientation(orient); button->setBackgroundColor(m_background); button->show(); m_buttons.push_back(button); } private: vector m_buttons; FbTk::GContext m_gc; FbTk::Color m_foreground; FbTk::Color m_background; }; int main(int argc, char **argv) { vector texts_and_fonts; FbTk::Orientation orient = FbTk::ROT0; string displayname(""); string background("white"); string foreground("black"); int a; for (a = 1; a < argc; ++a) { if (strcmp("-display", argv[a]) == 0 && a + 1 < argc) { displayname = argv[++a]; } else if (strcmp("-orient", argv[a]) == 0) { orient = (FbTk::Orientation) (atoi(argv[++a]) % 4); } else if (strcmp("-bg", argv[a]) == 0 && a + 1 < argc) { background = argv[++a]; } else if (strcmp("-fg", argv[a]) == 0 && a + 1 < argc) { foreground = argv[++a]; } else if (strcmp("-h", argv[a]) == 0) { cerr<<"Arguments: \"text|fontname\" [\"text|fontname2\"]"<"<"<"< tf; FbTk::StringUtil::stringtok(tf, texts_and_fonts[a], "|"); if (tf.size() < 2) { tf.push_back("default"); } FbTk::Font* f = new FbTk::Font(0); if (f->load(tf[1])) { if (orient && !f->validOrientation(orient)) { cerr<<"Orientation not valid ("< #include #include #include #include using namespace std; class App:public FbTk::App, public FbTk::EventHandler { public: App(const char *displayname): FbTk::App(displayname), m_win(DefaultScreen(display()), 0, 0, 640, 480, KeyPressMask | ExposureMask | ButtonPressMask | ButtonReleaseMask | ButtonMotionMask) { m_win.setName("Demand Attention"); m_win.show(); m_win.setBackgroundColor(FbTk::Color("white", m_win.screenNumber())); FbTk::EventManager::instance()->add(*this, m_win); m_net_wm_state = XInternAtom(m_win.display(), "_NET_WM_STATE", False); m_net_wm_state_demands_attention = XInternAtom(m_win.display(), "_NET_WM_STATE_DEMANDS_ATTENTION", False); FbTk::RefCount > cmd(new FbTk::SimpleCommand (*this, &App::demandAttention)); m_timer.setTimeout(5 * FbTk::FbTime::IN_SECONDS); m_timer.setCommand(cmd); m_timer.fireOnce(false); m_timer.start(); } ~App() { } void eventLoop() { XEvent ev; while (!done()) { if (XPending(display())) { XNextEvent(display(), &ev); FbTk::EventManager::instance()->handleEvent(ev); } else { FbTk::Timer::updateTimers(ConnectionNumber(display())); } } } void exposeEvent(XExposeEvent &event) { redraw(); } void redraw() { m_win.clear(); } void demandAttention() { cerr << "Demand attention!" << endl; XEvent event; event.type = ClientMessage; event.xclient.message_type = m_net_wm_state; event.xclient.display = m_win.display(); event.xclient.format = 32; event.xclient.window = m_win.window(); event.xclient.data.l[0] = 1; // STATE_ADD event.xclient.data.l[1] = m_net_wm_state_demands_attention; event.xclient.data.l[2] = 0; event.xclient.data.l[3] = 0; event.xclient.data.l[4] = 0; XSendEvent(display(), DefaultRootWindow(display()), False, SubstructureRedirectMask | SubstructureNotifyMask, &event); } private: FbTk::FbWindow m_win; FbTk::Timer m_timer; Atom m_net_wm_state; Atom m_net_wm_state_demands_attention; }; int main(int argc, char **argv) { string displayname(""); for (int a=1; a/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : noinst_PROGRAMS = testTexture$(EXEEXT) testFont$(EXEEXT) \ testSignals$(EXEEXT) testKeys$(EXEEXT) \ testDemandAttention$(EXEEXT) testFullscreen$(EXEEXT) \ testStringUtil$(EXEEXT) testRectangleUtil$(EXEEXT) subdir = src/tests DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) am_testDemandAttention_OBJECTS = testDemandAttention.$(OBJEXT) testDemandAttention_OBJECTS = $(am_testDemandAttention_OBJECTS) testDemandAttention_LDADD = $(LDADD) testDemandAttention_DEPENDENCIES = ../FbTk/libFbTk.a am_testFont_OBJECTS = testFont.$(OBJEXT) testFont_OBJECTS = $(am_testFont_OBJECTS) testFont_LDADD = $(LDADD) testFont_DEPENDENCIES = ../FbTk/libFbTk.a am_testFullscreen_OBJECTS = fullscreentest.$(OBJEXT) testFullscreen_OBJECTS = $(am_testFullscreen_OBJECTS) testFullscreen_LDADD = $(LDADD) testFullscreen_DEPENDENCIES = ../FbTk/libFbTk.a am_testKeys_OBJECTS = testKeys.$(OBJEXT) testKeys_OBJECTS = $(am_testKeys_OBJECTS) testKeys_LDADD = $(LDADD) testKeys_DEPENDENCIES = ../FbTk/libFbTk.a am_testRectangleUtil_OBJECTS = testRectangleUtil.$(OBJEXT) testRectangleUtil_OBJECTS = $(am_testRectangleUtil_OBJECTS) testRectangleUtil_LDADD = $(LDADD) testRectangleUtil_DEPENDENCIES = ../FbTk/libFbTk.a am_testSignals_OBJECTS = testSignals.$(OBJEXT) testSignals_OBJECTS = $(am_testSignals_OBJECTS) testSignals_LDADD = $(LDADD) testSignals_DEPENDENCIES = ../FbTk/libFbTk.a am_testStringUtil_OBJECTS = StringUtiltest.$(OBJEXT) testStringUtil_OBJECTS = $(am_testStringUtil_OBJECTS) testStringUtil_LDADD = $(LDADD) testStringUtil_DEPENDENCIES = ../FbTk/libFbTk.a am_testTexture_OBJECTS = texturetest.$(OBJEXT) testTexture_OBJECTS = $(am_testTexture_OBJECTS) testTexture_LDADD = $(LDADD) testTexture_DEPENDENCIES = ../FbTk/libFbTk.a DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ SOURCES = $(testDemandAttention_SOURCES) $(testFont_SOURCES) \ $(testFullscreen_SOURCES) $(testKeys_SOURCES) \ $(testRectangleUtil_SOURCES) $(testSignals_SOURCES) \ $(testStringUtil_SOURCES) $(testTexture_SOURCES) DIST_SOURCES = $(testDemandAttention_SOURCES) $(testFont_SOURCES) \ $(testFullscreen_SOURCES) $(testKeys_SOURCES) \ $(testRectangleUtil_SOURCES) $(testSignals_SOURCES) \ $(testStringUtil_SOURCES) $(testTexture_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CPPFLAGS = -I$(top_srcdir)/src testTexture_SOURCES = texturetest.cc testFont_SOURCES = testFont.cc testSignals_SOURCES = testSignals.cc testKeys_SOURCES = testKeys.cc testDemandAttention_SOURCES = testDemandAttention.cc #testResource_SOURCES = Resourcetest.cc testFullscreen_SOURCES = fullscreentest.cc testStringUtil_SOURCES = StringUtiltest.cc testRectangleUtil_SOURCES = testRectangleUtil.cc LDADD = ../FbTk/libFbTk.a all: all-am .SUFFIXES: .SUFFIXES: .cc .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/tests/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) testDemandAttention$(EXEEXT): $(testDemandAttention_OBJECTS) $(testDemandAttention_DEPENDENCIES) $(EXTRA_testDemandAttention_DEPENDENCIES) @rm -f testDemandAttention$(EXEEXT) $(CXXLINK) $(testDemandAttention_OBJECTS) $(testDemandAttention_LDADD) $(LIBS) testFont$(EXEEXT): $(testFont_OBJECTS) $(testFont_DEPENDENCIES) $(EXTRA_testFont_DEPENDENCIES) @rm -f testFont$(EXEEXT) $(CXXLINK) $(testFont_OBJECTS) $(testFont_LDADD) $(LIBS) testFullscreen$(EXEEXT): $(testFullscreen_OBJECTS) $(testFullscreen_DEPENDENCIES) $(EXTRA_testFullscreen_DEPENDENCIES) @rm -f testFullscreen$(EXEEXT) $(CXXLINK) $(testFullscreen_OBJECTS) $(testFullscreen_LDADD) $(LIBS) testKeys$(EXEEXT): $(testKeys_OBJECTS) $(testKeys_DEPENDENCIES) $(EXTRA_testKeys_DEPENDENCIES) @rm -f testKeys$(EXEEXT) $(CXXLINK) $(testKeys_OBJECTS) $(testKeys_LDADD) $(LIBS) testRectangleUtil$(EXEEXT): $(testRectangleUtil_OBJECTS) $(testRectangleUtil_DEPENDENCIES) $(EXTRA_testRectangleUtil_DEPENDENCIES) @rm -f testRectangleUtil$(EXEEXT) $(CXXLINK) $(testRectangleUtil_OBJECTS) $(testRectangleUtil_LDADD) $(LIBS) testSignals$(EXEEXT): $(testSignals_OBJECTS) $(testSignals_DEPENDENCIES) $(EXTRA_testSignals_DEPENDENCIES) @rm -f testSignals$(EXEEXT) $(CXXLINK) $(testSignals_OBJECTS) $(testSignals_LDADD) $(LIBS) testStringUtil$(EXEEXT): $(testStringUtil_OBJECTS) $(testStringUtil_DEPENDENCIES) $(EXTRA_testStringUtil_DEPENDENCIES) @rm -f testStringUtil$(EXEEXT) $(CXXLINK) $(testStringUtil_OBJECTS) $(testStringUtil_LDADD) $(LIBS) testTexture$(EXEEXT): $(testTexture_OBJECTS) $(testTexture_DEPENDENCIES) $(EXTRA_testTexture_DEPENDENCIES) @rm -f testTexture$(EXEEXT) $(CXXLINK) $(testTexture_OBJECTS) $(testTexture_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StringUtiltest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fullscreentest.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testDemandAttention.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testFont.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testKeys.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testRectangleUtil.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testSignals.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/texturetest.Po@am__quote@ .cc.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-noinstPROGRAMS mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-noinstPROGRAMS ctags distclean distclean-compile \ distclean-generic distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/src/tests/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020241 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749854.411812602 30 ctime=1360750008.495811616 fluxbox-1.3.5/src/tests/Makefile.am0000644000175000017500000000120112106662425016262 0ustar00mgmg00000000000000AM_CPPFLAGS= -I$(top_srcdir)/src noinst_PROGRAMS= \ testTexture \ testFont \ testSignals \ testKeys \ testDemandAttention \ testFullscreen \ testStringUtil \ testRectangleUtil testTexture_SOURCES = texturetest.cc testFont_SOURCES = testFont.cc testSignals_SOURCES = testSignals.cc testKeys_SOURCES = testKeys.cc testDemandAttention_SOURCES = testDemandAttention.cc #testResource_SOURCES = Resourcetest.cc testFullscreen_SOURCES = fullscreentest.cc testStringUtil_SOURCES = StringUtiltest.cc testRectangleUtil_SOURCES = testRectangleUtil.cc LDADD=../FbTk/libFbTk.a fluxbox-1.3.5/src/PaxHeaders.25974/FbTk0000644000175000017500000000013212106662667015624 xustar000000000000000030 mtime=1360750007.315811623 30 atime=1360750008.495811616 30 ctime=1360750008.495811616 fluxbox-1.3.5/src/FbTk/0000755000175000017500000000000012106662667013730 5ustar00mgmg00000000000000fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/ImageImlib2.cc0000644000175000017500000000013212106662425020261 xustar000000000000000030 mtime=1360749845.891812656 30 atime=1360749876.643812459 30 ctime=1360750008.495811616 fluxbox-1.3.5/src/FbTk/ImageImlib2.cc0000644000175000017500000001266412106662425016321 0ustar00mgmg00000000000000// ImageImlib2.cc for FbTk - Fluxbox ToolKit // Copyright (c) 2004 - 2006 Mathias Gumz // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "ImageImlib2.hh" #include "App.hh" #include "PixmapWithMask.hh" #include #include #include namespace { class ScreenImlibContextContainer : public std::map { public: ~ScreenImlibContextContainer() { std::map::iterator it = this->begin(); std::map::iterator it_end = this->end(); for (; it != it_end; ++it) { imlib_context_free(it->second); } imlib_flush_loaders(); } }; typedef ScreenImlibContextContainer::iterator ScreenImlibContext; ScreenImlibContextContainer contexts; } // anon namespace namespace FbTk { ImageImlib2::ImageImlib2() { // TODO: this are the potential candidates, // choose only sane ones. open for discussion static const char* format_list[] = { "PNG", // pngloader "JPEG", "JPG", "JFI", "JFIF", // jpegloader // "TIFF", "TIF", // tiffloader "PNM", "PPM", "PGM", "PBM", "PAM", // pnmloader // "TGA", // tgaloader // "IFF", "ILBM", "LBM", // lbmloader // "GIF", // gifloader // "ARGB", "AGR", // argbloader // "BMP", // bmploader // "BZ2", // bzloader // "GZ", // gzloader NULL }; const char** format = NULL; for(format = format_list; *format != NULL; format++) { Image::registerType(*format, *this); } } PixmapWithMask *ImageImlib2::load(const std::string &filename, int screen_num) const { Display *dpy = FbTk::App::instance()->display(); // init imlib2 if needed, the settings for each screen may differ ScreenImlibContext screen_context = contexts.find(screen_num); if (screen_context == contexts.end()) { Imlib_Context new_context = imlib_context_new(); imlib_context_push(new_context); imlib_context_set_display(dpy); imlib_context_set_visual(DefaultVisual(dpy, screen_num)); imlib_context_set_colormap(DefaultColormap(dpy, screen_num)); imlib_context_set_drawable(RootWindow(dpy, screen_num)); // lets have a 2mb cache inside imlib, holds // uncompressed images imlib_set_cache_size(2048 * 1024); imlib_context_pop(); contexts[screen_num] = new_context; screen_context = contexts.find(screen_num); } if (screen_context == contexts.end()) { #ifdef DEBUG std::cerr << "ImageImlib2::load: error, couldnt find a valid Imlib_Context.\n"; #endif // DEBUG return 0; } // now load the stuff Imlib_Context context = screen_context->second; imlib_context_push(context); Imlib_Image image = 0; Imlib_Load_Error err; // TODO: contact imlib2-authors: // // we use this error-loading + get_data_for_reading_only because // it doesnt memleak imlib2, // // imlib_load_image_immediately // imlib_load_image_without_cache // imlib_load_image_immediately_without_cache // // seem to memleak or trouble imlib2 when something fails. the // imlib_load_image_with_error_return checks for existence etc before // actually doing anything, i ll analyze this further (mathias) image = imlib_load_image_with_error_return(filename.c_str(), &err); if (image) { // loading was ok imlib_context_set_image(image); Pixmap pm = 0, mask = 0; // force loading/creation of the image imlib_image_get_data_for_reading_only(); // and render it to the pixmaps imlib_render_pixmaps_for_whole_image(&pm, &mask); // pm and mask belong to imlib2, // so we have to copy them PixmapWithMask* result = new PixmapWithMask(); result->pixmap().copy(pm, 0, 0); result->mask().copy(mask, 0, 0); // mark pm and mask as freeable in imlib imlib_free_image_and_decache(); imlib_free_pixmap_and_mask(pm); imlib_context_pop(); return result; } else // loading failure imlib_context_pop(); return 0; } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/ImageImlib2.hh0000644000175000017500000000013112106662425020272 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.63981246 30 ctime=1360750008.495811616 fluxbox-1.3.5/src/FbTk/ImageImlib2.hh0000644000175000017500000000271012106662425016322 0ustar00mgmg00000000000000// ImageImlib2.hh for FbTk - Fluxbox ToolKit // Copyright (c) 2004 Mathias Gumz (akira at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_IMAGEIMLIB2_HH #define FBTK_IMAGEIMLIB2_HH #include "Image.hh" namespace FbTk { class ImageImlib2: public ImageBase { public: ImageImlib2(); PixmapWithMask *load(const std::string &filename, int screen_num) const; }; } // end namespace FbTk #endif // FBTK_IMAGEIMLIB2_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/XmbFontImp.cc0000644000175000017500000000013112106662425020222 xustar000000000000000030 mtime=1360749845.895812656 29 atime=1360749876.63981246 30 ctime=1360750008.495811616 fluxbox-1.3.5/src/FbTk/XmbFontImp.cc0000644000175000017500000001761112106662425016260 0ustar00mgmg00000000000000// XmbFontImp.cc for FbTk fluxbox toolkit // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "XmbFontImp.hh" #include "App.hh" #include "TextUtils.hh" #include "StringUtil.hh" #include "FbPixmap.hh" #include "GContext.hh" #ifdef HAVE_CONFIG_H #include "config.h" #endif //HAVE_CONFIG_H #ifdef HAVE_SETLOCALE #include #endif // HAVE_SETLOCALE #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif // _GNU_SOURCE #ifdef HAVE_CSTDIO #include #else #include #endif #ifdef HAVE_CSTDARG #include #else #include #endif #ifdef HAVE_CSTRING #include #else #include #endif using std::string; namespace { const char *getFontSize(const char *pattern, int *size) { const char *p; const char *p2=0; int n=0; for (p=pattern; 1; p++) { if (!*p) { if (p2!=0 && n>1 && n<72) { *size = n; return p2+1; } else { *size = 16; return 0; } } else if (*p=='-') { if (n>1 && n<72 && p2!=0) { *size = n; return p2+1; } p2=p; n=0; } else if (*p>='0' && *p<='9' && p2!=0) { n *= 10; n += *p-'0'; } else { p2=0; n=0; } } } const char *getFontElement(const char *pattern, char *buf, int bufsiz, ...) { const char *p, *v; char *p2; va_list va; va_start(va, bufsiz); buf[bufsiz-1] = 0; buf[bufsiz-2] = '*'; while((v = va_arg(va, char *)) != 0) { p = FbTk::StringUtil::strcasestr(pattern, v); if (p) { strncpy(buf, p+1, bufsiz-2); p2 = strchr(buf, '-'); if (p2) *p2=0; va_end(va); return p; } } va_end(va); strncpy(buf, "*", bufsiz); return 0; } XFontSet createFontSet(const char *fontname, bool& utf8mode) { Display *display = FbTk::App::instance()->display(); XFontSet fs; char **missing; const char *constdef = "-"; char *def = const_cast(constdef); int nmissing; string orig_locale = ""; #ifdef HAVE_SETLOCALE if (utf8mode) { orig_locale = setlocale(LC_CTYPE, NULL); if (setlocale(LC_CTYPE, "UTF-8") == NULL) { utf8mode = false; } } #endif // HAVE_SETLOCALE fs = XCreateFontSet(display, fontname, &missing, &nmissing, &def); if (fs && (! nmissing)) { #ifdef HAVE_SETLOCALE if (utf8mode) setlocale(LC_CTYPE, orig_locale.c_str()); #endif // HAVE_SETLOCALE return fs; } #ifdef HAVE_SETLOCALE if (! fs) { if (nmissing) XFreeStringList(missing); setlocale(LC_CTYPE, "C"); fs = XCreateFontSet(display, fontname, &missing, &nmissing, &def); setlocale(LC_CTYPE, orig_locale.c_str()); return fs; } if (utf8mode) setlocale(LC_CTYPE, orig_locale.c_str()); #endif // HAVE_SETLOCALE // set to false because our strings won't be utf8-happy utf8mode = false; return fs; } } namespace FbTk { XmbFontImp::XmbFontImp(const char *filename, bool utf8) : m_fontset(0), m_setextents(0), m_utf8mode(utf8) { if (filename != 0) load(filename); } XmbFontImp::~XmbFontImp() { if (m_fontset != 0) XFreeFontSet(App::instance()->display(), m_fontset); } bool XmbFontImp::load(const string &fontname) { if (fontname.empty()) return false; XFontSet set = createFontSet(fontname.c_str(), m_utf8mode); if (set == 0) return false; if (m_fontset != 0) XFreeFontSet(App::instance()->display(), m_fontset); m_fontset = set; m_setextents = XExtentsOfFontSet(m_fontset); return true; } void XmbFontImp::drawText(const FbDrawable &d, int screen, GC main_gc, const char* text, size_t len, int x, int y, FbTk::Orientation orient) { if (!text || !*text || m_fontset == 0) return; if (orient == ROT0) { #ifdef X_HAVE_UTF8_STRING if (m_utf8mode) { Xutf8DrawString(d.display(), d.drawable(), m_fontset, main_gc, x, y, text, len); } else #endif //X_HAVE_UTF8_STRING { std::string localestr = FbStringUtil::FbStrToLocale(FbString(text, len)); XmbDrawString(d.display(), d.drawable(), m_fontset, main_gc, x, y, localestr.data(), localestr.size()); } return; } Display *dpy = App::instance()->display(); int xpos = x, ypos = y; unsigned int w = d.width(); unsigned int h = d.height(); translateSize(orient, w, h); untranslateCoords(orient, xpos, ypos, w, h); // not straight forward, we actually draw it elsewhere, then rotate it FbTk::FbPixmap canvas(d.drawable(), w, h, 1); // create graphic context for our canvas FbTk::GContext font_gc(canvas); font_gc.setBackground(None); font_gc.setForeground(None); XFillRectangle(dpy, canvas.drawable(), font_gc.gc(), 0, 0, canvas.width(), canvas.height()); font_gc.setForeground(1); #ifdef X_HAVE_UTF8_STRING if (m_utf8mode) { Xutf8DrawString(dpy, canvas.drawable(), m_fontset, font_gc.gc(), xpos, ypos, text, len); } else #endif //X_HAVE_UTF8_STRING { std::string localestr = FbStringUtil::FbStrToLocale(FbString(text, len)); XmbDrawString(dpy, canvas.drawable(), m_fontset, font_gc.gc(), xpos, ypos, localestr.data(), localestr.size()); } canvas.rotate(orient); GC my_gc = XCreateGC(dpy, d.drawable(), 0, 0); XCopyGC(dpy, main_gc, GCForeground|GCBackground, my_gc); // vertical or upside down XSetFillStyle(dpy, my_gc, FillStippled); XSetStipple(dpy, my_gc, canvas.drawable()); XSetTSOrigin(dpy, my_gc, 0, 0); XFillRectangle(dpy, d.drawable(), my_gc, 0, 0, canvas.width(), canvas.height()); XFreeGC(dpy, my_gc); } unsigned int XmbFontImp::textWidth(const char* text, unsigned int len) const { if (m_fontset == 0) return 0; XRectangle ink, logical; #ifdef X_HAVE_UTF8_STRING if (m_utf8mode) { Xutf8TextExtents(m_fontset, text, len, &ink, &logical); if (logical.width != 0) return logical.width; } #endif // X_HAVE_UTF8_STRING std::string localestr = FbStringUtil::FbStrToLocale(FbString(text, len)); XmbTextExtents(m_fontset, localestr.data(), localestr.size(), &ink, &logical); return logical.width; } unsigned int XmbFontImp::height() const { if (m_fontset == 0) return 0; return m_setextents->max_ink_extent.height; } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/XmbFontImp.hh0000644000175000017500000000013112106662425020234 xustar000000000000000030 mtime=1360749845.895812656 29 atime=1360749876.63581246 30 ctime=1360750008.499811616 fluxbox-1.3.5/src/FbTk/XmbFontImp.hh0000644000175000017500000000434112106662425016266 0ustar00mgmg00000000000000// XmbFontImp.hh for FbTk fluxbox toolkit // Copyright (c) 2002-2003 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_XMBFONTIMP_HH #define FBTK_XMBFONTIMP_HH #include "FontImp.hh" namespace FbTk { /// multibyte font implementation for FbTk class XmbFontImp:public FbTk::FontImp { public: XmbFontImp(const char *fontname, bool utf8); ~XmbFontImp(); bool load(const std::string &name); virtual void drawText(const FbDrawable &w, int screen, GC gc, const char* text, size_t len, int x, int y, FbTk::Orientation orient); unsigned int textWidth(const char* text, unsigned int len) const; unsigned int height() const; int ascent() const { return m_setextents ? -m_setextents->max_ink_extent.y : 0; } int descent() const { return m_setextents ? m_setextents->max_ink_extent.height + m_setextents->max_ink_extent.y : 0; } bool loaded() const { return m_fontset != 0; } bool utf8() const { return m_utf8mode; } bool validOrientation(FbTk::Orientation orient) { return true; }; // rotated on demand private: XFontSet m_fontset; XFontSetExtents *m_setextents; bool m_utf8mode; }; } // end namespace FbTk #endif // FBTK_XMBFONTIMP_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/XftFontImp.cc0000644000175000017500000000013112106662425020235 xustar000000000000000030 mtime=1360749845.895812656 29 atime=1360749876.63581246 30 ctime=1360750008.499811616 fluxbox-1.3.5/src/FbTk/XftFontImp.cc0000644000175000017500000001541412106662425016272 0ustar00mgmg00000000000000// XftFontImp.cc Xft font implementation for FbTk // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "XftFontImp.hh" #include "App.hh" #include "FbDrawable.hh" #include #ifdef HAVE_CONFIG_H #include "config.h" #endif //HAVE_CONFIG_H namespace FbTk { XftFontImp::XftFontImp(const char *name, bool utf8): m_utf8mode(utf8), m_name("") { for (int r = ROT0; r <= ROT270; r++) { m_xftfonts[r] = 0; m_xftfonts_loaded[r] = false; } if (name != 0) load(name); } XftFontImp::~XftFontImp() { for (int r = ROT0; r <= ROT270; r++) if (m_xftfonts[r] != 0) XftFontClose(App::instance()->display(), m_xftfonts[r]); } bool XftFontImp::load(const std::string &name) { //Note: assumes screen 0 for now, changes on draw if needed Display *disp = App::instance()->display(); XftFont *newxftfont = XftFontOpenXlfd(disp, 0, name.c_str()); if (newxftfont == 0) { newxftfont = XftFontOpenName(disp, 0, name.c_str()); if (newxftfont == 0) return false; } // destroy all old fonts and set new for (int r = ROT0; r <= ROT270; r++) { m_xftfonts_loaded[r] = false; if (m_xftfonts[r] != 0) { XftFontClose(App::instance()->display(), m_xftfonts[r]); m_xftfonts[r] = 0; } } m_xftfonts[ROT0] = newxftfont; m_xftfonts_loaded[ROT0] = true; m_name = name; return true; } void XftFontImp::drawText(const FbDrawable &w, int screen, GC gc, const char* text, size_t len, int x, int y, FbTk::Orientation orient) { if (!text || !*text) return; if (!validOrientation(orient)) return; // we adjust y slightly so that the baseline is in the right spot // (it is offset one by rotation >=180 degrees) switch (orient) { case ROT0: break; case ROT90: break; case ROT180: x+=1; y+=1; break; case ROT270: y+=1; break; } Visual* def_visual = DefaultVisual(w.display(), screen); Colormap def_colmap = DefaultColormap(w.display(), screen); XftFont *font = m_xftfonts[orient]; XftDraw *draw = XftDrawCreate(w.display(), w.drawable(), def_visual, def_colmap); XGCValues gc_val; // get foreground pixel value and convert it to XRenderColor value // TODO: we should probably check return status XGetGCValues(w.display(), gc, GCForeground, &gc_val); // get red, green, blue values XColor xcol; xcol.pixel = gc_val.foreground; XQueryColor(w.display(), def_colmap, &xcol); // convert xcolor to XftColor XRenderColor rendcol; rendcol.red = xcol.red; rendcol.green = xcol.green; rendcol.blue = xcol.blue; rendcol.alpha = 0xFFFF; XftColor xftcolor; XftColorAllocValue(w.display(), def_visual, def_colmap, &rendcol, &xftcolor); // draw string #ifdef HAVE_XFT_UTF8_STRING if (m_utf8mode) { // check the string size, // if the size is zero we use the XftDrawString8 function instead. XGlyphInfo ginfo; XftTextExtentsUtf8(w.display(), m_xftfonts[ROT0], (XftChar8 *)text, len, &ginfo); if (ginfo.xOff != 0) { XftDrawStringUtf8(draw, &xftcolor, font, x, y, (XftChar8 *)text, len); XftColorFree(w.display(), def_visual, def_colmap, &xftcolor); XftDrawDestroy(draw); return; } } #endif // HAVE_XFT_UTF8_STRING XftDrawString8(draw, &xftcolor, font, x, y, (XftChar8 *)text, len); XftColorFree(w.display(), def_visual, def_colmap, &xftcolor); XftDrawDestroy(draw); } unsigned int XftFontImp::textWidth(const char* text, unsigned int len) const { if (m_xftfonts[ROT0] == 0) return 0; XGlyphInfo ginfo; Display* disp = App::instance()->display(); XftFont *font = m_xftfonts[ROT0]; #ifdef HAVE_XFT_UTF8_STRING if (m_utf8mode) { XftTextExtentsUtf8(disp, font, (XftChar8 *)text, len, &ginfo); if (ginfo.xOff != 0) return ginfo.xOff; // the utf8 failed, try normal extents } #endif //HAVE_XFT_UTF8_STRING std::string localestr = FbStringUtil::FbStrToLocale(FbString(text, len)); XftTextExtents8(disp, font, (XftChar8 *)localestr.data(), localestr.size(), &ginfo); return ginfo.xOff; } unsigned int XftFontImp::height() const { if (m_xftfonts[ROT0] == 0) return 0; else return m_xftfonts[ROT0]->height; //m_xftfont->ascent + m_xftfont->descent; // curiously, fonts seem to have a smaller height, but the "height" // is specified within the actual font, so it must be right, right? } bool XftFontImp::validOrientation(FbTk::Orientation orient) { if (orient == ROT0 || m_xftfonts[orient]) return true; if (m_xftfonts_loaded[orient]) return false; // m_xftfonts is zero here if (m_xftfonts[ROT0] == 0) return false; m_xftfonts_loaded[orient] = true; // otherwise, try to load that orientation // radians is actually anti-clockwise, so we reverse it double radians = -(orient) * 90 * M_PI / 180; XftMatrix matrix; XftMatrixInit(&matrix); XftMatrixRotate(&matrix, cos(radians), sin(radians)); Display *disp = App::instance()->display(); XftPattern * pattern = XftNameParse(m_name.c_str()); XftResult result; pattern = XftFontMatch(disp, 0, pattern, &result); XftPatternAddMatrix(pattern, XFT_MATRIX, &matrix); XftFont * new_font = XftFontOpenPattern(disp, pattern); if (new_font == 0) return false; m_xftfonts[orient] = new_font; return true; } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/XftFontImp.hh0000644000175000017500000000013112106662425020247 xustar000000000000000030 mtime=1360749845.895812656 29 atime=1360749876.63581246 30 ctime=1360750008.499811616 fluxbox-1.3.5/src/FbTk/XftFontImp.hh0000644000175000017500000000456212106662425016306 0ustar00mgmg00000000000000// XftFontImp.hh Xft font implementation for FbTk // Copyright (c) 2002-2004 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_XFTFONTIMP_HH #define FBTK_XFTFONTIMP_HH #include "FontImp.hh" #include namespace FbTk { /// Handles Xft font drawing class XftFontImp:public FbTk::FontImp { public: XftFontImp(const char *fontname, bool utf8); ~XftFontImp(); bool load(const std::string &name); void drawText(const FbDrawable &w, int screen, GC gc, const char* text, size_t len, int x, int y , FbTk::Orientation orient); unsigned int textWidth(const char* text, unsigned int len) const; unsigned int height() const; int ascent() const { return m_xftfonts[0] ? m_xftfonts[0]->ascent : 0; } int descent() const { return m_xftfonts[0] ? m_xftfonts[0]->descent : 0; } bool loaded() const { return m_xftfonts[0] != 0; } bool utf8() const { return m_utf8mode; } bool validOrientation(FbTk::Orientation orient); private: XftFont *m_xftfonts[4]; // 4 possible orientations bool m_xftfonts_loaded[4]; // whether we've tried loading the orientation // rotated xft fonts don't give proper extents info, so we keep the "real" // one around for it bool m_utf8mode; std::string m_name; int m_angle; }; } // end namespace FbTk #endif // FBTK_XFTFONTIMP_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/ImageXPM.cc0000644000175000017500000000013112106662425017606 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.63181246 30 ctime=1360750008.499811616 fluxbox-1.3.5/src/FbTk/ImageXPM.cc0000644000175000017500000000375512106662425015650 0ustar00mgmg00000000000000// ImageXPM.cc for FbTk - Fluxbox ToolKit // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "ImageXPM.hh" #include "App.hh" #include "PixmapWithMask.hh" #include namespace FbTk { ImageXPM::ImageXPM() { Image::registerType("XPM", *this); } PixmapWithMask *ImageXPM::load(const std::string &filename, int screen_num) const { XpmAttributes xpm_attr; xpm_attr.valuemask = 0; Display *dpy = FbTk::App::instance()->display(); Pixmap pm = 0, mask = 0; int retvalue = XpmReadFileToPixmap(dpy, RootWindow(dpy, screen_num), const_cast(filename.c_str()), &pm, &mask, &xpm_attr); if (retvalue == 0) // success return new PixmapWithMask(pm, mask); else // failure return 0; } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/ImageXPM.hh0000644000175000017500000000013112106662425017620 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.63181246 30 ctime=1360750008.503811616 fluxbox-1.3.5/src/FbTk/ImageXPM.hh0000644000175000017500000000267312106662425015660 0ustar00mgmg00000000000000// ImageXPM.hh for FbTk - Fluxbox ToolKit // Copyright (c) 2003 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_IMAGEXPM_HH #define FBTK_IMAGEXPM_HH #include "Image.hh" namespace FbTk { class ImageXPM: public ImageBase { public: ImageXPM(); PixmapWithMask *load(const std::string &filename, int screen_num) const; }; } // end namespace FbTk #endif // FBTK_IMAGEXPM_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/RelCalcHelper.cc0000644000175000017500000000013112106662425020644 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.62781246 30 ctime=1360750008.503811616 fluxbox-1.3.5/src/FbTk/RelCalcHelper.cc0000644000175000017500000000273212106662425016700 0ustar00mgmg00000000000000// RelCalcHelper.hh for Fluxbox - an X11 Window manager // Copyright (c) 2012 Lajos Koszti (ajnasz at ajnasz.hu) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "RelCalcHelper.hh" namespace FbTk { namespace RelCalcHelper { int calPercentageValueOf(int i, int j) { return floor(i * j / 100 + 0.5); } int calPercentageOf(int i, int j) { return floor((float) i / (float) j * 100 + 0.5); } } } fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/RelCalcHelper.hh0000644000175000017500000000013112106662425020656 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.62781246 30 ctime=1360750008.503811616 fluxbox-1.3.5/src/FbTk/RelCalcHelper.hh0000644000175000017500000000271712106662425016715 0ustar00mgmg00000000000000// RelCalcHelper.cc for Fluxbox - an X11 Window manager // Copyright (c) 2012 Lajos Koszti (ajnasz at ajnasz.hu) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_RELCALCHELPER_HH #define FBTK_RELCALCHELPER_HH #ifdef HAVE_CMATH #include #else #include #endif namespace FbTk { namespace RelCalcHelper { int calPercentageOf(int i, int j); int calPercentageValueOf(int i, int j); } } #endif // FBTK_RELCALCHELPER_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Util.hh0000644000175000017500000000013112106662425017126 xustar000000000000000030 mtime=1360749845.895812656 29 atime=1360749876.62781246 30 ctime=1360750008.503811616 fluxbox-1.3.5/src/FbTk/Util.hh0000644000175000017500000000275212106662425015164 0ustar00mgmg00000000000000// Util.hh for fluxbox // Copyright (c) 2010 Mathias Gumz (akira at fluxbox org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_UTIL_HH #define FBTK_UTIL_HH namespace FbTk { namespace Util { template inline T clamp(const T& value, const T& lower, const T& upper) { if (value < lower) return lower; else if (value > upper) return upper; return value; } } // end namespace Util } // end namespace FbTk #endif // FBTK_UTIL_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/SelectArg.hh0000644000175000017500000000013112106662425020062 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.62381246 30 ctime=1360750008.507811616 fluxbox-1.3.5/src/FbTk/SelectArg.hh0000644000175000017500000000527712106662425016125 0ustar00mgmg00000000000000// SelectArg.hh for FbTk // Copyright (c) 2010 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_STLUTIL_SELECT_ARG_HH #define FBTK_STLUTIL_SELECT_ARG_HH #include "STLUtil.hh" namespace FbTk { namespace STLUtil { /** * Selects a single argument from a maximum set of three arguments at compile time. * For example: * \begincode * SelectArg<0>()( 10, 20, "hello" ); // returns first argument ( 10 ) * SelectArg<1>()( 10, "hello", 30 ); // returns second argument ( "hello" ) * SelectArg<2>()( 10, "hello", 30 ); // returns third argument ( 30 ) * \endcode * * The selection of argument 1 and 2 can return the last argument if the * arguments are less or equal to two. For instance: * \begincode * SelectArg<1>()(10); // returns 10 * SelectArg<2>()(10, 20); // returns 20 * SelectArg<2>()(10); // returns 10 * \endcode */ template < int N > struct SelectArg { template typename IfThenElse::ResultType& operator ()(Type1& a, Type2& b){ return IfThenElse()(a, b); } template typename IfThenElse::ResultType>::ResultType& operator () (Type1& a, Type2& b, Type3& c) { return IfThenElse::ResultType>() (a, IfThenElse() (b, c) ); } template < typename Type1 > Type1 operator() (Type1 a) { return a; } }; } // end namespace STLUtil } // end namespace FbTk #endif // FBTK_STLUTIL_SELECT_ARG_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/MemFun.hh0000644000175000017500000000013112106662425017400 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.62381246 30 ctime=1360750008.507811616 fluxbox-1.3.5/src/FbTk/MemFun.hh0000644000175000017500000002744412106662425015443 0ustar00mgmg00000000000000// MemFun.hh for FbTk, Fluxbox Toolkit // Copyright (c) 2008 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_MEM_FUN_HH #define FBTK_MEM_FUN_HH #include #include "SelectArg.hh" namespace FbTk { /// No argument functor template class MemFun0 { public: typedef ReturnType (Object:: *Action)(); MemFun0(Object& obj, Action action): m_obj(obj), m_action(action) { } ReturnType operator ()() const { return (m_obj.*m_action)(); } private: Object& m_obj; Action m_action; }; template MemFun0 MemFun( Object& obj, ReturnType (Object:: *action)() ) { return MemFun0(obj, action); } /// One argument functor template class MemFun1: public std::unary_function { public: typedef ReturnType (Object:: *Action)(Arg1); MemFun1(Object& obj, Action action): m_obj(obj), m_action(action) { } ReturnType operator ()(Arg1 arg1) const { return (m_obj.*m_action)(arg1); } private: Object& m_obj; Action m_action; }; /// One argument functor helper function template MemFun1 MemFun( Object& obj, ReturnType (Object:: *action)(Arg1) ) { return MemFun1(obj, action); } /// Two argument functor template class MemFun2: public std::binary_function { public: typedef ReturnType (Object:: *Action)(Arg1,Arg2); MemFun2(Object& obj, Action action): m_obj(obj), m_action(action) { } ReturnType operator ()(Arg1 arg1, Arg2 arg2) const { return (m_obj.*m_action)(arg1, arg2); } private: Object& m_obj; Action m_action; }; /// Two argument functor helper function template MemFun2 MemFun( Object& obj, ReturnType (Object:: *action)(Arg1,Arg2) ) { return MemFun2(obj, action); } /// Three argument functor template class MemFun3 { public: typedef ReturnType (Object:: *Action)(Arg1,Arg2,Arg3); MemFun3(Object& obj, Action action): m_obj(obj), m_action(action) { } ReturnType operator ()(Arg1 arg1, Arg2 arg2, Arg3 arg3) const { return (m_obj.*m_action)(arg1, arg2, arg3); } private: Object& m_obj; Action m_action; }; /// Three argument functor helper template MemFun3 MemFun( Object& obj, ReturnType (Object:: *action)(Arg1, Arg2, Arg3) ) { return MemFun3(obj, action); } /// Ignores all arguments template class MemFun0IgnoreArgs: public MemFun0 { public: typedef MemFun0 BaseType; MemFun0IgnoreArgs(Object& obj, typename BaseType::Action action): BaseType(obj, action) { } template ReturnType operator ()(IgnoreType1&, IgnoreType2&, IgnoreType3&) const { return BaseType::operator ()(); } template ReturnType operator ()(IgnoreType1&, IgnoreType2&) const { return BaseType::operator ()(); } template ReturnType operator ()(IgnoreType1&) const { return BaseType::operator ()(); } }; /// Ignores second and third argument template class MemFun1IgnoreArgs: public MemFun1 { public: typedef MemFun1 BaseType; MemFun1IgnoreArgs(Object& obj, typename BaseType::Action& action): BaseType(obj, action) { } template ReturnType operator ()(Arg1 arg1, IgnoreType1&, IgnoreType2&) const { return BaseType::operator ()(arg1); } template ReturnType operator ()(Arg1 arg1, IgnoreType&) const { return BaseType::operator ()(arg1); } }; /// Takes two arguments but ignores the third template class MemFun2IgnoreArgs: public MemFun2 { public: typedef MemFun2 BaseType; MemFun2IgnoreArgs(Object& obj, typename BaseType::Action& action): BaseType(obj, action) { } template < typename IgnoreType > ReturnType operator ()(Arg1 arg1, Arg2 arg2, IgnoreType&) const { return BaseType::operator ()(arg1, arg2); } }; /// Creates functor that ignores all arguments. template MemFun0IgnoreArgs MemFunIgnoreArgs( Object& obj, ReturnType (Object:: *action)() ) { return MemFun0IgnoreArgs(obj, action); } /// Creates functor that ignores second and third argument. template MemFun1IgnoreArgs MemFunIgnoreArgs( Object& obj, ReturnType (Object:: *action)(Arg1) ) { return MemFun1IgnoreArgs(obj, action); } /// Creates functor that ignores third argument. template MemFun2IgnoreArgs MemFunIgnoreArgs( Object& obj, ReturnType (Object:: *action)(Arg1,Arg2) ) { return MemFun2IgnoreArgs(obj, action); } /** * Creates a functor that selects a specific argument of three possible ones * and uses it for the single argument operator. */ template < int ArgNum, typename Functor, typename ReturnType> class MemFunSelectArgImpl { public: MemFunSelectArgImpl(Functor func): m_func(func) { } template ReturnType operator ()(Type1& a, Type2& b, Type3& c) const { return m_func(STLUtil::SelectArg()(a, b, c)); } template ReturnType operator ()(Type1& a, Type2& b) const { return m_func(STLUtil::SelectArg()(a, b)); } template ReturnType operator ()(Type1& a) const { return m_func(a); } private: Functor m_func; }; /// Creates a functor that selects the first argument of three possible ones /// and uses it for the single argument operator. template MemFunSelectArgImpl<0, MemFun1, ReturnType> MemFunSelectArg0(Object& obj, ReturnType (Object:: *action)(Arg1)) { return MemFunSelectArgImpl<0, MemFun1, ReturnType>(MemFun(obj, action)); } /// Creates a functor that selects the second argument (or first if there is /// only one) of three possible onesand uses it for the single argument operator. template MemFunSelectArgImpl<1, MemFun1, ReturnType> MemFunSelectArg1(Object& obj, ReturnType (Object:: *action)(Arg1)) { return MemFunSelectArgImpl<1, MemFun1, ReturnType>(MemFun(obj, action)); } /// Creates a functor that selects the third argument (or the last argument if there is /// less than three arguments) of three possible onesand uses it for the single argument operator. template MemFunSelectArgImpl<2, MemFun1, ReturnType> MemFunSelectArg2(Object& obj, ReturnType (Object:: *action)(Arg1)) { return MemFunSelectArgImpl<2, MemFun1, ReturnType>(MemFun(obj, action)); } /// Creates a functor with a bound parameter template class MemFunBind1 { public: typedef ReturnType (Object:: *Action)(Arg1); MemFunBind1(Object& obj, Action action, Arg1 arg1): m_obj(obj), m_action(action), m_arg1(arg1) { } ReturnType operator()() const { return (m_obj.*m_action)(m_arg1); } private: Object& m_obj; Action m_action; Arg1 m_arg1; }; /// Creates a functor with a bound parameter template MemFunBind1 MemFunBind( Object& obj, ReturnType (Object:: *action)(Arg1), Arg1 arg1 ) { return MemFunBind1(obj, action, arg1); } /// Creates a functor with a bound parameter template class MemFunBind2 { public: typedef ReturnType (Object:: *Action)(Arg1, Arg2); MemFunBind2(Object& obj, Action action, Arg1 arg1, Arg2 arg2): m_obj(obj), m_action(action), m_arg1(arg1), m_arg2(arg2) { } ReturnType operator()() const { return (m_obj.*m_action)(m_arg1, m_arg2); } private: Object& m_obj; Action m_action; Arg1 m_arg1; Arg2 m_arg2; }; /// Creates a functor with a bound parameter template MemFunBind2 MemFunBind( Object& obj, ReturnType (Object:: *action)(Arg1, Arg2), Arg1 arg1, Arg2 arg2 ) { return MemFunBind2(obj, action, arg1, arg2); } /// Creates a functor with a bound parameter template class MemFunBind3 { public: typedef ReturnType (Object:: *Action)(Arg1, Arg2, Arg3); MemFunBind3(Object& obj, Action action, Arg1 arg1, Arg2 arg2, Arg3 arg3): m_obj(obj), m_action(action), m_arg1(arg1), m_arg2(arg2), m_arg3(arg3) { } ReturnType operator()() const { return (m_obj.*m_action)(m_arg1, m_arg2, m_arg3); } private: Object& m_obj; Action m_action; Arg1 m_arg1; Arg2 m_arg2; Arg3 m_arg3; }; /// Creates a functor with a bound parameter template MemFunBind2 MemFunBind( Object& obj, ReturnType (Object:: *action)(Arg1, Arg2, Arg3), Arg1 arg1, Arg2 arg2, Arg3 arg3 ) { return MemFunBind3(obj, action, arg1, arg2, arg3); } } // namespace FbTk #endif // FBTK_MEM_FUN_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Signal.hh0000644000175000017500000000013112106662425017426 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.62381246 30 ctime=1360750008.507811616 fluxbox-1.3.5/src/FbTk/Signal.hh0000644000175000017500000002322412106662425015461 0ustar00mgmg00000000000000// Signal.hh for FbTk, Fluxbox Toolkit // Copyright (c) 2008 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_SIGNAL_HH #define FBTK_SIGNAL_HH #include "RefCount.hh" #include "Slot.hh" #include #include #include #include namespace FbTk { /// \namespace Implementation details for signals, do not use anything in this namespace namespace SigImpl { /** * Parent class for all \c Signal template classes. * It handles the disconnect and holds all the slots. The connect must be * handled by the child class so it can do the type checking. */ class SignalHolder { protected: typedef RefCount SlotPtr; typedef std::list SlotList; public: /// Special tracker interface used by SignalTracker. class Tracker { public: virtual ~Tracker() { } /// Disconnect this holder. virtual void disconnect(SignalHolder& signal) = 0; }; typedef SlotList::iterator Iterator; typedef Iterator SlotID; typedef SlotList::const_iterator ConstIterator; SignalHolder() : m_emitting(0) {} ~SignalHolder() { // Disconnect this holder from all trackers. for (Trackers::iterator it = m_trackers.begin(), it_end = m_trackers.end(); it != it_end; ++it ) { (*it)->disconnect(*this); } } /// Remove a specific slot \c id from this signal void disconnect(SlotID slotIt) const { if(m_emitting) { // if we are emitting, we must not erase the actual element, as that would // invalidate iterators in the emit() function *slotIt = SlotPtr(); } else m_slots.erase( slotIt ); } /// Removes all slots connected to this void clear() { if(m_emitting) std::fill(m_slots.begin(), m_slots.end(), SlotPtr()); else m_slots.clear(); } void connectTracker(SignalHolder::Tracker& tracker) const { m_trackers.insert(&tracker); } void disconnectTracker(SignalHolder::Tracker& tracker) const { m_trackers.erase(&tracker); } protected: ConstIterator begin() const { return m_slots.begin(); } ConstIterator end() const { return m_slots.end(); } Iterator begin() { return m_slots.begin(); } Iterator end() { return m_slots.end(); } /// Connect a slot to this signal. Must only be called by child classes. SlotID connect(const SlotPtr& slot) const { return m_slots.insert(m_slots.end(), slot); } void begin_emitting() { ++m_emitting; } void end_emitting() { if(--m_emitting == 0) { // remove elements which belonged slots that detached themselves m_slots.erase(std::remove(m_slots.begin(), m_slots.end(), SlotPtr()), m_slots.end()); } } private: typedef std::set Trackers; mutable SlotList m_slots; ///< all slots connected to a signal mutable Trackers m_trackers; ///< all instances that tracks this signal. unsigned m_emitting; }; } // namespace SigImpl /// Specialization for three arguments. template class Signal: public SigImpl::SignalHolder { public: void emit(Arg1 arg1, Arg2 arg2, Arg3 arg3) { begin_emitting(); for ( Iterator it = begin(); it != end(); ++it ) { if(*it) static_cast &>(**it)(arg1, arg2, arg3); } end_emitting(); } template SlotID connect(const Functor& functor) const { return SignalHolder::connect(SlotPtr( new SlotImpl(functor) )); } SlotID connectSlot(const RefCount > &slot) const { return SignalHolder::connect(slot); } }; /// Specialization for two arguments. template class Signal: public SigImpl::SignalHolder { public: void emit(Arg1 arg1, Arg2 arg2) { begin_emitting(); for ( Iterator it = begin(); it != end(); ++it ) { if(*it) static_cast &>(**it)(arg1, arg2); } end_emitting(); } template SlotID connect(const Functor& functor) const { return SignalHolder::connect(SlotPtr( new SlotImpl(functor) )); } SlotID connectSlot(const RefCount > &slot) const { return SignalHolder::connect(slot); } }; /// Specialization for one argument. template class Signal: public SigImpl::SignalHolder { public: void emit(Arg1 arg) { begin_emitting(); for ( Iterator it = begin(); it != end(); ++it ) { if(*it) static_cast &>(**it)(arg); } end_emitting(); } template SlotID connect(const Functor& functor) const { return SignalHolder::connect(SlotPtr( new SlotImpl(functor) )); } SlotID connectSlot(const RefCount > &slot) const { return SignalHolder::connect(slot); } }; /// Specialization for no arguments. template <> class Signal: public SigImpl::SignalHolder { public: void emit() { begin_emitting(); for ( Iterator it = begin(); it != end(); ++it ) { if(*it) static_cast &>(**it)(); } end_emitting(); } template SlotID connect(const Functor& functor) const { return SignalHolder::connect(SlotPtr( new SlotImpl(functor) )); } SlotID connectSlot(const RefCount > &slot) const { return SignalHolder::connect(slot); } }; /** * Tracks a signal during it's life time. All signals connected using \c * SignalTracker::join will be erased when this instance dies. */ class SignalTracker: public SigImpl::SignalHolder::Tracker { public: /// Internal type, do not use. typedef std::map Connections; typedef Connections::iterator TrackID; ///< \c ID type for join/leave. ~SignalTracker() { leaveAll(); } /// Starts tracking a signal. /// @return A tracking ID template TrackID join(const Signal &sig, const Functor &functor) { return joinSlot(sig, RefCount >( new SlotImpl(functor) )); } template TrackID joinSlot(const Signal &sig, const RefCount > &slot) { ValueType value = ValueType(&sig, sig.connectSlot(slot)); std::pair ret = m_connections.insert(value); if ( !ret.second ) { // failed to insert this functor sig.disconnect(value.second); } sig.connectTracker(*this); return ret.first; } /// Leave tracking for a signal /// @param id the \c id from the previous \c join void leave(TrackID id) { // keep temporary, while disconnecting we can // in some strange cases get a call to this again ValueType tmp = *id; m_connections.erase(id); tmp.first->disconnect(tmp.second); tmp.first->disconnectTracker(*this); } /// Leave tracking for a signal /// @param sig the signal to leave template void leave(Signal &sig) { Iterator it = m_connections.find(&sig); if (it != m_connections.end()) { leave(it); } } void leaveAll() { // disconnect all connections for ( ; !m_connections.empty(); ) { leave(m_connections.begin()); } } protected: virtual void disconnect(SigImpl::SignalHolder& signal) { m_connections.erase(&signal); } private: typedef Connections::value_type ValueType; typedef Connections::iterator Iterator; /// holds all connections to different signals and slots. Connections m_connections; }; } // namespace FbTk #endif // FBTK_SIGNAL_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Slot.hh0000644000175000017500000000013112106662425017132 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.61981246 30 ctime=1360750008.507811616 fluxbox-1.3.5/src/FbTk/Slot.hh0000644000175000017500000001110612106662425015161 0ustar00mgmg00000000000000// Slot.hh for FbTk, Fluxbox Toolkit // Copyright (c) 2008 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_SLOT_HH #define FBTK_SLOT_HH #include "NotCopyable.hh" namespace FbTk { /// \namespace Implementation details for signals, do not use anything in this namespace namespace SigImpl { struct EmptyArg {}; /** A base class for all slots. It's purpose is to provide a virtual destructor and to enable the * Signal class to hold a pointer to a generic slot. */ class SlotBase: private FbTk::NotCopyable { public: virtual ~SlotBase() {} }; } // namespace SigImpl /** Declares a pure virtual function call operator with a specific number of arguments (depending * on the template specialization). This allows us to "call" any functor in an opaque way. */ template class Slot: public SigImpl::SlotBase { public: virtual ReturnType operator()(Arg1, Arg2, Arg3) = 0; }; /// Specialization for two arguments template class Slot: public SigImpl::SlotBase { public: virtual ReturnType operator()(Arg1, Arg2) = 0; }; /// Specialization for one argument template class Slot: public SigImpl::SlotBase { public: virtual ReturnType operator()(Arg1) = 0; }; /// Specialization for no arguments template class Slot: public SigImpl::SlotBase { public: virtual ReturnType operator()() = 0; }; /** A class which knows how to call a specific functor. It inherits from Slot and implemetents * the function call operator */ template class SlotImpl: public Slot { public: virtual ReturnType operator()(Arg1 arg1, Arg2 arg2, Arg3 arg3) { return static_cast(m_functor(arg1, arg2, arg3)); } SlotImpl(Functor functor) : m_functor(functor) {} private: Functor m_functor; }; /// Specialization for two arguments template class SlotImpl: public Slot { public: virtual ReturnType operator()(Arg1 arg1, Arg2 arg2) { return static_cast(m_functor(arg1, arg2)); } SlotImpl(Functor functor) : m_functor(functor) {} private: Functor m_functor; }; /// Specialization for one argument template class SlotImpl: public Slot { public: virtual ReturnType operator()(Arg1 arg1) { return static_cast(m_functor(arg1)); } SlotImpl(Functor functor) : m_functor(functor) {} private: Functor m_functor; }; /// Specialization for no arguments template class SlotImpl: public Slot { public: virtual ReturnType operator()() { return static_cast(m_functor()); } SlotImpl(Functor functor) : m_functor(functor) {} private: Functor m_functor; }; } // namespace FbTk #endif // FBTK_SLOT_H fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/CachedPixmap.cc0000644000175000017500000000013112106662425020525 xustar000000000000000030 mtime=1360749845.887812656 29 atime=1360749876.61981246 30 ctime=1360750008.507811616 fluxbox-1.3.5/src/FbTk/CachedPixmap.cc0000644000175000017500000000321612106662425016557 0ustar00mgmg00000000000000// CachedPixmap.hh // Copyright (c) 2006 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "CachedPixmap.hh" #include "ImageControl.hh" namespace FbTk { CachedPixmap::CachedPixmap( FbTk::ImageControl& ctrl ): m_pixmap( 0 ), m_ctrl( ctrl ) { } CachedPixmap::CachedPixmap( FbTk::ImageControl& ctrl, Pixmap pm ): m_pixmap( pm ), m_ctrl( ctrl ) { } CachedPixmap::~CachedPixmap() { destroy(); } void CachedPixmap::reset( Pixmap pm ) { destroy(); m_pixmap = pm; } void CachedPixmap::destroy() { if ( m_pixmap != 0 ) { m_ctrl.removeImage( m_pixmap ); } } } fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/CachedPixmap.hh0000644000175000017500000000013112106662425020537 xustar000000000000000030 mtime=1360749845.887812656 29 atime=1360749876.61581246 30 ctime=1360750008.511811615 fluxbox-1.3.5/src/FbTk/CachedPixmap.hh0000644000175000017500000000416412106662425016574 0ustar00mgmg00000000000000// CachedPixmap.hh // Copyright (c) 2006 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_CACHED_PIXMAP_H #define FBTK_CACHED_PIXMAP_H #include namespace FbTk { class ImageControl; /// holds cached pixmap and releases it from cache when it dies class CachedPixmap { public: /// @param ctrl the image cache control explicit CachedPixmap( FbTk::ImageControl& ctrl ); /** * @param ctrl cache control * @param pm pixmap to store */ CachedPixmap( FbTk::ImageControl& ctrl, Pixmap pm ); ~CachedPixmap(); operator Pixmap() const { return m_pixmap; } /** * Sets new pixmap and releases the old pixmap from cache * @param pm the new pixmap to set */ void reset( Pixmap pm ); /// @return pixmap Pixmap operator *() const { return m_pixmap; } public: /// releases pixmap from cache void destroy(); Pixmap m_pixmap; //< cached pixmap FbTk::ImageControl &m_ctrl; //< cache control }; } // namespace CachedPixmap #endif // FBTK_CACHED_PIXMAP fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/STLUtil.hh0000644000175000017500000000013112106662425017511 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.61581246 30 ctime=1360750008.511811615 fluxbox-1.3.5/src/FbTk/STLUtil.hh0000644000175000017500000000545712106662425015554 0ustar00mgmg00000000000000// STLUtil.cc for FbTk // Copyright (c) 2006 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_STLUTIL_HH #define FBTK_STLUTIL_HH /// contains useful utilities for STL namespace FbTk { namespace STLUtil { template struct IfThenElse; template struct IfThenElse { Ta& operator ()(Ta& ta, Tb& tb) const { return ta; } typedef Ta ResultType; }; template struct IfThenElse { Tb& operator ()(Ta& ta, Tb& tb) const { return tb; } typedef Tb ResultType; }; /// calls delete on each item in the container and then clears the container template void destroyAndClear(A &a) { typedef typename A::iterator iterator; iterator it = a.begin(); iterator it_end = a.end(); for (; it != it_end; ++it) delete (*it); a.clear(); } /// calls delete on each item value in the map and then clears the map template void destroyAndClearSecond(A &a) { typedef typename A::iterator iterator; iterator it = a.begin(); iterator it_end = a.end(); for (; it != it_end; ++it) delete it->second; a.clear(); } template F forAll(C& c, F f) { typedef typename C::iterator iterator; iterator i = c.begin(); iterator e = c.end(); for (; i != e; i++) { f(*i); } return f; } template F forAllIf(C& c, I i, F f) { typedef typename C::iterator iterator; iterator it = c.begin(); iterator end = c.end(); for (; it != end; ++it) { if (i(*it)) f(*it); } return f; } } // end namespace STLUtil } // end namespace FbTk #endif // STLUTIL_Hh fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Select2nd.hh0000644000175000017500000000013112106662425020034 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.61581246 30 ctime=1360750008.511811615 fluxbox-1.3.5/src/FbTk/Select2nd.hh0000644000175000017500000000274312106662425016072 0ustar00mgmg00000000000000// Select2nd.hh // Copyright (c) 2005 - 2006 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_SELECT2ND_HH #define FBTK_SELECT2ND_HH #include namespace FbTk { template class Select2nd:public std::unary_function { public: typename A::second_type operator () (const A &arg) const { return arg.second; } }; } // namespace FbTk #endif // FBTK_SELECT2ND_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/ITypeAheadable.hh0000644000175000017500000000013112106662425021012 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.61181246 30 ctime=1360750008.511811615 fluxbox-1.3.5/src/FbTk/ITypeAheadable.hh0000644000175000017500000000371212106662425017045 0ustar00mgmg00000000000000// ITypeAheadable.hh for FbTk - Fluxbox Toolkit // Copyright (c) 2007 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_ITYPEAHEADABLE_HH #define FBTK_ITYPEAHEADABLE_HH #include "FbString.hh" #ifdef HAVE_CCTYPE #include #else #include #endif // HAVE_CCTYPE namespace FbTk { // abstract base class providing access and validation class ITypeAheadable { public: virtual ~ITypeAheadable() { } virtual const std::string &iTypeString() const = 0; virtual bool isEnabled() { return true; } char iTypeChar(size_t i) const { return iTypeString()[i]; } bool iTypeCheckStringSize(size_t sz) const { return (iTypeString().size() > sz); } bool iTypeCompareChar(char ch, size_t sz) const { return (bool)iTypeCheckStringSize(sz) && tolower(iTypeChar(sz)) == tolower(ch); } }; } // end namespace FbTk #endif // FBTK_ITYPEAHEADABLE_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/SearchResult.cc0000644000175000017500000000013112106662425020603 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.61181246 30 ctime=1360750008.515811615 fluxbox-1.3.5/src/FbTk/SearchResult.cc0000644000175000017500000000400412106662425016631 0ustar00mgmg00000000000000// SearchResult.cc for FbTk - Fluxbox Toolkit // Copyright (c) 2007 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "SearchResult.hh" #include "ITypeAheadable.hh" namespace FbTk { void SearchResult::seek() { switch (m_results.size()) { case 0: break; case 1: m_seeked_string = m_results[0]->iTypeString(); break; default: bool seekforward = true; for (size_t i=1; i < m_results.size() && seekforward && m_results[0]->iTypeCheckStringSize(m_seeked_string.size()); i++) { if (!m_results[i]->iTypeCompareChar( m_results[0]->iTypeChar(m_seeked_string.size()), m_seeked_string.size())) { seekforward = false; } else if (i == m_results.size() - 1) { m_seeked_string += m_results[0]->iTypeChar(m_seeked_string.size()); i = 0; } } break; } } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/SearchResult.hh0000644000175000017500000000013112106662425020615 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.61181246 30 ctime=1360750008.515811615 fluxbox-1.3.5/src/FbTk/SearchResult.hh0000644000175000017500000000363112106662425016650 0ustar00mgmg00000000000000// SearchResult.hh for FbTk - Fluxbox Toolkit // Copyright (c) 2007 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_SEARCHRESULT_HH #define FBTK_SEARCHRESULT_HH #include #include namespace FbTk { class ITypeAheadable; class SearchResult { public: typedef std::vector < ITypeAheadable* > BaseItems; typedef BaseItems::iterator BaseItemsIt; SearchResult(const std::string &to_search_for): m_seeked_string(to_search_for) { } void add(ITypeAheadable* item) { m_results.push_back(item); } size_t size() const { return m_results.size(); } const BaseItems& result() const { return m_results; } const std::string& seekedString() const { return m_seeked_string; } void seek(); private: BaseItems m_results; std::string m_seeked_string; }; } // end namespace FbTk #endif // FBTK_SEARCHRESULT_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/TypeAhead.hh0000644000175000017500000000013112106662425020055 xustar000000000000000030 mtime=1360749845.895812656 29 atime=1360749876.60781246 30 ctime=1360750008.515811615 fluxbox-1.3.5/src/FbTk/TypeAhead.hh0000644000175000017500000001262012106662425016106 0ustar00mgmg00000000000000// TypeAhead.hh for FbTk - Fluxbox Toolkit // Copyright (c) 2007 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_TYPEAHEAD_HH #define FBTK_TYPEAHEAD_HH #include "ITypeAheadable.hh" #include "SearchResult.hh" namespace FbTk { template class TypeAhead { #if 0 // a class template can't be split into separate interface + implementation files, an interface summary is given here: public: void init(Items const &items); // accessors: int stringSize() const { return m_searchstr.size(); } Items matched() const; // modifiers: Items putCharacter(char ch); void putBackSpace(); void reset() private: SearchResults m_search_results; std::string m_searchstr; Items const *m_ref; // helper void fillValues(BaseItems const &search, ValueVec &fillin) const; // reverts to searchstate before current void revert(); // search performs iteration and sets state void search(char char_to_test); void doSearch(char to_test, Items const &items, SearchResult &mySearchResult) const; void doSearch(char to_test, BaseItems const &search, SearchResult &mySearchResult) const; #endif public: typedef std::vector < ITypeAheadable* > BaseItems; typedef BaseItems::const_iterator BaseItemscIt; typedef std::vector < SearchResult > SearchResults; typedef typename Items::const_iterator ItemscIt; void init(Items const &items) { m_ref = &items; } size_t stringSize() const { return m_searchstr.size(); } void seek() { if (!m_search_results.empty()) m_searchstr = m_search_results.back().seekedString(); } Items putCharacter(char ch) { if (isprint(ch)) search(ch); return matched(); } void putBackSpace() { if (!m_search_results.empty()) revert(); } void reset() { m_searchstr.clear(); m_search_results.clear(); } Items matched() const { Items last_matched; if (!m_search_results.empty()) fillValues(m_search_results.back().result(), last_matched); else return *m_ref; return last_matched; } private: SearchResults m_search_results; std::string m_searchstr; Items const *m_ref; // reference to vector we are operating on void fillValues(BaseItems const &search, Items &fillin) const { for (BaseItemscIt it = search.begin(); it != search.end(); ++it) { Item_Type tmp = dynamic_cast(*it); if (tmp) fillin.push_back(tmp); } } void revert() { m_search_results.pop_back(); if (m_search_results.empty()) m_searchstr.clear(); else m_searchstr = m_search_results.back().seekedString(); } void search(char char_to_test) { SearchResult mySearchResult(m_searchstr + char_to_test); size_t num_items = m_ref->size(); // check if we have already a searched set if (m_search_results.empty()) doSearch(char_to_test, *m_ref, mySearchResult); else { num_items = m_search_results.back().size(); doSearch(char_to_test, m_search_results.back().result(), mySearchResult); } if (mySearchResult.size() > 0 ) { if (mySearchResult.size() < num_items) { mySearchResult.seek(); m_search_results.push_back(mySearchResult); } m_searchstr += char_to_test; } } // iteration based on original list of items void doSearch(char to_test, Items const &items, SearchResult &mySearchResult) const { for (ItemscIt it = items.begin(); it != items.end(); ++it) { if ((*it)->iTypeCompareChar(to_test, stringSize()) && (*it)->isEnabled()) mySearchResult.add(*it); } } // iteration based on last SearchResult void doSearch(char to_test, BaseItems const &search, SearchResult &mySearchResult) const { for (BaseItemscIt it = search.begin(); it != search.end(); ++it) { if ((*it)->iTypeCompareChar(to_test, stringSize()) && (*it)->isEnabled()) mySearchResult.add(*it); } } }; // end Class TypeAhead } // end namespace FbTk #endif // FBTK_TYPEAHEAD_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/stringstream.hh0000644000175000017500000000013112106662425020733 xustar000000000000000030 mtime=1360749845.895812656 29 atime=1360749876.60781246 30 ctime=1360750008.515811615 fluxbox-1.3.5/src/FbTk/stringstream.hh0000644000175000017500000000321512106662425016764 0ustar00mgmg00000000000000// stringstream.hh // Copyright (c) 2005 - 2006 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_STRINGSTREAM_HH #define FBTK_STRINGSTREAM_HH #ifdef HAVE_CONFIG_H #include "config.h" #endif // HAVE_CONFIG_H #ifdef HAVE_SSTREAM #include #define FbTk_istringstream std::istringstream #define FbTk_ostringstream std::ostringstream #elif defined(HAVE_STRSTREAM) #include #define FbTk_istringstream std::istrstream #define FbTk_ostringstream std::ostrstream #else #error "You dont have sstream or strstream headers!" #endif // HAVE_STRSTREAM #endif // FBTK_STRINGSTREAM_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/MenuSeparator.cc0000644000175000017500000000013112106662425020764 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.60381246 30 ctime=1360750008.519811615 fluxbox-1.3.5/src/FbTk/MenuSeparator.cc0000644000175000017500000000425212106662425017017 0ustar00mgmg00000000000000// MenuSeparator.cc for FbTk - Fluxbox ToolKit // Copyright (c) 2004 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "MenuSeparator.hh" #include "GContext.hh" #include "MenuTheme.hh" #include "FbDrawable.hh" namespace FbTk { void MenuSeparator::draw(FbDrawable &drawable, const FbTk::ThemeProxy &theme, bool highlight, bool draw_foreground, bool draw_background, int x, int y, unsigned int width, unsigned int height) const { if (draw_background) { const GContext &tgc = // its a separator, it shouldn't be highlighted! or shown as disabled // (highlight ? theme->hiliteTextGC() : // (isEnabled() ? theme->frameTextGC() : theme->disableTextGC() ) ); theme->frameTextGC(); drawable.drawRectangle(tgc.gc(), x + theme->bevelWidth() + height + 1, y + height / 2, width - ((theme->bevelWidth() + height) * 2) - 1, 0); } } } fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/MenuSeparator.hh0000644000175000017500000000013112106662425020776 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.60381246 30 ctime=1360750008.519811615 fluxbox-1.3.5/src/FbTk/MenuSeparator.hh0000644000175000017500000000342612106662425017033 0ustar00mgmg00000000000000// MenuSeparator.hh for FbTk - Fluxbox ToolKit // Copyright (c) 2004 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef MENUSEPARATOR_HH #define MENUSEPARATOR_HH #include "MenuItem.hh" namespace FbTk { class MenuSeparator: public MenuItem { public: virtual void draw(FbDrawable &drawable, const FbTk::ThemeProxy &theme, bool highlight, bool draw_foreground, bool draw_background, int x, int y, unsigned int width, unsigned int height) const; virtual bool isEnabled() const { return false; } }; } // end namespace FbTk #endif // MENUSEPARATOR_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/KeyUtil.cc0000644000175000017500000000013112106662425017565 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.60381246 30 ctime=1360750008.519811615 fluxbox-1.3.5/src/FbTk/KeyUtil.cc0000644000175000017500000001367112106662425015625 0ustar00mgmg00000000000000// KeyUtil.cc for FbTk // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "KeyUtil.hh" #include "App.hh" #include #include #include #ifdef HAVE_CSTRING #include #else #include #endif namespace { struct t_modlist{ const char *str; unsigned int mask; bool operator == (const char *modstr) const { return (strcasecmp(str, modstr) == 0 && mask !=0); } }; const struct t_modlist modlist[] = { {"shift", ShiftMask}, {"lock", LockMask}, {"control", ControlMask}, {"mod1", Mod1Mask}, {"mod2", Mod2Mask}, {"mod3", Mod3Mask}, {"mod4", Mod4Mask}, {"mod5", Mod5Mask}, {"alt", Mod1Mask}, {"ctrl", ControlMask}, {0, 0} }; } namespace FbTk { std::auto_ptr KeyUtil::s_keyutil; KeyUtil &KeyUtil::instance() { if (s_keyutil.get() == 0) s_keyutil.reset(new KeyUtil()); return *s_keyutil.get(); } KeyUtil::KeyUtil() : m_modmap(0), m_numlock(0), m_scrolllock(0) { init(); } void KeyUtil::init() { loadModmap(); } KeyUtil::~KeyUtil() { if (m_modmap) XFreeModifiermap(m_modmap); } void KeyUtil::loadModmap() { if (m_modmap) XFreeModifiermap(m_modmap); m_modmap = XGetModifierMapping(App::instance()->display()); // find modifiers and set them for (int i=0, realkey=0; i<8; ++i) { for (int key=0; keymax_keypermod; ++key, ++realkey) { if (m_modmap->modifiermap[realkey] == 0) continue; KeySym ks = XkbKeycodeToKeysym(App::instance()->display(), m_modmap->modifiermap[realkey], 0, 0); switch (ks) { // we just want to clean the Lock modifier, not specifically the // XK_Caps_Lock key // the others tend to vary from distro to distro, though case XK_Scroll_Lock: m_scrolllock = modlist[i].mask; break; case XK_Num_Lock: m_numlock = modlist[i].mask; break; } } } } /** Grabs a key with the modifier and with numlock,capslock and scrollock */ void KeyUtil::grabKey(unsigned int key, unsigned int mod, Window win) { Display *display = App::instance()->display(); const unsigned int nummod = instance().numlock(); const unsigned int scrollmod = instance().scrolllock(); // Grab with numlock, capslock and scrlock for (int i = 0; i < 8; i++) { XGrabKey(display, key, mod | (i & 1 ? LockMask : 0) | (i & 2 ? nummod : 0) | (i & 4 ? scrollmod : 0), win, True, GrabModeAsync, GrabModeAsync); } } void KeyUtil::grabButton(unsigned int button, unsigned int mod, Window win, unsigned int event_mask, Cursor cursor) { Display *display = App::instance()->display(); const unsigned int nummod = instance().numlock(); const unsigned int scrollmod = instance().scrolllock(); // Grab with numlock, capslock and scrlock for (int i = 0; i < 8; i++) { XGrabButton(display, button, mod | (i & 1 ? LockMask : 0) | (i & 2 ? nummod : 0) | (i & 4 ? scrollmod : 0), win, False, event_mask, GrabModeAsync, GrabModeAsync, None, cursor); } } /** @return keycode of keystr on success else 0 */ unsigned int KeyUtil::getKey(const char *keystr) { KeyCode code = 0; if (keystr) { KeySym sym = XStringToKeysym(keystr); if (sym != NoSymbol) { code = XKeysymToKeycode(App::instance()->display(), sym); } } return code; } /** @return the modifier for the modstr else zero on failure. */ unsigned int KeyUtil::getModifier(const char *modstr) { if (!modstr) return 0; // find mod mask string for (unsigned int i=0; modlist[i].str !=0; i++) { if (modlist[i] == modstr) return modlist[i].mask; } return 0; } /// Ungrabs the keys void KeyUtil::ungrabKeys(Window win) { Display * display = App::instance()->display(); XUngrabKey(display, AnyKey, AnyModifier, win); } void KeyUtil::ungrabButtons(Window win) { Display * display = App::instance()->display(); XUngrabButton(display, AnyButton, AnyModifier, win); } unsigned int KeyUtil::keycodeToModmask(unsigned int keycode) { XModifierKeymap *modmap = instance().m_modmap; if (!modmap) return 0; // search through modmap for this keycode for (int mod=0; mod < 8; mod++) { for (int key=0; key < modmap->max_keypermod; ++key) { // modifiermap is an array with 8 sets of keycodes // each max_keypermod long, but in a linear array. if (modmap->modifiermap[modmap->max_keypermod*mod + key] == keycode) { return modlist[mod].mask; } } } // no luck return 0; } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/KeyUtil.hh0000644000175000017500000000013112106662425017577 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.59981246 30 ctime=1360750008.519811615 fluxbox-1.3.5/src/FbTk/KeyUtil.hh0000644000175000017500000000626512106662425015640 0ustar00mgmg00000000000000// KeyUtil.hh for FbTk // Copyright (c) 2003 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_KEYUTIL_HH #define FBTK_KEYUTIL_HH #include #include namespace FbTk { class KeyUtil { public: KeyUtil(); ~KeyUtil(); void init(); static KeyUtil &instance(); /** Grab the specified key */ static void grabKey(unsigned int key, unsigned int mod, Window win); static void grabButton(unsigned int button, unsigned int mod, Window win, unsigned int event_mask, Cursor cursor = None); /** convert the string to the keysym @return the keysym corresponding to the string, or zero */ static unsigned int getKey(const char *keystr); /** @return the modifier for the modstr else zero on failure. */ static unsigned int getModifier(const char *modstr); /** ungrabs all keys */ static void ungrabKeys(Window win); static void ungrabButtons(Window win); /** Strip out modifiers we want to ignore @return the cleaned state number */ unsigned int cleanMods(unsigned int mods) { // remove numlock, capslock, and scrolllock // and anything beyond Button5Mask return mods & ~(capslock() | numlock() | scrolllock()) & ((1<<13) - 1); } /** strip away everything which is actually not a modifier eg, xkb-keyboardgroups are encoded as bit 13 and 14 */ unsigned int isolateModifierMask(unsigned int mods) { return mods & (ShiftMask|LockMask|ControlMask|Mod1Mask|Mod2Mask|Mod3Mask|Mod4Mask|Mod5Mask); } /** Convert the specified key into appropriate modifier mask @return corresponding modifier mask */ static unsigned int keycodeToModmask(unsigned int keycode); int numlock() const { return m_numlock; } int capslock() const { return LockMask; } int scrolllock() const { return m_scrolllock; } private: void loadModmap(); XModifierKeymap *m_modmap; int m_numlock, m_scrolllock; static std::auto_ptr s_keyutil; }; } // end namespace FbTk #endif // FBTK_KEYUTIL_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/GContext.cc0000644000175000017500000000013112106662425017732 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.59981246 30 ctime=1360750008.519811615 fluxbox-1.3.5/src/FbTk/GContext.cc0000644000175000017500000000506712106662425015772 0ustar00mgmg00000000000000// GContext.cc for FbTk - fluxbox toolkit // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "GContext.hh" #include "App.hh" #include "FbDrawable.hh" #include "FbPixmap.hh" #include "Color.hh" #include "Font.hh" namespace FbTk { Display *GContext::m_display = 0; GContext::GContext(const FbTk::FbDrawable &drawable): m_gc(XCreateGC(drawable.display(), drawable.drawable(), 0, 0)) { if (m_display == 0) m_display = drawable.display(); setGraphicsExposure(false); } GContext::GContext(Drawable drawable): m_gc(XCreateGC(m_display != 0 ? m_display : FbTk::App::instance()->display(), drawable, 0, 0)) { if (m_display == 0) m_display = FbTk::App::instance()->display(); setGraphicsExposure(false); } GContext::GContext(Drawable d, const GContext &gc): m_gc(XCreateGC(m_display != 0 ? m_display : FbTk::App::instance()->display(), d, 0, 0)) { if (m_display == 0) m_display = FbTk::App::instance()->display(); setGraphicsExposure(false); copy(gc); } GContext::~GContext() { if (m_gc) XFreeGC(m_display, m_gc); } /// not implemented! //void GContext::setFont(const FbTk::Font &font) { //!! TODO //} void GContext::copy(GC gc) { // copy gc with mask: all XCopyGC(m_display, gc, ~0, m_gc); } void GContext::copy(const GContext &gc) { // copy X gc copy(gc.gc()); //!! TODO: copy our extended gcontext } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/GContext.hh0000644000175000017500000000013112106662425017744 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.59581246 30 ctime=1360750008.523811615 fluxbox-1.3.5/src/FbTk/GContext.hh0000644000175000017500000000752312106662425016003 0ustar00mgmg00000000000000// GContext.hh for FbTk - fluxbox toolkit // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_GCONTEXT_HH #define FBTK_GCONTEXT_HH #include "Color.hh" #include "FbPixmap.hh" namespace FbTk { class FbDrawable; class Font; /// wrapper for X GC class GContext { public: typedef enum { JOINMITER= JoinMiter, JOINROUND= JoinRound, JOINBEVEL= JoinBevel } JoinStyle; typedef enum { LINESOLID= LineSolid, LINEONOFFDASH= LineOnOffDash, LINEDOUBLEDASH= LineDoubleDash } LineStyle; typedef enum { CAPNOTLAST= CapNotLast, CAPBUTT= CapButt, CAPROUND= CapRound, CAPPROJECTING= CapProjecting } CapStyle; /// for FbTk drawable explicit GContext(const FbTk::FbDrawable &drawable); /// for X drawable explicit GContext(Drawable drawable); GContext(Drawable d, const FbTk::GContext &gc); virtual ~GContext(); void setForeground(const FbTk::Color &color) { setForeground(color.pixel()); } void setForeground(long pixel_value) { XSetForeground(m_display, m_gc, pixel_value); } void setBackground(const FbTk::Color &color) { setBackground(color.pixel()); } void setBackground(long pixel_value) { XSetBackground(m_display, m_gc, pixel_value); } void setTile(Drawable draw) { XSetTile(m_display, m_gc, draw); } void setTile(const FbTk::FbPixmap &draw) { setTile(draw.drawable()); } /// not implemented void setFont(const FbTk::Font &) {} /// set font id void setFont(int fid) { XSetFont(m_display, m_gc, fid); } void setGraphicsExposure(bool value) { XSetGraphicsExposures(m_display, m_gc, value); } void setFunction(int func) { XSetFunction(m_display, m_gc, func); } void setSubwindowMode(int mode) { XSetSubwindowMode(m_display, m_gc, mode); } void setFillStyle(int style) { XSetFillStyle(m_display, m_gc, style); } void setLineAttributes(unsigned int width, int line_style, int cap_style, int join_style) { XSetLineAttributes(m_display, m_gc, width, line_style, cap_style, join_style); } void copy(GC gc); void copy(const GContext &gc); GContext &operator = (const GContext ©_gc) { copy(copy_gc); return *this; } GContext &operator = (GC copy_gc) { copy(copy_gc); return *this; } GC gc() const { return m_gc; } private: GContext(const GContext &cont); static Display *m_display; // worth caching GC m_gc; }; } // end namespace FbTk #endif // FBTK_GCONTEXT_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/TextBox.cc0000644000175000017500000000013112106662425017574 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.59581246 30 ctime=1360750008.523811615 fluxbox-1.3.5/src/FbTk/TextBox.cc0000644000175000017500000003015412106662425015627 0ustar00mgmg00000000000000// TextBox.cc for FbTk - fluxbox toolkit // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "TextBox.hh" #include "Font.hh" #include "EventManager.hh" #include "App.hh" #include "KeyUtil.hh" #ifdef HAVE_CCTYPE #include #else #include #endif #ifdef HAVE_CSTRING #include #else #include #endif #ifdef HAVE_CSTDLIB #include #else #include #endif #include #include namespace FbTk { TextBox::TextBox(int screen_num, const Font &font, const std::string &text): FbWindow(screen_num, 0, 0, 1, 1, ExposureMask | KeyPressMask | ButtonPressMask), m_font(&font), m_text(text), m_gc(0), m_cursor_pos(0), m_start_pos(0), m_end_pos(0) { FbTk::EventManager::instance()->add(*this, *this); } TextBox::TextBox(const FbWindow &parent, const Font &font, const std::string &text): FbWindow(parent, 0, 0, 1, 1, ExposureMask | KeyPressMask | ButtonPressMask), m_font(&font), m_text(text), m_gc(0), m_cursor_pos(0), m_start_pos(0), m_end_pos(0) { FbTk::EventManager::instance()->add(*this, *this); } TextBox::~TextBox() { } void TextBox::setText(const FbTk::BiDiString &text) { m_text = text; m_start_pos = 0; cursorEnd(); adjustStartPos(); } void TextBox::setFont(const Font &font) { m_font = &font; } void TextBox::setGC(GC gc) { m_gc = gc; } void TextBox::setInputFocus() { XSetInputFocus(FbTk::App::instance()->display(), window(), RevertToParent, CurrentTime); } void TextBox::cursorHome() { m_start_pos = m_cursor_pos = 0; adjustEndPos(); } void TextBox::cursorEnd() { m_end_pos = text().size(); adjustStartPos(); m_cursor_pos = m_end_pos - m_start_pos; } void TextBox::cursorForward() { if (m_start_pos + cursorPosition() < m_end_pos) m_cursor_pos++; else if (m_end_pos < text().size()) { m_cursor_pos++; m_end_pos++; adjustStartPos(); } } void TextBox::cursorBackward() { if (cursorPosition()) m_cursor_pos--; else if (m_start_pos) { m_start_pos--; adjustEndPos(); } } void TextBox::backspace() { if (m_start_pos || cursorPosition()) { FbString t = text(); t.erase(m_start_pos + cursorPosition() - 1, 1); m_text.setLogical(t); if (cursorPosition()) setCursorPosition(cursorPosition() - 1); else m_start_pos--; adjustEndPos(); } } void TextBox::deleteForward() { if (m_start_pos + m_cursor_pos < m_end_pos) { FbString t = text(); t.erase(m_start_pos + m_cursor_pos, 1); m_text.setLogical(t); adjustEndPos(); } } void TextBox::insertText(const std::string &val) { FbString t = text(); t.insert(m_start_pos + cursorPosition(), val); m_text.setLogical(t); m_cursor_pos += val.size(); m_end_pos += val.size(); adjustPos(); } void TextBox::killToEnd() { if (cursorPosition() >= 0 && cursorPosition() < static_cast(text().size())) { FbString t = text(); t.erase(cursorPosition()); setText(t); } } void TextBox::clear() { FbWindow::clear(); // center text by default int center_pos = (height() + font().ascent())/2; if (gc() == 0) setGC(DefaultGC(FbTk::App::instance()->display(), screenNumber())); font().drawText(*this, screenNumber(), gc(), m_text.visual().c_str() + m_start_pos, m_end_pos - m_start_pos, 0, center_pos); // pos // draw cursor position int cursor_pos = font().textWidth(m_text.visual().c_str() + m_start_pos, m_cursor_pos) + 1; drawLine(gc(), cursor_pos, center_pos, cursor_pos, center_pos - font().height()); } void TextBox::moveResize(int x, int y, unsigned int width, unsigned int height) { FbWindow::moveResize(x, y, width, height); clear(); } void TextBox::resize(unsigned int width, unsigned int height) { FbWindow::resize(width, height); clear(); } void TextBox::exposeEvent(XExposeEvent &event) { clear(); } void TextBox::buttonPressEvent(XButtonEvent &event) { setInputFocus(); if (event.window == window()) { std::string::size_type i; std::string::size_type click_pos = m_end_pos; int delta = width(); int tmp = 0; for(i = m_start_pos; i <= m_end_pos; i++) { tmp = abs(static_cast (event.x - font().textWidth(m_text.visual().c_str() + m_start_pos, i - m_start_pos))); if (tmp < delta) { delta = tmp; click_pos = i; } } m_cursor_pos = click_pos - m_start_pos; clear(); } } void TextBox::keyPressEvent(XKeyEvent &event) { event.state = KeyUtil::instance().cleanMods(event.state); KeySym ks; char keychar[1]; XLookupString(&event, keychar, 1, &ks, 0); // a modifier key by itself doesn't do anything if (IsModifierKey(ks)) return; if (FbTk::KeyUtil::instance().isolateModifierMask(event.state)) { // handle keybindings with state if ((event.state & ControlMask) == ControlMask) { switch (ks) { case XK_Left: { unsigned int pos = findEmptySpaceLeft(); if (pos < m_start_pos){ m_start_pos = pos; m_cursor_pos = 0; } else if (m_start_pos > 0) { m_cursor_pos = pos - m_start_pos; } else { m_cursor_pos = pos; } adjustPos(); } break; case XK_Right: if (!m_text.logical().empty() && m_cursor_pos < m_text.logical().size()){ unsigned int pos = findEmptySpaceRight(); if (pos > m_start_pos) pos -= m_start_pos; else pos = 0; if (m_start_pos + pos <= m_end_pos) m_cursor_pos = pos; else if (m_end_pos < text().size()) { m_cursor_pos = pos; m_end_pos = pos; } adjustPos(); } break; case XK_BackSpace: { unsigned int pos = findEmptySpaceLeft(); FbString t = text(); t.erase(pos, m_cursor_pos - pos + m_start_pos); m_text.setLogical(t); if (pos < m_start_pos){ m_start_pos = pos; m_cursor_pos = 0; } else if (m_start_pos > 0) { m_cursor_pos = pos - m_start_pos; } else { m_cursor_pos = pos; } adjustPos(); } break; case XK_Delete: { if (text().empty() || m_cursor_pos >= text().size()) break; unsigned int pos = findEmptySpaceRight(); FbString t = text(); t.erase(m_cursor_pos + m_start_pos, pos - (m_cursor_pos + m_start_pos)); m_text.setLogical(t); adjustPos(); } break; } } } else { // no state switch (ks) { case XK_BackSpace: backspace(); break; case XK_Home: cursorHome(); break; case XK_End: cursorEnd(); break; case XK_Left: cursorBackward(); break; case XK_Right: cursorForward(); break; case XK_Delete: deleteForward(); break; case XK_KP_Insert: keychar[0] = '0'; break; case XK_KP_End: keychar[0] = '1'; break; case XK_KP_Down: keychar[0] = '2'; break; case XK_KP_Page_Down: keychar[0] = '3'; break; case XK_KP_Left: keychar[0] = '4'; break; case XK_KP_Begin: keychar[0] = '5'; break; case XK_KP_Right: keychar[0] = '6'; break; case XK_KP_Home: keychar[0] = '7'; break; case XK_KP_Up: keychar[0] = '8'; break; case XK_KP_Page_Up: keychar[0] = '9'; break; case XK_KP_Delete: keychar[0] = ','; break; } } if (isprint(keychar[0])) { std::string val; val += keychar[0]; insertText(val); } clear(); } void TextBox::setCursorPosition(int pos) { m_cursor_pos = pos < 0 ? 0 : pos; if (m_cursor_pos > text().size()) cursorEnd(); } void TextBox::adjustEndPos() { m_end_pos = text().size(); int text_width = font().textWidth(text().c_str() + m_start_pos, m_end_pos - m_start_pos); while (text_width > static_cast(width())) { m_end_pos--; text_width = font().textWidth(text().c_str() + m_start_pos, m_end_pos - m_start_pos); } } void TextBox::adjustStartPos() { const char* visual = m_text.visual().c_str(); int text_width = font().textWidth(visual, m_end_pos); if (text_width < static_cast(width())) return; int start_pos = 0; while (text_width > static_cast(width())) { start_pos++; text_width = font().textWidth(visual + start_pos, m_end_pos - start_pos); } // adjust cursorPosition() according relative to change to m_start_pos m_cursor_pos -= start_pos - m_start_pos; m_start_pos = start_pos; } unsigned int TextBox::findEmptySpaceLeft(){ // found the first left space symbol int pos = text().rfind(' ', (m_start_pos + m_cursor_pos) > 0 ? m_start_pos + m_cursor_pos - 1 : 0); // do we have one more space symbol near? int next_pos = -1; while (pos > 0 && (next_pos = text().rfind(' ', pos - 1)) > -1){ if (next_pos + 1 < pos) break; pos = next_pos; } if (pos < 0) pos = 0; return pos; } unsigned int TextBox::findEmptySpaceRight(){ // found the first right space symbol int pos = text().find(' ', m_start_pos + m_cursor_pos); // do we have one more space symbol near? int next_pos = -1; while (pos > -1 && pos < static_cast(text().size()) && (next_pos = text().find(' ', pos + 1)) > -1 ){ if (next_pos - 1 > pos) break; pos = next_pos; } if (pos < 0) pos = text().size() - 1; return pos + 1; // (+1) - sets cursor at the right. } void TextBox::adjustPos(){ if (m_start_pos + cursorPosition() < m_end_pos) adjustEndPos(); else adjustStartPos(); } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/TextBox.hh0000644000175000017500000000013112106662425017606 xustar000000000000000030 mtime=1360749845.895812656 29 atime=1360749876.59581246 30 ctime=1360750008.523811615 fluxbox-1.3.5/src/FbTk/TextBox.hh0000644000175000017500000000550112106662425015637 0ustar00mgmg00000000000000// TextBox.hh for FbTk - fluxbox toolkit // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_TEXTBOX_HH #define FBTK_TEXTBOX_HH #include "FbWindow.hh" #include "EventHandler.hh" #include "FbString.hh" namespace FbTk { class Font; class TextBox:public FbWindow, public EventHandler { public: TextBox(int screen_num, const Font &font, const std::string &text); TextBox(const FbWindow &parent, const Font &font, const std::string &text); virtual ~TextBox(); void setText(const FbTk::BiDiString &text); void setFont(const Font &font); void setGC(GC gc); void setCursorPosition(int cursor); void setInputFocus(); void cursorEnd(); void cursorHome(); void cursorForward(); void cursorBackward(); void deleteForward(); void insertText(const std::string &val); void backspace(); void killToEnd(); void moveResize(int x, int y, unsigned int width, unsigned int height); void resize(unsigned int width, unsigned int height); void clear(); void exposeEvent(XExposeEvent &event); void buttonPressEvent(XButtonEvent &event); void keyPressEvent(XKeyEvent &event); const FbString &text() const { return m_text.logical(); } const Font &font() const { return *m_font; } GC gc() const { return m_gc; } int cursorPosition() const { return m_cursor_pos; } int textStartPos(){ return m_start_pos; } unsigned int findEmptySpaceLeft(); unsigned int findEmptySpaceRight(); private: void adjustEndPos(); void adjustStartPos(); void adjustPos(); const FbTk::Font *m_font; BiDiString m_text; GC m_gc; std::string::size_type m_cursor_pos, m_start_pos, m_end_pos; }; } // end namespace FbTk #endif // FBTK_TEXTBOX_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/CompareEqual.hh0000644000175000017500000000013112106662425020567 xustar000000000000000030 mtime=1360749845.887812656 29 atime=1360749876.59181246 30 ctime=1360750008.523811615 fluxbox-1.3.5/src/FbTk/CompareEqual.hh0000644000175000017500000000377712106662425016635 0ustar00mgmg00000000000000// CompareEqual.hh // Copyright (c) 2004 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_COMPAREEQUAL_HH #define FBTK_COMPAREEQUAL_HH #include namespace FbTk { /// @brief compares one class function with a value type template class CompareEqual_base: public std::unary_function { public: typedef ValueType (ClassType::* Action)() const; typedef ValueType Value; CompareEqual_base(Action a, ValueType v):m_action(a), m_value(v) { } bool operator ()(const ClassType *instance) const { return (instance->*m_action)() == m_value; } private: Action m_action; Value m_value; }; // creates an CompareEqual_base object template inline CompareEqual_base CompareEqual(typename CompareEqual_base::Action action, B b) { return CompareEqual_base(action, b); } } // end namespace FbTk #endif // FBTK_COMPAREEQUAL_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Compose.hh0000644000175000017500000000013112106662425017616 xustar000000000000000030 mtime=1360749845.887812656 29 atime=1360749876.59181246 30 ctime=1360750008.527811615 fluxbox-1.3.5/src/FbTk/Compose.hh0000644000175000017500000000405012106662425015645 0ustar00mgmg00000000000000// Composer.hh // Copyright (c) 2003 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_COMPOSE_HH #define FBTK_COMPOSE_HH #include namespace FbTk { /// Composes two functions into one. /// Uses Arg for type B and then calls type A template class Compose_base: public std::unary_function { public: typedef typename A::result_type ResultTypeA; typedef typename A::argument_type ArgumentTypeA; typedef typename B::result_type ResultTypeB; typedef typename B::argument_type ArgumentTypeB; Compose_base(const A &a, const B &b):m_a(a), m_b(b) { } ResultTypeA operator () (const ArgumentTypeB &arg) const { return m_a(m_b(arg)); } private: A m_a; B m_b; }; // helper that creates a Compose_base template inline Compose_base Compose(const A& a, const B& b) { return Compose_base(a, b); } } // namespace FbTk #endif // FBTK_COMPOSE_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/PixmapWithMask.hh0000644000175000017500000000013112106662425021117 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.59181246 30 ctime=1360750008.527811615 fluxbox-1.3.5/src/FbTk/PixmapWithMask.hh0000644000175000017500000000371612106662425017156 0ustar00mgmg00000000000000// PixmapWithMask.hh for FbTk - Fluxbox ToolKit // Copyright (c) 2003 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_PIXMAPWITHMASK_HH #define FBTK_PIXMAPWITHMASK_HH #include "FbPixmap.hh" namespace FbTk { class PixmapWithMask { public: PixmapWithMask() { } PixmapWithMask(Pixmap pm, Pixmap mask):m_pixmap(pm), m_mask(mask) { } void scale(unsigned int width, unsigned int height) { pixmap().scale(width, height); mask().scale(width, height); } unsigned int width() const { return m_pixmap.width(); } unsigned int height() const { return m_pixmap.height(); } FbPixmap &pixmap() { return m_pixmap; } FbPixmap &mask() { return m_mask; } const FbPixmap &pixmap() const { return m_pixmap; } const FbPixmap &mask() const { return m_mask; } private: FbPixmap m_pixmap; FbPixmap m_mask; }; } // end namespace FbTk #endif // FBTK_PIXMAPWITHMASK_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Image.cc0000644000175000017500000000013112106662425017221 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.58781246 30 ctime=1360750008.527811615 fluxbox-1.3.5/src/FbTk/Image.cc0000644000175000017500000000767212106662425015265 0ustar00mgmg00000000000000// Image.cc for FbTk - Fluxbox ToolKit // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "Image.hh" #include "StringUtil.hh" #include "FileUtil.hh" #ifdef HAVE_CONFIG_H #include "config.h" #endif // HAVE_CONFIG_H #ifdef HAVE_XPM #include "ImageXPM.hh" #endif // HAVE_XPM #ifdef HAVE_IMLIB2 #include "ImageImlib2.hh" #endif // HAVE_IMLIB2 #include #include using std::string; using std::list; using std::set; namespace { typedef std::map ImageMap; typedef std::list StringList; ImageMap s_image_map; StringList s_search_paths; #ifdef HAVE_IMLIB2 FbTk::ImageImlib2 imlib2_loader; #endif #ifdef HAVE_XPM FbTk::ImageXPM xpm_loader; #endif } // end of anonymous namespace namespace FbTk { PixmapWithMask *Image::load(const string &filename, int screen_num) { if (filename.empty()) return NULL; // determine file ending string extension(StringUtil::toUpper(StringUtil::findExtension(filename))); // valid handle? if (s_image_map.find(extension) == s_image_map.end()) return NULL; string path = locateFile(filename); if (!path.empty()) return s_image_map[extension]->load(path, screen_num); return 0; } string Image::locateFile(const string &filename) { string path = StringUtil::expandFilename(filename); if (FileUtil::isRegularFile(path.c_str())) return path; string base = StringUtil::basename(filename); StringList::iterator it = s_search_paths.begin(); StringList::iterator it_end = s_search_paths.end(); for (; it != it_end; ++it) { path = StringUtil::expandFilename(*it) + "/" + base; if (FileUtil::isRegularFile(path.c_str())) return path; } return ""; } bool Image::registerType(const string &type, ImageBase &base) { string ucase_type = StringUtil::toUpper(type); // not empty and not this base? if (s_image_map[ucase_type] != 0 && s_image_map[ucase_type] != &base) return false; // already registered? if (s_image_map[ucase_type] == &base) return true; s_image_map[ucase_type] = &base; return true; } void Image::remove(ImageBase &base) { // find and remove all referenses to base ImageMap::iterator it = s_image_map.begin(); ImageMap::iterator it_end = s_image_map.end(); list remove_list; for (; it != it_end; ++it) { if (it->second == &base) remove_list.push_back(it->first); } while (!remove_list.empty()) { s_image_map.erase(remove_list.back()); remove_list.pop_back(); } } void Image::addSearchPath(const string &search_path) { s_search_paths.push_back(search_path); } void Image::removeSearchPath(const string &search_path) { s_search_paths.remove(search_path); } void Image::removeAllSearchPaths() { s_search_paths.clear(); } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Image.hh0000644000175000017500000000013112106662425017233 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.58781246 30 ctime=1360750008.527811615 fluxbox-1.3.5/src/FbTk/Image.hh0000644000175000017500000000454712106662425015275 0ustar00mgmg00000000000000// Image.hh for FbTk - Fluxbox ToolKit // Copyright (c) 2003 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_IMAGE_HH #define FBTK_IMAGE_HH #include #include #include namespace FbTk { class ImageBase; class PixmapWithMask; /// loads images namespace Image { /// @return an instance of PixmapWithMask on success, 0 on failure PixmapWithMask *load(const std::string &filename, int screen_num); /// for register file type and imagebase /// @return false on failure bool registerType(const std::string &type, ImageBase &base); /// removes a imagebase class from register /// @return false on failure void remove(ImageBase &base); /// adds a path to search images from void addSearchPath(const std::string &search_path); /// removes a path to search images from void removeSearchPath(const std::string &search_path); /// adds a path to search images from void removeAllSearchPaths(); /// locates an image in the search path std::string locateFile(const std::string &filename); } /// common interface for all image classes class ImageBase { public: virtual ~ImageBase() { Image::remove(*this); } virtual PixmapWithMask *load(const std::string &name, int screen_num) const = 0; }; } // end namespace FbTk #endif // IMAGE_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/XrmDatabaseHelper.hh0000644000175000017500000000013112106662425021544 xustar000000000000000030 mtime=1360749845.895812656 29 atime=1360749876.58381246 30 ctime=1360750008.531811615 fluxbox-1.3.5/src/FbTk/XrmDatabaseHelper.hh0000644000175000017500000000503112106662425017573 0ustar00mgmg00000000000000// XrmDatabaseHelper.hh // Copyright (c) 2002 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_XRMDATABASEHELPER_HH #define FBTK_XRMDATABASEHELPER_HH #include /** This is a helper for XrmDatabase when database goes out of scope the XrmDatabase variable will be destroyed. */ namespace FbTk { class XrmDatabaseHelper { public: XrmDatabaseHelper(char const * filename=0) : m_database(0) { if (filename != 0) load(filename); } ~XrmDatabaseHelper() { close(); } /// assignment operator XrmDatabaseHelper& operator=(const XrmDatabase& database) { if (database == m_database) // assignment to self return *this; if (m_database!=0) close(); m_database = database; return *this; } bool load(const char *filename) { if (filename == 0) return false; XrmDatabase db = XrmGetFileDatabase(filename); if (db == 0) return false; close(); // close old database m_database = db; // set new and return true return true; } void close() { if (m_database != 0) { XrmDestroyDatabase(m_database); m_database = 0; } } bool operator == (const XrmDatabase& database) const { return m_database == database; } XrmDatabase & operator*() { return m_database; } private: XrmDatabase m_database; }; } // namespace FbTk #endif // FBTK_XRMDATABASEHELPER_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/FbDrawable.cc0000644000175000017500000000013112106662425020170 xustar000000000000000030 mtime=1360749845.887812656 29 atime=1360749876.58381246 30 ctime=1360750008.531811615 fluxbox-1.3.5/src/FbTk/FbDrawable.cc0000644000175000017500000001316112106662425016222 0ustar00mgmg00000000000000// FbDrawable.cc for FbTk - Fluxbox ToolKit // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "FbDrawable.hh" #include "App.hh" namespace FbTk { Display *FbDrawable::s_display = 0; FbDrawable::FbDrawable() { if (s_display == 0) { s_display = FbTk::App::instance()->display(); } } void FbDrawable::copyArea(Drawable src, GC gc, int src_x, int src_y, int dest_x, int dest_y, unsigned int width, unsigned int height) { if (drawable() == 0 || src == 0 || gc == 0) return; XCopyArea(display(), src, drawable(), gc, src_x, src_y, width, height, dest_x, dest_y); } void FbDrawable::fillRectangle(GC gc, int x, int y, unsigned int width, unsigned int height) { if (drawable() == 0 || gc == 0) return; XFillRectangle(display(), drawable(), gc, x, y, width, height); } void FbDrawable::drawRectangle(GC gc, int x, int y, unsigned int width, unsigned int height) { if (drawable() == 0 || gc == 0) return; XDrawRectangle(display(), drawable(), gc, x, y, width, height); } void FbDrawable::drawLine(GC gc, int start_x, int start_y, int end_x, int end_y) { if (drawable() == 0 || gc == 0) return; XDrawLine(display(), drawable(), gc, start_x, start_y, end_x, end_y); } void FbDrawable::fillPolygon(GC gc, XPoint *points, int npoints, int shape, int mode) { if (drawable() == 0 || gc == 0 || points == 0 || npoints == 0) return; XFillPolygon(display(), drawable(), gc, points, npoints, shape, mode); } // x, y, width and height define a space within which we're drawing a triangle (centred) // scale defines number of triangles that'd fit in a space of 100 width x 100 height // (i.e. 200 = half size, 300 = a third). Its a bit backwards but it allows more flexibility void FbDrawable::drawTriangle(GC gc, FbDrawable::TriangleType type, int x, int y, unsigned int width, unsigned int height, int scale) { if (drawable() == 0 || gc == 0 || width == 0 || height == 0) return; XPoint pts[3]; if (scale < 100) scale = 100; // not bigger than the space allowed else if (scale > 10000) scale = 10000; // not too small... int arrowscale_n = scale; int arrowscale_d = 100; unsigned int ax = arrowscale_d * width / arrowscale_n; unsigned int ay = arrowscale_d * height / arrowscale_n; // if these aren't an even number, left and right arrows end up different if (type == FbTk::FbDrawable::LEFT || type == FbTk::FbDrawable::RIGHT) { if (( ax % 2 ) == 1) ax--; if (( ay % 2 ) == 1) ay--; } else { if (( ax % 2 ) == 0) ax--; } switch (type) { case FbTk::FbDrawable::LEFT: // start at the tip pts[0].x = (width / 2) - (ax / 2); pts[0].y = height / 2; pts[1].x = ax; pts[1].y = -ay / 2; pts[2].x = 0; pts[2].y = ay; break; case FbTk::FbDrawable::RIGHT: pts[0].x = (width / 2) + (ax / 2); pts[0].y = height / 2; pts[1].x = - ax; pts[1].y = ay / 2; pts[2].x = 0; pts[2].y = - ay; break; case FbTk::FbDrawable::UP: pts[0].x = (width / 2); pts[0].y = (height / 2) - (ay / 2)-1; pts[1].x = ax / 2; pts[1].y = ay+1; pts[2].x = - ax; pts[2].y = 0; break; case FbTk::FbDrawable::DOWN: /* I tried and tried, but couldn't get the left diagonal of the down arrow to be symmetrical with the right (for small widths)! So we opt for this setup. It is symmetrical with larger widths */ pts[0].x = (width / 2) ; pts[0].y = (height / 2) + (ay / 2); pts[1].x = -ax/2+1; pts[1].y = -ay; pts[2].x = ax-1; pts[2].y = 0; break; } // re-centre on the specified points pts[0].x += x; pts[0].y += y; fillPolygon(gc, pts, 3, Convex, CoordModePrevious); } XImage *FbDrawable::image(int x, int y, unsigned int width, unsigned int height) const { return XGetImage(display(), drawable(), x, y, width, height, AllPlanes, // plane mask ZPixmap); } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/FbDrawable.hh0000644000175000017500000000013112106662425020202 xustar000000000000000030 mtime=1360749845.887812656 29 atime=1360749876.58381246 30 ctime=1360750008.531811615 fluxbox-1.3.5/src/FbTk/FbDrawable.hh0000644000175000017500000000573212106662425016241 0ustar00mgmg00000000000000// FbDrawable.hh for FbTk - Fluxbox ToolKit // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_FBDRAWABLE_HH #define FBTK_FBDRAWABLE_HH #include namespace FbTk { /// Basic drawing functions for X drawables class FbDrawable { public: FbDrawable(); virtual ~FbDrawable() { } virtual void copyArea(Drawable src, GC gc, int src_x, int src_y, int dest_x, int dest_y, unsigned int width, unsigned int height); virtual void fillRectangle(GC gc, int x, int y, unsigned int width, unsigned int height); virtual void drawRectangle(GC gc, int x, int y, unsigned int width, unsigned int height); virtual void drawLine(GC gc, int start_x, int start_y, int end_x, int end_y); virtual void fillPolygon(GC gc, XPoint *points, int npoints, int shape, int mode); /// type of arrow that should be drawn enum TriangleType { LEFT, RIGHT, UP, DOWN }; // x, y, width and height define a space within which we're drawing a triangle // scale defines number of triangles that'd fit in a space of 100 width x 100 height // (i.e. 200 = half size, 300 = a third). virtual void drawTriangle(GC gc, TriangleType type, int x, int y, unsigned int width, unsigned int height, int scale); virtual XImage *image(int x, int y, unsigned int width, unsigned int height) const; /// X drawable virtual Drawable drawable() const = 0; virtual unsigned int width() const = 0; virtual unsigned int height() const = 0; virtual unsigned int depth() const = 0; static Display *display() { return s_display; } protected: static Display *s_display; // display connection }; } // end namespace FbTk #endif // FBTK_FBDRAWABLE_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/FbPixmap.cc0000644000175000017500000000013112106662425017705 xustar000000000000000030 mtime=1360749845.887812656 29 atime=1360749876.57981246 30 ctime=1360750008.531811615 fluxbox-1.3.5/src/FbTk/FbPixmap.cc0000644000175000017500000003672012106662425015745 0ustar00mgmg00000000000000// FbPixmap.cc for FbTk - Fluxbox ToolKit // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "FbPixmap.hh" #include "App.hh" #include "GContext.hh" #include "Transparent.hh" #include "FbWindow.hh" #include "TextUtils.hh" #include #include #include #include #ifdef HAVE_CSTRING #include #else #include #endif using std::cerr; namespace FbTk { namespace { std::vector s_root_pixmaps; struct RootProps { const char* name; Atom atom; }; struct RootProps root_props[] = { { "_XROOTPMAP_ID", None }, { "_XSETROOT_ID", None } }; void checkAtoms() { Display* display = FbTk::App::instance()->display(); for (size_t i = 0; i < sizeof(root_props)/sizeof(RootProps); ++i) { if (root_props[i].atom == None) { root_props[i].atom = XInternAtom(display, root_props[i].name, False); } } } } // end of anonymous namespace FbPixmap::FbPixmap():m_pm(0), m_width(0), m_height(0), m_depth(0), m_dont_free(false) { } FbPixmap::FbPixmap(const FbPixmap &the_copy):FbDrawable(), m_pm(0), m_width(0), m_height(0), m_depth(0), m_dont_free(false) { copy(the_copy); } FbPixmap::FbPixmap(Pixmap pm):m_pm(0), m_width(0), m_height(0), m_depth(0), m_dont_free(false) { if (pm == 0) return; // assign X pixmap to this (*this) = pm; } FbPixmap::FbPixmap(const FbDrawable &src, unsigned int width, unsigned int height, unsigned int depth):m_pm(0), m_width(0), m_height(0), m_depth(0), m_dont_free(false) { create(src.drawable(), width, height, depth); } FbPixmap::FbPixmap(Drawable src, unsigned int width, unsigned int height, unsigned int depth):m_pm(0), m_width(0), m_height(0), m_depth(0), m_dont_free(false) { create(src, width, height, depth); } FbPixmap::~FbPixmap() { free(); } FbPixmap &FbPixmap::operator = (const FbPixmap &the_copy) { copy(the_copy); return *this; } FbPixmap &FbPixmap::operator = (Pixmap pm) { // free pixmap before we set new free(); if (pm == 0) return *this; // get width, height and depth for the pixmap Window root; int x, y; unsigned int border_width, bpp; if (!XGetGeometry(display(), pm, &root, &x, &y, &m_width, &m_height, &border_width, &bpp)) return *this; m_depth = bpp; m_pm = pm; return *this; } void FbPixmap::copy(const FbPixmap &the_copy) { /* This function previously retained the old pixmap and copied in the new contents if they had the same dimensions. This broke the image cache, so we don't do that now. If you want to do it, then you'll need to invalidate all copies of this pixmap in the cache */ free(); if (the_copy.drawable() != 0) { create(the_copy.drawable(), the_copy.width(), the_copy.height(), the_copy.depth()); if (drawable()) { GContext gc(drawable()); copyArea(the_copy.drawable(), gc.gc(), 0, 0, 0, 0, width(), height()); } } } // screen doesn't count if depth is "zero"... void FbPixmap::copy(Pixmap pm, unsigned int depth, int screen_num) { free(); if (pm == 0) return; // get width, height and depth for the pixmap Window root; int x, y; unsigned int border_width, bpp; unsigned int new_width, new_height; if (!XGetGeometry(display(), pm, &root, &x, &y, &new_width, &new_height, &border_width, &bpp)) return; if (depth == 0) depth = bpp; // create new pixmap and copy area create(root, new_width, new_height, depth); GC gc = XCreateGC(display(), drawable(), 0, 0); if (depth == bpp) { XCopyArea(display(), pm, drawable(), gc, 0, 0, width(), height(), 0, 0); } else { XSetForeground(display(), gc, Color("black", screen_num).pixel()); XSetBackground(display(), gc, Color("white", screen_num).pixel()); XCopyPlane(display(), pm, drawable(), gc, 0, 0, width(), height(), 0, 0, 1); } XFreeGC(display(), gc); } void FbPixmap::rotate(FbTk::Orientation orient) { if (orient == ROT0) return; unsigned int oldw = width(), oldh = height(); unsigned int neww = oldw, newh = oldh; translateSize(orient, neww, newh); // reverse height/width for new pixmap FbPixmap new_pm(drawable(), neww, newh, depth()); // width|height could be 0. this happens (for example) if // the systemtray-tool is ROT90. in that case 'src_image' // becomes NULL and caused a SIGSEV upon XDestroyImage() // TODO: catch dimensions with '0' earlier? // // make an image copy XImage *src_image = XGetImage(display(), drawable(), 0, 0, // pos oldw, oldh, // size ~0, // plane mask ZPixmap); // format if (src_image) { GContext gc(drawable()); if (orient == ROT180) { unsigned int srcx, srcy, destx, desty; for (srcy = 0, desty = oldh; srcy < oldh; ++srcy, --desty) { for (srcx = 0, destx = oldw; srcx < oldw; ++srcx, --destx) { gc.setForeground(XGetPixel(src_image, srcx, srcy)); XDrawPoint(display(), new_pm.drawable(), gc.gc(), destx, desty); } } } else { // need to flip x and y // set start, end and direction based on rotation // NOTE that startx etc are in the direction of the OLD pixmap unsigned int startx = 0, starty = 0; int dirx = 0, diry = 0; switch (orient) { case ROT90: startx = neww-1; starty = 0; dirx = -1; diry = 1; break; case ROT270: startx = 0; starty = newh-1; dirx = 1; diry = -1; break; default: // kill warning break; } // copy new area unsigned int srcx, srcy, destx, desty; for (srcy = 0, destx = startx; srcy < oldh; ++srcy, destx+=dirx) { for (srcx = 0, desty = starty; srcx < oldw; ++srcx, desty+=diry) { gc.setForeground(XGetPixel(src_image, srcx, srcy)); XDrawPoint(display(), new_pm.drawable(), gc.gc(), destx, desty); } } } XDestroyImage(src_image); } // free old pixmap and set new from new_pm free(); m_width = new_pm.width(); m_height = new_pm.height(); m_depth = new_pm.depth(); m_pm = new_pm.release(); } void FbPixmap::scale(unsigned int dest_width, unsigned int dest_height) { if (drawable() == 0 || (dest_width == width() && dest_height == height())) return; XImage *src_image = XGetImage(display(), drawable(), 0, 0, // pos width(), height(), // size ~0, // plane mask ZPixmap); // format if (src_image == 0) return; // create new pixmap with dest size FbPixmap new_pm(drawable(), dest_width, dest_height, depth()); GContext gc(drawable()); // calc zoom float zoom_x = static_cast(width())/static_cast(dest_width); float zoom_y = static_cast(height())/static_cast(dest_height); // start scaling float src_x = 0, src_y = 0; for (unsigned int tx=0; tx < dest_width; ++tx, src_x += zoom_x) { src_y = 0; for (unsigned int ty=0; ty < dest_height; ++ty, src_y += zoom_y) { gc.setForeground(XGetPixel(src_image, static_cast(src_x), static_cast(src_y))); XDrawPoint(display(), new_pm.drawable(), gc.gc(), tx, ty); } } XDestroyImage(src_image); // free old pixmap and set new from new_pm free(); m_width = new_pm.width(); m_height = new_pm.height(); m_depth = new_pm.depth(); m_pm = new_pm.release(); } void FbPixmap::tile(unsigned int dest_width, unsigned int dest_height) { if (drawable() == 0 || (dest_width == width() && dest_height == height())) return; FbPixmap new_pm(drawable(), width(), height(), depth()); new_pm.copy(m_pm, 0, 0); resize(dest_width, dest_height); FbTk::GContext gc(*this); gc.setTile(new_pm); gc.setFillStyle(FillTiled); fillRectangle(gc.gc(), 0, 0, dest_width, dest_height); } void FbPixmap::resize(unsigned int width, unsigned int height) { FbPixmap pm(drawable(), width, height, depth()); *this = pm.release(); } Pixmap FbPixmap::release() { Pixmap ret = m_pm; m_pm = 0; m_width = 0; m_height = 0; m_depth = 0; return ret; } // returns whether or not the background was changed bool FbPixmap::rootwinPropertyNotify(int screen_num, Atom atom) { if (!FbTk::Transparent::haveRender()) return false; checkAtoms(); for (size_t i = 0; i < sizeof(root_props)/sizeof(RootProps); ++i) { if (root_props[i].atom == atom) { Pixmap root_pm = None; Atom real_type; int real_format; unsigned long items_read, items_left; unsigned long *data; if (XGetWindowProperty(display(), RootWindow(display(), screen_num), root_props[i].atom, 0l, 1l, False, XA_PIXMAP, &real_type, &real_format, &items_read, &items_left, (unsigned char **) &data) == Success) { if (real_format == 32 && items_read == 1) { root_pm = (Pixmap) (*data); } XFree(data); if (root_pm != None) return setRootPixmap(screen_num, root_pm); } return false; } } return false; } // returns whether or not the background was changed bool FbPixmap::setRootPixmap(int screen_num, Pixmap pm) { if (s_root_pixmaps.empty()) { int i; for (i = 0; i < ScreenCount(display()); ++i) s_root_pixmaps.push_back(None); } if (s_root_pixmaps[screen_num] != pm) { s_root_pixmaps[screen_num] = pm; FbWindow::updatedAlphaBackground(screen_num); return true; } return false; } Pixmap FbPixmap::getRootPixmap(int screen_num, bool force_update) { /* if (!FbTk::Transparent::haveRender()) return None; */ // check and see if if we have the pixmaps in cache if (!s_root_pixmaps.empty() && !force_update) return s_root_pixmaps[screen_num]; checkAtoms(); // else setup pixmap cache int numscreens = ScreenCount(display()); for (int i=0; i < numscreens; ++i) { Atom real_type; int real_format; unsigned long items_read, items_left; unsigned long *data; static bool print_error = true; // print error_message only once Pixmap root_pm = None; unsigned int prop = 0; for (prop = 0; prop < sizeof(root_props)/sizeof(RootProps); ++prop) { if (XGetWindowProperty(display(), RootWindow(display(), i), root_props[prop].atom, 0l, 1l, False, XA_PIXMAP, &real_type, &real_format, &items_read, &items_left, (unsigned char **) &data) == Success) { if (real_format == 32 && items_read == 1) { if (print_error && strcmp(root_props[prop].name, "_XSETROOT_ID") == 0) { static const char* error_message = { "\n\n !!! WARNING WARNING WARNING WARNING !!!!!\n" " if you experience problems with transparency:\n" " you are using a wallpapersetter that \n" " uses _XSETROOT_ID .. which we do not support.\n" " consult 'fbsetbg -i' or try any other wallpapersetter\n" " that uses _XROOTPMAP_ID !\n" " !!! WARNING WARNING WARNING WARNING !!!!!!\n\n" }; cerr< #endif // HAVE_XRENDER #include #include #ifdef HAVE_XRENDER using std::cerr; using std::endl; #endif // HAVE_XRENDER namespace { #ifdef HAVE_XRENDER Picture createAlphaPic(Window drawable, int alpha) { Display *disp = FbTk::App::instance()->display(); _FB_USES_NLS; // try to find a specific render format XRenderPictFormat pic_format; pic_format.type = PictTypeDirect; pic_format.depth = 8; // alpha with bit depth 8 pic_format.direct.alphaMask = 0xff; XRenderPictFormat *format = XRenderFindFormat(disp, PictFormatType | PictFormatDepth | PictFormatAlphaMask, &pic_format, 0); if (format == 0) { cerr<<"FbTk::Transparent: "<<_FBTK_CONSOLETEXT(Error, NoRenderFormat, "Warning: Failed to find valid format for alpha.", "transparency requires a pict format, can't get one...")<display(); int major_opcode, first_event, first_error; if (XQueryExtension(disp, "RENDER", &major_opcode, &first_event, &first_error)) { // we have XRENDER support s_render = true; if (XQueryExtension(disp, "Composite", &major_opcode, &first_event, &first_error)) { // we have Composite support s_composite = true; s_use_composite = true; } } s_init = true; } void Transparent::usePseudoTransparent(bool force) { if (!s_init) init(); s_use_composite = (!force && s_composite); } bool Transparent::haveComposite(bool for_real) { if (!s_init) init(); if (for_real) return s_composite; else return s_use_composite; } Transparent::Transparent(Drawable src, Drawable dest, int alpha, int screen_num): m_alpha_pic(0), m_src_pic(0), m_dest_pic(0), m_source(src), m_dest(dest), m_alpha(alpha) { Display *disp = FbTk::App::instance()->display(); // check for Extension support if (!s_init) init(); #ifdef HAVE_XRENDER if (!s_render) return; allocAlpha(m_alpha); XRenderPictFormat *format = XRenderFindVisualFormat(disp, DefaultVisual(disp, screen_num)); if (src != 0 && format != 0) { m_src_pic = XRenderCreatePicture(disp, src, format, 0, 0); } if (dest != 0 && format != 0) { m_dest_pic = XRenderCreatePicture(disp, dest, format, 0, 0); } #endif // HAVE_XRENDER } Transparent::~Transparent() { #ifdef HAVE_XRENDER if (m_alpha_pic != 0 && s_render) freeAlpha(); Display *disp = FbTk::App::instance()->display(); if (m_dest_pic != 0 && s_render) XRenderFreePicture(disp, m_dest_pic); if (m_src_pic != 0 && s_render) XRenderFreePicture(disp, m_src_pic); #endif // HAVE_XRENDER } void Transparent::setAlpha(int alpha) { if (m_source == 0 || !s_render) return; freeAlpha(); allocAlpha(alpha); } void Transparent::freeDest() { #ifdef HAVE_XRENDER if (m_dest_pic != 0) { Display *disp = FbTk::App::instance()->display(); XRenderFreePicture(disp, m_dest_pic); m_dest_pic = 0; } m_dest = None; #endif } void Transparent::setDest(Drawable dest, int screen_num) { #ifdef HAVE_XRENDER if (m_dest == dest || !s_render) return; Display *disp = FbTk::App::instance()->display(); freeDest(); // create new dest pic if we have a valid dest drawable if (dest != 0) { XRenderPictFormat *format = XRenderFindVisualFormat(disp, DefaultVisual(disp, screen_num)); if (format == 0) { _FB_USES_NLS; cerr<<"FbTk::Transparent: "; fprintf(stderr, _FBTK_CONSOLETEXT(Error, NoRenderVisualFormat, "Failed to find format for screen(%d)", "XRenderFindVisualFormat failed... include %d for screen number"). c_str(), screen_num); cerr<display(); if (m_src_pic != 0) { XRenderFreePicture(disp, m_src_pic); m_src_pic = 0; } m_source = source; // create new source pic if we have a valid source drawable if (m_source != 0) { XRenderPictFormat *format = XRenderFindVisualFormat(disp, DefaultVisual(disp, screen_num)); if (format == 0) { _FB_USES_NLS; cerr<<"FbTk::Transparent: "; fprintf(stderr, _FBTK_CONSOLETEXT(Error, NoRenderVisualFormat, "Failed to find format for screen(%d)", "XRenderFindVisualFormat failed... include %d for screen number"). c_str(), screen_num); cerr<display(), PictOpOver, m_src_pic, m_alpha_pic, m_dest_pic, src_x, src_y, 0, 0, dest_x, dest_y, width, height); #endif // HAVE_XRENDER } void Transparent::allocAlpha(int alpha) { #ifdef HAVE_XRENDER if (m_source == 0 || !s_render) return; if (m_alpha_pic != 0) freeAlpha(); m_alpha_pic = createAlphaPic(m_source, alpha); m_alpha = alpha; #endif // HAVE_XRENDER } void Transparent::freeAlpha() { #ifdef HAVE_XRENDER if (s_render && m_alpha_pic != 0) XRenderFreePicture(FbTk::App::instance()->display(), m_alpha_pic); #endif // HAVE_XRENDER m_alpha_pic = 0; m_alpha = 255; } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Transparent.hh0000644000175000017500000000013112106662425020512 xustar000000000000000030 mtime=1360749845.895812656 29 atime=1360749876.57581246 30 ctime=1360750008.535811615 fluxbox-1.3.5/src/FbTk/Transparent.hh0000644000175000017500000000531512106662425016546 0ustar00mgmg00000000000000// Transparent.hh for FbTk - Fluxbox Toolkit // Copyright (c) 2003 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_TRANSPARENT_HH #define FBTK_TRANSPARENT_HH #include namespace FbTk { /// renders to drawable together with an alpha mask class Transparent { public: Transparent(Drawable source, Drawable dest, int alpha, int screen_num); ~Transparent(); /// sets alpha value void setAlpha(int alpha); /// sets source drawable void setSource(Drawable src, int screen_num); /// sets destination drawable void setDest(Drawable dest, int screen_num); void freeDest(); /** renders to dest from src with specified coordinates and size */ void render(int src_x, int src_y, int dest_x, int dest_y, unsigned int width, unsigned int height) const; int alpha() const { return m_alpha; } Drawable dest() const { return m_dest; } Drawable source() const { return m_source; } static bool haveComposite(bool for_real = false); static bool haveRender() { if (!s_init) init(); return s_render; } static void usePseudoTransparent(bool force); private: void freeAlpha(); void allocAlpha(int newval); unsigned long m_alpha_pic; unsigned long m_src_pic; unsigned long m_dest_pic; Drawable m_source, m_dest; unsigned char m_alpha; static bool s_init; static bool s_render; ///< wheter we have RENDER support static bool s_composite; ///< wheter we have Composite support static bool s_use_composite; ///< whether or not to use Composite static void init(); }; } // end namespace FbTk #endif // FBTK_TRANSPARENT_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/AutoReloadHelper.cc0000644000175000017500000000013112106662425021376 xustar000000000000000030 mtime=1360749845.887812656 29 atime=1360749876.57581246 30 ctime=1360750008.535811615 fluxbox-1.3.5/src/FbTk/AutoReloadHelper.cc0000644000175000017500000000444612106662425017436 0ustar00mgmg00000000000000// AutoReloadHelper.cc // Copyright (c) 2008 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "AutoReloadHelper.hh" #include "FileUtil.hh" #include "StringUtil.hh" namespace FbTk { void AutoReloadHelper::checkReload() { if (!m_reload_cmd.get()) return; TimestampMap::const_iterator it = m_timestamps.begin(); TimestampMap::const_iterator it_end = m_timestamps.end(); for (; it != it_end; ++it) { if (FileUtil::getLastStatusChangeTimestamp(it->first.c_str()) != it->second) { reload(); return; } } } void AutoReloadHelper::setMainFile(const std::string& file) { std::string expanded_file = StringUtil::expandFilename(file); if (expanded_file == m_main_file) return; m_main_file = expanded_file; reload(); } void AutoReloadHelper::addFile(const std::string& file) { if (file.empty()) return; std::string expanded_file = StringUtil::expandFilename(file); m_timestamps[expanded_file] = FileUtil::getLastStatusChangeTimestamp(expanded_file.c_str()); } void AutoReloadHelper::reload() { if (!m_reload_cmd.get()) return; m_timestamps.clear(); addFile(m_main_file); m_reload_cmd->execute(); } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/AutoReloadHelper.hh0000644000175000017500000000013112106662425021410 xustar000000000000000030 mtime=1360749845.887812656 29 atime=1360749876.57181246 30 ctime=1360750008.535811615 fluxbox-1.3.5/src/FbTk/AutoReloadHelper.hh0000644000175000017500000000343612106662425017446 0ustar00mgmg00000000000000// AutoReloadHelper.hh // Copyright (c) 2008 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef AUTORELOADHELPER_HH #define AUTORELOADHELPER_HH #include #include #include #include "Command.hh" #include "RefCount.hh" namespace FbTk { class AutoReloadHelper { public: void setMainFile(const std::string& filename); void addFile(const std::string& filename); void setReloadCmd(RefCount > cmd) { m_reload_cmd = cmd; } void checkReload(); void reload(); private: RefCount > m_reload_cmd; std::string m_main_file; typedef std::map TimestampMap; TimestampMap m_timestamps; }; } // end namespace FbTk #endif // AUTORELOADHELPER_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/FbString.cc0000644000175000017500000000013112106662425017715 xustar000000000000000030 mtime=1360749845.887812656 29 atime=1360749876.57181246 30 ctime=1360750008.539811615 fluxbox-1.3.5/src/FbTk/FbString.cc0000644000175000017500000002175212106662425015754 0ustar00mgmg00000000000000// FbString.cc for fluxbox // Copyright (c) 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // Copyright (c) 2006 Simon Bowden (rathnor at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "FbString.hh" #ifdef HAVE_CERRNO #include #else #include #endif #ifdef HAVE_CSTRING #include #else #include #endif #ifdef HAVE_CSTDLIB #include #else #include #endif #ifdef HAVE_CSTDIO #include #else #include #endif #include #include #include #include #ifndef HAVE_ICONV typedef int iconv_t; #endif // HAVE_ICONV #ifdef HAVE_FRIBIDI #include #endif #ifdef DEBUG using std::cerr; using std::endl; #endif // DEBUG namespace { const iconv_t ICONV_NULL = (iconv_t)(-1); #ifdef HAVE_FRIBIDI FbTk::FbString makeVisualFromLogical(const FbTk::FbString& src) { FriBidiCharType base = FRIBIDI_TYPE_N; // reuse allocated memory for reencoding / reordering static std::vector us; static std::vector out_us; static FbTk::FbString result; const size_t S = src.size() + 1; const size_t S4 = S * 4; if (us.capacity() < S) us.reserve(S); if (out_us.capacity() < S) out_us.reserve(S); if (result.capacity() < S4) result.reserve(S4); us.resize(S); FriBidiStrIndex len = fribidi_charset_to_unicode(FRIBIDI_CHAR_SET_UTF8, const_cast(src.c_str()), S - 1, &us[0]); out_us.resize(S); fribidi_log2vis(&us[0], len, &base, &out_us[0], NULL, NULL, NULL); result.resize(S4); len = fribidi_unicode_to_charset(FRIBIDI_CHAR_SET_UTF8, &out_us[0], len, &result[0]); result.resize(len); // trim to currently used chars return result; } #endif } // end of anonymous namespace namespace FbTk { BiDiString::BiDiString(const FbString& logical) #ifdef HAVE_FRIBIDI : m_visual_dirty(false) #endif { if (!logical.empty()) setLogical(logical); } const FbString& BiDiString::setLogical(const FbString& logical) { m_logical = logical; #if HAVE_FRIBIDI if (m_logical.empty()) { m_visual_dirty = false; m_visual.clear(); } else { m_visual_dirty = true; } #endif return m_logical; } const FbString& BiDiString::visual() const { #if HAVE_FRIBIDI if (m_visual_dirty) { m_visual = ::makeVisualFromLogical(logical()); } m_visual_dirty = false; return m_visual; #else return m_logical; #endif } namespace FbStringUtil { enum ConvType { FB2X = 0, X2FB, LOCALE2FB, FB2LOCALE, CONVSIZE }; static bool s_inited = false; static iconv_t s_iconv_convs[CONVSIZE]; static std::string s_locale_codeset; /// Initialise all of the iconv conversion descriptors void init() { if (s_inited) return; s_inited = true; setlocale(LC_CTYPE, ""); #ifdef HAVE_ICONV #if defined(CODESET) && !defined(_WIN32) s_locale_codeset = nl_langinfo(CODESET); #else // openbsd doesnt have this (yet?) std::string locale = setlocale(LC_CTYPE, NULL); size_t pos = locale.find('.'); if (pos != std::string::npos) s_locale_codeset = locale.substr(pos+1); #endif // CODESET #ifdef DEBUG cerr << "FbTk::FbString: setup converts for local codeset = " << s_locale_codeset << endl; #endif // DEBUG s_iconv_convs[FB2X] = iconv_open("ISO8859-1", "UTF-8"); s_iconv_convs[X2FB] = iconv_open("UTF-8", "ISO8859-1"); s_iconv_convs[FB2LOCALE] = iconv_open(s_locale_codeset.c_str(), "UTF-8"); s_iconv_convs[LOCALE2FB] = iconv_open("UTF-8", s_locale_codeset.c_str()); #else memset(s_iconv_convs, 0, sizeof(s_iconv_convs)); #endif // HAVE_ICONV } void shutdown() { #ifdef HAVE_ICONV int i; for (i = 0; i < CONVSIZE; ++i) if (s_iconv_convs[i] != ICONV_NULL) iconv_close(s_iconv_convs[i]); memset(s_iconv_convs, 0, sizeof(s_iconv_convs)); s_inited = false; #endif // HAVE_ICONV } /** Recodes the text from one encoding to another assuming cd is correct @param cd the iconv type @param msg text to be converted, **NOT** necessarily NULL terminated @param size number of BYTES to convert @return the recoded string, or 0 on failure */ std::string recode(iconv_t cd, const std::string &in) { #ifdef HAVE_ICONV /** --NOTE-- In the "C" locale, this will strip any high-bit characters because C means 7-bit ASCII charset. If you don't want this then you need to set your locale to something UTF-8, OR something ISO8859-1. */ // If empty message, yes this can happen, return if (in.empty()) return ""; if (cd == ICONV_NULL) return in; // can't convert size_t insize = in.size(); size_t outsize = insize; std::vector out(outsize); char* out_ptr = &out[0]; size_t inbytesleft = insize; size_t outbytesleft = outsize; #ifdef HAVE_CONST_ICONV const char* in_ptr = in.data(); #else char* in_ptr = const_cast(in.data()); #endif size_t result = (size_t)(-1); bool again = true; while (again) { again = false; result = iconv(cd, &in_ptr, &inbytesleft, &out_ptr, &outbytesleft); if (result == (size_t)(-1)) { switch(errno) { case EILSEQ: // Try skipping a byte in_ptr++; inbytesleft--; again = true; case EINVAL: break; case E2BIG: // need more space! outsize += insize; out.resize(outsize); if (out.capacity() != outsize) again = true; outbytesleft += insize; out_ptr = (&out[0] + outsize) - outbytesleft; break; default: // something else broke perror("iconv"); break; } } } // copy to our return string std::string ret; ret.append(&out[0], outsize - outbytesleft); // reset the conversion descriptor iconv(cd, NULL, NULL, NULL, NULL); return ret; #else return in; #endif // HAVE_ICONV } FbString XStrToFb(const std::string &src) { return recode(s_iconv_convs[X2FB], src); } std::string FbStrToX(const FbString &src) { return recode(s_iconv_convs[FB2X], src); } /// Handle thislocale string encodings (strings coming from userspace) FbString LocaleStrToFb(const std::string &src) { return recode(s_iconv_convs[LOCALE2FB], src); } std::string FbStrToLocale(const FbString &src) { return recode(s_iconv_convs[FB2LOCALE], src); } bool haveUTF8() { #ifdef HAVE_ICONV if (s_iconv_convs[LOCALE2FB] != ICONV_NULL) return true; #endif // HAVE_ICONV return false; } } // end namespace StringUtil #ifdef HAVE_ICONV StringConvertor::StringConvertor(EncodingTarget target) : m_iconv(ICONV_NULL) { if (target == ToLocaleStr) m_destencoding = FbStringUtil::s_locale_codeset; else m_destencoding = "UTF-8"; } #else StringConvertor::StringConvertor(EncodingTarget target) { } #endif StringConvertor::~StringConvertor() { reset(); } bool StringConvertor::setSource(const std::string &encoding) { #ifdef HAVE_ICONV std::string tempenc = encoding.empty() ? FbStringUtil::s_locale_codeset : encoding; if ((tempenc == m_destencoding) && (m_iconv == ICONV_NULL)) { return true; } iconv_t newiconv = iconv_open(m_destencoding.c_str(), tempenc.c_str()); if (newiconv == ICONV_NULL) return false; else { if (m_iconv != ICONV_NULL) iconv_close(m_iconv); m_iconv = newiconv; return true; } #else return false; #endif } FbString StringConvertor::recode(const std::string &src) { #ifdef HAVE_ICONV return FbStringUtil::recode(m_iconv, src); #else return src; #endif } void StringConvertor::reset() { #ifdef HAVE_ICONV if (m_iconv != ICONV_NULL) iconv_close(m_iconv); m_iconv = ICONV_NULL; #endif } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/FbString.hh0000644000175000017500000000013112106662425017727 xustar000000000000000030 mtime=1360749845.887812656 29 atime=1360749876.57181246 30 ctime=1360750008.539811615 fluxbox-1.3.5/src/FbTk/FbString.hh0000644000175000017500000000557312106662425015771 0ustar00mgmg00000000000000// FbString.hh for fluxbox // Copyright (c) 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // Copyright (c) 2006 Simon Bowden (rathnor at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_FBSTRING_HH #define FBTK_FBSTRING_HH #include #include "config.h" #ifdef HAVE_ICONV #include #endif // HAVE_ICONV #include "NotCopyable.hh" namespace FbTk { // Use this type for things converted to our internal encoding (UTF-8) // (or just plain whatever for now if no utf-8 available) typedef std::string FbString; class BiDiString { public: BiDiString(const FbString& logical = FbString()); const FbString& logical() const { return m_logical; } const FbString& visual() const; const FbString& setLogical(const FbString& logical); private: FbString m_logical; #ifdef HAVE_FRIBIDI mutable FbString m_visual; mutable bool m_visual_dirty; #endif }; namespace FbStringUtil { void init(); void shutdown(); /// Stuff to handle strings in different encodings /// Rule: Only hardcode-initialise FbStrings as ascii (7bit) characters // NOTE: X "STRING" types are defined (ICCCM) as ISO Latin-1 encoding FbString XStrToFb(const std::string &src); std::string FbStrToX(const FbString &src); /// Handle thislocale string encodings (strings coming from userspace) FbString LocaleStrToFb(const std::string &src); std::string FbStrToLocale(const FbString &src); bool haveUTF8(); } // namespace FbStringUtil class StringConvertor: private NotCopyable { public: enum EncodingTarget { ToFbString, ToLocaleStr }; StringConvertor(EncodingTarget target); ~StringConvertor(); bool setSource(const std::string &encoding); void reset(); FbString recode(const FbString &src); private: #ifdef HAVE_ICONV iconv_t m_iconv; #endif std::string m_destencoding; }; } // namespace FbTk #endif // FBTK_FBSTRING_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/RegExp.cc0000644000175000017500000000013112106662425017371 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.56781246 30 ctime=1360750008.539811615 fluxbox-1.3.5/src/FbTk/RegExp.cc0000644000175000017500000000517612106662425015432 0ustar00mgmg00000000000000// RegExp.cc for FbTk // Copyright (c) 2003 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "RegExp.hh" //use GNU extensions #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif // _GNU_SOURCE #include using std::string; #ifdef USE_REGEXP using std::cerr; using std::endl; #endif // USE_REGEXP namespace FbTk { // full_match is to say if we match on this regexp using the full string // or just a substring. Substrings aren't supported if not HAVE_REGEXP RegExp::RegExp(const string &str, bool full_match): #ifdef USE_REGEXP m_regex(0) { string match; if (full_match) { match = "^"; match.append(str); match.append("$"); } else { match = str; } m_regex = new regex_t; int ret = regcomp(m_regex, match.c_str(), REG_NOSUB | REG_EXTENDED); if (ret != 0) { delete m_regex; // I don't think I regfree a failed compile? m_regex = 0; } } #else // notdef USE_REGEXP m_str(str) {} #endif // USE_REGEXP RegExp::~RegExp() { #ifdef USE_REGEXP if (m_regex != 0) { regfree(m_regex); delete m_regex; } #endif // USE_REGEXP } bool RegExp::match(const string &str) const { #ifdef USE_REGEXP if (m_regex) return regexec(m_regex, str.c_str(), 0, 0, 0) == 0; else return false; #else // notdef USE_REGEXP return (m_str == str); #endif // USE_REGEXP } bool RegExp::error() const { #ifdef USE_REGEXP return m_regex == 0; #else return m_str == ""; #endif // USE_REGEXP } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/RegExp.hh0000644000175000017500000000013112106662425017403 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.56781246 30 ctime=1360750008.539811615 fluxbox-1.3.5/src/FbTk/RegExp.hh0000644000175000017500000000371012106662425015434 0ustar00mgmg00000000000000// RegExp.hh for FbTk // Copyright (c) 2002 Xavier Brouckaert // Copyright (c) 2003 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_REGEXP_HH #define FBTK_REGEXP_HH #include "NotCopyable.hh" #ifdef HAVE_CONFIG_H #include "config.h" #endif // HAVE_CONFIG_H #include /* * If USE_REGEXP isn't defined, then we match just using simple string equality */ #ifdef USE_REGEXP #include #include #endif // USE_REGEXP namespace FbTk { class RegExp: private NotCopyable { public: RegExp(const std::string &str, bool full_match = true); ~RegExp(); bool match(const std::string &str) const; bool error() const; private: #ifdef USE_REGEXP regex_t* m_regex; #else // notdef USE_REGEXP std::string m_str; #endif // USE_REGEXP }; } // end namespace FbTk #endif // FBTK_REGEXP_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Parser.cc0000644000175000017500000000013112106662425017433 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.56381246 30 ctime=1360750008.543811615 fluxbox-1.3.5/src/FbTk/Parser.cc0000644000175000017500000000236012106662425015464 0ustar00mgmg00000000000000// Parser.cc for FbTk // Copyright (c) 2004 - 2006 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "Parser.hh" namespace FbTk { const Parser::Item Parser::s_empty_item("", ""); } fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Parser.hh0000644000175000017500000000013112106662425017445 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.56381246 30 ctime=1360750008.543811615 fluxbox-1.3.5/src/FbTk/Parser.hh0000644000175000017500000000354512106662425015504 0ustar00mgmg00000000000000// Parser.hh for FbTk // Copyright (c) 2004 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_PARSER_HH #define FBTK_PARSER_HH #include #include namespace FbTk { // interface class for a generic Parser class Parser { public: typedef std::pair Item; static const Item s_empty_item; virtual ~Parser() { } virtual bool open(const std::string &filename) = 0; virtual void close() = 0; virtual bool eof() const = 0; virtual bool isLoaded() const = 0; virtual int row() const = 0; virtual std::string line() const = 0; virtual Parser &operator >> (Item &out) = 0; virtual Item nextItem() = 0; }; } // end namespace FbTk #endif // FBTK_PARSER_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/StringUtil.cc0000644000175000017500000000013112106662425020303 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.56381246 30 ctime=1360750008.543811615 fluxbox-1.3.5/src/FbTk/StringUtil.cc0000644000175000017500000002670112106662425016341 0ustar00mgmg00000000000000// StringUtil.cc for fluxbox // Copyright (c) 2001 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "StringUtil.hh" #include "../defaults.hh" #ifdef HAVE_CSTDIO #include #else #include #endif #ifdef HAVE_CSTDLIB #include #else #include #endif #ifdef HAVE_CCTYPE #include #else #include #endif #ifdef HAVE_CASSERT #include #else #include #endif #ifdef HAVE_CSTRING #include #else #include #endif #ifdef HAVE_CERRNO #include #else #include #endif #include #include #include #include using std::string; using std::transform; namespace { template int extractBigNumber(const char* in, T (*extractFunc)(const char*, char**, int), T& out) { errno = 0; int ret = 0; char* end = 0; T result = extractFunc(in, &end, 0); if (errno == 0 && end != in) { out = result; ret = 1; } return ret; } template int extractSignedNumber(const std::string& in, T& out) { long long int result = 0; if (::extractBigNumber(in.c_str(), strtoll, result)) { out = static_cast(result); return 1; } return 0; } template int extractUnsignedNumber(const std::string& in, T& out) { unsigned long long int result = 0; if (::extractBigNumber(in.c_str(), strtoull, result)) { out = static_cast(result); return 1; } return 0; } } namespace FbTk { namespace StringUtil { int extractNumber(const std::string& in, int& out) { return ::extractSignedNumber(in, out); } int extractNumber(const std::string& in, unsigned int& out) { return ::extractUnsignedNumber(in, out); } int extractNumber(const std::string& in, long& out) { return ::extractSignedNumber(in, out); } int extractNumber(const std::string& in, unsigned long& out) { return ::extractUnsignedNumber(in, out); } int extractNumber(const std::string& in, long long& out) { return ::extractSignedNumber(in, out); } int extractNumber(const std::string& in, unsigned long long& out) { return ::extractUnsignedNumber(in, out); } std::string number2String(long long num) { char s[128]; snprintf(s, sizeof(s), "%lld", num); return std::string(s); } std::string number2HexString(long long num) { char s[17]; snprintf(s, sizeof(s), "%lx", num); return std::string(s); } /** Tries to find a string in another and ignoring the case of the characters Returns 0 on failure else pointer to str. */ const char *strcasestr(const char *str, const char *ptn) { const char *s2, *p2; for( ; *str; str++) { for(s2=str, p2=ptn; ; s2++,p2++) { // check if we reached the end of ptn, if so, return str if (!*p2) return str; // check if the chars match(ignoring case) if (toupper(*s2) != toupper(*p2)) break; } } return 0; } #ifdef _WIN32 #include #define WIN32_LEAN_AND_MEAN 1 #define NOMINMAX #include static void removeTrailingPathSeparators(std::string & path) { // Remove any trailing path separators size_t beforeLastPathSep = path.find_last_not_of("/\\"); if (beforeLastPathSep != path.size() - 1) { path.erase(beforeLastPathSep + 1); } } static std::string getFluxboxPrefix() { static std::string ret; static bool init = false; if (!init) { char buffer[1024]; HMODULE module = GetModuleHandle(NULL); DWORD size = GetModuleFileName(module, buffer, sizeof(buffer)); if (sizeof(buffer) > 0) { buffer[sizeof(buffer) - 1] = 0; } static const char slash = '/'; static const char backslash = '\\'; char * lastslash = std::find_end(buffer, buffer+size, &slash, &slash + 1); char * lastbackslash = std::find_end(buffer, buffer+size, &backslash, &backslash + 1); ret.assign(buffer); // Remove the filename size_t lastPathSep = ret.find_last_of("/\\"); if (lastPathSep != std::string::npos) { ret.erase(lastPathSep); } removeTrailingPathSeparators(ret); // If the last directory is bin, remove that too. lastPathSep = ret.find_last_of("/\\"); if (lastPathSep != std::string::npos && ret.substr(lastPathSep + 1) == "bin") { ret.erase(lastPathSep); } removeTrailingPathSeparators(ret); } return ret; } #endif // _WIN32 /** if ~ then expand it to home of user if /DUMMYPREFIX on Windows then expand it to the prefix relative to the executable on Windows. returns expanded filename */ string expandFilename(const string &filename) { string retval; size_t pos = filename.find_first_not_of(" \t"); if (pos != string::npos && filename[pos] == '~') { #ifdef _WIN32 retval = getenv("USERPROFILE"); #else retval = getenv("HOME"); #endif if (pos + 1 < filename.size()) { // copy from the character after '~' retval += static_cast(filename.c_str() + pos + 1); } } else { retval = filename; //return unmodified value } #if defined(_WIN32) && defined(DUMMYPREFIX) if (retval.find(DUMMYPREFIX) == 0) { static const std::string dummyPrefix = DUMMYPREFIX; retval.replace(0, dummyPrefix.size(), getFluxboxPrefix()); } #endif return retval; } /** @return string from last "." to end of string */ string findExtension(const string &filename) { //get start of extension string::size_type start_pos = filename.find_last_of("."); if (start_pos == string::npos && start_pos != filename.size()) return ""; // return from last . to end of string return filename.substr(start_pos + 1); } string::size_type findCharFromAlphabetAfterTrigger(const std::string& in, char trigger, const char alphabet[], size_t len_alphabet, size_t* found) { for (const char* s = in.c_str(); *s != '\0'; ) { if (*s++ == trigger && *s != '\0') { for (const char* a = alphabet; (a - alphabet) < static_cast(len_alphabet); ++a) { if (*s == *a) { if (found) { *found = a - alphabet; } return s - in.c_str() - 1; } } s++; } } return string::npos; } string replaceString(const string &original, const char *findthis, const char *replace) { size_t i = 0; const int size_of_replace = strlen(replace); const int size_of_find = strlen(findthis); string ret_str(original); while (i < ret_str.size()) { i = ret_str.find(findthis, i); if (i == string::npos) break; // erase old string and insert replacement ret_str.erase(i, size_of_find); ret_str.insert(i, replace); // jump to next position after insert i += size_of_replace; } return ret_str; } /** Parses a string between "first" and "last" characters and ignoring ok_chars as whitespaces. The value is returned in "out". Returns negative value on error and this value is the position in the in-string where the error occured. Returns positive value on success and this value is for the position + 1 in the in-string where the "last"-char value was found. */ int getStringBetween(string& out, const char *instr, char first, char last, const char *ok_chars, bool allow_nesting) { assert(first); assert(last); assert(instr); string::size_type i = 0; string::size_type total_add=0; //used to add extra if there is a \last to skip string in(instr); // eat leading whitespace i = in.find_first_not_of(ok_chars); if (i == string::npos) return -in.size(); // nothing left but whitespace if (in[i]!=first) return -i; //return position to error // find the end of the token string::size_type j = i, k; int nesting = 0; while (1) { k = in.find_first_of(first, j+1); j = in.find_first_of(last, j+1); if (j==string::npos) return -in.size(); //send negative size if (allow_nesting && k < j && in[k-1] != '\\') { nesting++; j = k; continue; } //we found the last char, check so it doesn't have a '\' before if (j>1 && in[j-1] != '\\') { if (allow_nesting && nesting > 0) nesting--; else break; } else if (j>1 && !allow_nesting) { // we leave escapes if we're allowing nesting in.erase(j-1, 1); //remove the '\' j--; total_add++; //save numchars removed so we can calculate totalpos } } out = in.substr(i+1, j-i-1); //copy the string between first and last //return value to last character return (j+1+total_add); } string toLower(const string &conv) { string ret = conv; transform(ret.begin(), ret.end(), ret.begin(), tolower); return ret; } string toUpper(const string &conv) { string ret = conv; transform(ret.begin(), ret.end(), ret.begin(), toupper); return ret; } string basename(const string &filename) { string::size_type first_pos = filename.find_last_of("/"); if (first_pos != string::npos) return filename.substr(first_pos + 1); return filename; } string::size_type removeFirstWhitespace(string &str) { string::size_type first_pos = str.find_first_not_of(" \t"); str.erase(0, first_pos); return first_pos; } string::size_type removeTrailingWhitespace(string &str) { // strip trailing whitespace string::size_type first_pos = str.find_last_not_of(" \t"); string::size_type last_pos = str.find_first_of(" \t", first_pos); if (last_pos != string::npos) str.erase(last_pos); return first_pos; } void getFirstWord(const std::string &in, std::string &word, std::string &rest) { word = in; string::size_type first_pos = StringUtil::removeFirstWhitespace(word); string::size_type second_pos = word.find_first_of(" \t", first_pos); if (second_pos != string::npos) { rest = word.substr(second_pos); word.erase(second_pos); } } } // end namespace StringUtil } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/StringUtil.hh0000644000175000017500000000013112106662425020315 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.55981246 30 ctime=1360750008.543811615 fluxbox-1.3.5/src/FbTk/StringUtil.hh0000644000175000017500000001265612106662425016357 0ustar00mgmg00000000000000// StringUtil.hh for fluxbox // Copyright (c) 2001 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_STRINGUTIL_HH #define FBTK_STRINGUTIL_HH #include #include "stringstream.hh" namespace FbTk { namespace StringUtil { /// \@{ /// @param in - input string, might be 0xab or 0123 /// @param out - result if extraction was ok /// @return 1 - ok, result stored in 'out' int extractNumber(const std::string& in, unsigned int& out); int extractNumber(const std::string& in, int& out); int extractNumber(const std::string& in, long& out); int extractNumber(const std::string& in, long long& out); int extractNumber(const std::string& in, unsigned long& out); int extractNumber(const std::string& in, unsigned long long& out); /// \@} /// creates a number to a string std::string number2String(long long num); std::string number2HexString(long long num); /// Similar to `strstr' but this function ignores the case of both strings const char *strcasestr(const char *str, const char *ptn); /// expands ~ to value of ${HOME} enviroment variable std::string expandFilename(const std::string &filename); /// @return extension of filename (ex: filename.txt will return txt) std::string findExtension(const std::string &filename); /// is the char after a 'trigger' part of an alphabet? /// @param in - string to analyze /// @param trigger - check for char after trigger /// @param alphabet - contains chars to search for /// @param len_alphabet - length of alphabet /// @param found - position of found char in alphabet (optional) /// @return position of trigger if found /// @return std::string::npos if nothing found std::string::size_type findCharFromAlphabetAfterTrigger(const std::string& in, char trigger, const char alphabet[], size_t len_alphabet, size_t* found); /// @return copy of original with find_string replaced with "replace" std::string replaceString(const std::string &original, const char *find_string, const char *replace); /// returns string between character first and last int getStringBetween(std::string& out, const char *instr, char first, char last, const char *ok_chars=" \t\n", bool allow_nesting = false); /// @return lower case letters of conv std::string toLower(const std::string &conv); /// @return upper case letters of conv std::string toUpper(const std::string &conv); #ifdef basename #undef basename #endif // basename std::string basename(const std::string &basename); /// removes the first whitespace characters of the string std::string::size_type removeFirstWhitespace(std::string &str); std::string::size_type removeTrailingWhitespace(std::string &str); /// splits input at first non-leading whitespace and returns both parts void getFirstWord(const std::string &in, std::string &first, std::string &rest); template void fromString(const char *in, T &out) { FbTk_istringstream iss(in); iss >> out; } template static void stringTokensBetween(Container &container, const std::string &in, std::string &rest, char first, char last, const char *ok_chars = " \t\n", bool allow_nesting = true) { std::string token; int err = 0, pos = 0; while (true) { err = getStringBetween(token, in.c_str() + pos, first, last, ok_chars, allow_nesting); if (err <= 0) break; container.push_back(token); pos += err; } rest = in.c_str() + pos; } /// Breaks a string into tokens template static void stringtok (Container &container, std::string const &in, const char * const delimiters = " \t\n") { const std::string::size_type len = in.length(); std::string::size_type i = 0; while ( i < len ) { // eat leading whitespace i = in.find_first_not_of(delimiters, i); if (i == std::string::npos) return; // nothing left but white space // find the end of the token std::string::size_type j = in.find_first_of(delimiters, i); // push token if (j == std::string::npos) { container.push_back(in.substr(i)); return; } else container.push_back(in.substr(i, j-i)); // set up for next loop i = j + 1; } } } // end namespace StringUtil } // end namespace FbTk #endif // FBTK_STRINGUTIL_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Resource.cc0000644000175000017500000000013112106662425017766 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.55981246 30 ctime=1360750008.543811615 fluxbox-1.3.5/src/FbTk/Resource.cc0000644000175000017500000001503112106662425016016 0ustar00mgmg00000000000000// Resource.cc // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "XrmDatabaseHelper.hh" #include "Resource.hh" #include "I18n.hh" #include "StringUtil.hh" #include #ifdef HAVE_CASSERT #include #else #include #endif using std::cerr; using std::endl; using std::string; namespace FbTk { ResourceManager::ResourceManager(const char *filename, bool lock_db) : m_db_lock(0), m_database(0), m_filename(filename ? filename : "") { static bool xrm_initialized = false; if (!xrm_initialized) { XrmInitialize(); xrm_initialized = true; } if (lock_db) lock(); } ResourceManager::~ResourceManager() { if (m_database) delete m_database; } /** reloads all resources from resourcefile @return true on success else false */ bool ResourceManager::load(const char *filename) { m_filename = StringUtil::expandFilename(filename).c_str(); // force reload (lock will ensure it exists) if (m_database) { delete m_database; m_database = 0; } lock(); if (!m_database) { unlock(); return false; } XrmValue value; char *value_type; //get list and go throu all the resources and load them ResourceList::iterator i = m_resourcelist.begin(); ResourceList::iterator i_end = m_resourcelist.end(); for (; i != i_end; ++i) { Resource_base *resource = *i; if (XrmGetResource(**m_database, resource->name().c_str(), resource->altName().c_str(), &value_type, &value)) resource->setFromString(value.addr); else { _FB_USES_NLS; cerr<<_FBTK_CONSOLETEXT(Error, FailedRead, "Failed to read", "Couldn't load a resource (following)")<<": "<name()<setDefaultValue(); } } unlock(); return true; } /** Saves all the resource to a file @return 0 on success else negative value representing the error */ bool ResourceManager::save(const char *filename, const char *mergefilename) { assert(filename); // these must be local variables; otherwise, the memory gets released by // std::string, causing weird issues string file_str = StringUtil::expandFilename(filename), mergefile_str; filename = file_str.c_str(); if (mergefilename) { mergefile_str = StringUtil::expandFilename(mergefilename); mergefilename = mergefile_str.c_str(); } // empty database XrmDatabaseHelper database; string rc_string; ResourceList::iterator i = m_resourcelist.begin(); ResourceList::iterator i_end = m_resourcelist.end(); //write all resources to database for (; i != i_end; ++i) { Resource_base *resource = *i; rc_string = resource->name() + string(": ") + resource->getString(); XrmPutLineResource(&*database, rc_string.c_str()); } if (database==0) return false; //check if we want to merge a database if (mergefilename) { // force reload of file m_filename = mergefilename; if (m_database) delete m_database; m_database = 0; lock(); if (!m_database) { unlock(); return false; } XrmMergeDatabases(*database, &**m_database); // merge databases XrmPutFileDatabase(**m_database, filename); // save database to file // don't try to destroy the database (XrmMergeDatabases destroys it) *database = 0; unlock(); } else // save database to file XrmPutFileDatabase(*database, filename); m_filename = filename; return true; } Resource_base *ResourceManager::findResource(const string &resname) { // find resource name ResourceList::iterator i = m_resourcelist.begin(); ResourceList::iterator i_end = m_resourcelist.end(); for (; i != i_end; ++i) { if ((*i)->name() == resname || (*i)->altName() == resname) return *i; } return 0; } const Resource_base *ResourceManager::findResource(const string &resname) const { // find resource name ResourceList::const_iterator i = m_resourcelist.begin(); ResourceList::const_iterator i_end = m_resourcelist.end(); for (; i != i_end; ++i) { if ((*i)->name() == resname || (*i)->altName() == resname) return *i; } return 0; } string ResourceManager::resourceValue(const string &resname) const { const Resource_base *res = findResource(resname); if (res != 0) return res->getString(); return ""; } void ResourceManager::setResourceValue(const string &resname, const string &value) { Resource_base *res = findResource(resname); if (res != 0) res->setFromString(value.c_str()); } ResourceManager &ResourceManager::lock() { ++m_db_lock; // if the lock was zero, then load the database if ((m_db_lock == 1 || !m_database) && m_filename != "") { m_database = new XrmDatabaseHelper(m_filename.c_str()); // check that the database loaded ok if (m_database && *m_database == 0) { // didn't work delete m_database; m_database = 0; } } return *this; } void ResourceManager::unlock() { if (--m_db_lock == 0 && m_database) { delete m_database; m_database = 0; } } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Resource.hh0000644000175000017500000000013112106662425020000 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.55981246 30 ctime=1360750008.547811615 fluxbox-1.3.5/src/FbTk/Resource.hh0000644000175000017500000001717012106662425016036 0ustar00mgmg00000000000000// Resource.hh // Copyright (c) 2002-2003 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_RESOURCE_HH #define FBTK_RESOURCE_HH #include "NotCopyable.hh" #include "Accessor.hh" #include #include #include #include #include #include "XrmDatabaseHelper.hh" namespace FbTk { class ResourceException: public std::exception { public: ResourceException(const std::string &err): m_str(err) { }; ~ResourceException() throw() { } const char *what() const throw () { return m_str.c_str(); } private: std::string m_str; }; /// Base class for resources, this is only used in ResourceManager class Resource_base:private FbTk::NotCopyable { public: virtual ~Resource_base() { }; /// set from string value virtual void setFromString(char const *strval) = 0; /// set default value virtual void setDefaultValue() = 0; /// get string value virtual std::string getString() const = 0; /// get alternative name of this resource const std::string& altName() const { return m_altname; } /// get name of this resource const std::string& name() const { return m_name; } protected: Resource_base(const std::string &name, const std::string &altname): m_name(name), m_altname(altname) { } private: std::string m_name; ///< name of this resource std::string m_altname; ///< alternative name }; template class Resource; class ResourceManager { public: typedef std::list ResourceList; // lock specifies if the database should be opened with one level locked // (useful for constructing inside initial set of constructors) ResourceManager(const char *filename, bool lock_db); virtual ~ResourceManager(); /// Load all resources registered to this class /// @return true on success virtual bool load(const char *filename); /// Save all resouces registered to this class /// @return true on success virtual bool save(const char *filename, const char *mergefilename=0); /// Add resource to list, only used in Resource template void addResource(Resource &r); /// Remove a specific resource, only used in Resource template void removeResource(Resource &r) { m_resourcelist.remove(&r); } /// searches for the resource with the resourcename /// @return pointer to resource base on success, else 0. Resource_base *findResource(const std::string &resourcename); /// searches for the resource with the resourcename /// @return pointer to resource base on success, else 0. const Resource_base *findResource(const std::string &resourcename) const; std::string resourceValue(const std::string &resourcename) const; void setResourceValue(const std::string &resourcename, const std::string &value); /** * Will search and cast the resource to Resource, * it will throw exception if it fails * @return reference to resource type */ template Resource &getResource(const std::string &resource); // this marks the database as "in use" and will avoid reloading // resources unless it is zero. // It returns this resource manager. Useful for passing to // constructors like Object(m_rm.lock()) ResourceManager &lock(); void unlock(); // for debugging int lockDepth() const { return m_db_lock; } void dump() { ResourceList::iterator it = m_resourcelist.begin(); ResourceList::iterator it_end = m_resourcelist.end(); for (; it != it_end; ++it) { std::cerr<<(*it)->name()< someresource(resourcemanager, 10, "someresourcename", "somealternativename"); * and then implement setFromString and getString * example: * template <> * void Resource::setFromString(const char *str) { * *(*this) = atoi(str); * } */ template class Resource:public Resource_base, public Accessor { public: typedef T Type; Resource(ResourceManager &rm, T val, const std::string &name, const std::string &altname): Resource_base(name, altname), m_value(val), m_defaultval(val), m_rm(rm) { m_rm.addResource(*this); // add this to resource handler } virtual ~Resource() { m_rm.removeResource(*this); // remove this from resource handler } void setDefaultValue() { m_value = m_defaultval; } /// sets resource from string, specialized, must be implemented void setFromString(const char *strval); Accessor &operator =(const T& newvalue) { m_value = newvalue; return *this;} /// specialized, must be implemented /// @return string value of resource std::string getString() const; operator T() const { return m_value; } T& get() { return m_value; } T& operator*() { return m_value; } const T& operator*() const { return m_value; } T *operator->() { return &m_value; } const T *operator->() const { return &m_value; } private: T m_value, m_defaultval; ResourceManager &m_rm; }; // add the resource and load its value template void ResourceManager::addResource(Resource &r) { m_resourcelist.push_back(&r); m_resourcelist.unique(); // lock ensures that the database is loaded. lock(); if (m_database == 0) { unlock(); return; } XrmValue value; char *value_type; // now, load the value for this resource if (XrmGetResource(**m_database, r.name().c_str(), r.altName().c_str(), &value_type, &value)) { r.setFromString(value.addr); } else { std::cerr<<"Failed to read: "< Resource &ResourceManager::getResource(const std::string &resname) { Resource_base *res = findResource(resname); if (res == 0) { throw ResourceException("Could not find resource \"" + resname + "\""); } Resource *res_type = dynamic_cast *>(res); if (res_type == 0) { throw ResourceException("Could not convert resource \"" + resname + "\""); } return *res_type; } } // end namespace FbTk #endif // FBTK_RESOURCE_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/LayerItem.hh0000644000175000017500000000013112106662425020104 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.55581246 30 ctime=1360750008.547811615 fluxbox-1.3.5/src/FbTk/LayerItem.hh0000644000175000017500000000527312106662425016143 0ustar00mgmg00000000000000// LayerItem.hh for FbTk - fluxbox toolkit // Copyright (c) 2003 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_LAYERITEM_HH #define FBTK_LAYERITEM_HH #include "Layer.hh" #include "NotCopyable.hh" #include #include // size_t namespace FbTk { class FbWindow; class LayerItem : private NotCopyable { public: typedef std::vector Windows; LayerItem(FbWindow &win, Layer &layer); ~LayerItem(); void setLayer(Layer &layer); void raise(); void lower(); void tempRaise(); // this raise gets reverted by a restack() // send to next layer up void raiseLayer(); void lowerLayer(); void moveToLayer(int layernum); // this is needed for step and cycle functions // (you need to know the next one visible, otherwise nothing may appear to happen) // not yet implemented bool visible() const { return true; } const Layer &getLayer() const { return *m_layer; } Layer &getLayer() { return *m_layer; } int getLayerNum() { return m_layer->getLayerNum(); } // an LayerItem holds several windows that are equivalent in a layer // (i.e. if one is raised, then they should all be). void addWindow(FbWindow &win); void removeWindow(FbWindow &win); // using this you can bring one window to the top of this item (equivalent to add then remove) void bringToTop(FbWindow &win); Windows &getWindows() { return m_windows; } size_t numWindows() const { return m_windows.size(); } private: Layer *m_layer; Windows m_windows; }; } #endif // FBTK_LAYERITEM_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/LayerItem.cc0000644000175000017500000000013112106662425020072 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.55581246 30 ctime=1360750008.547811615 fluxbox-1.3.5/src/FbTk/LayerItem.cc0000644000175000017500000000543112106662425016125 0ustar00mgmg00000000000000// LayerItem.cc for FbTk - fluxbox toolkit // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "LayerItem.hh" #include "Layer.hh" #include using namespace FbTk; LayerItem::LayerItem(FbWindow &win, Layer &layer) : m_layer(&layer) { m_windows.push_back(&win); m_layer->insert(*this); } LayerItem::~LayerItem() { m_layer->remove(*this); } void LayerItem::setLayer(Layer &layer) { // make sure we don't try to set the same layer if (m_layer == &layer) return; m_layer->remove(*this); m_layer = &layer; m_layer->insert(*this); } void LayerItem::raise() { m_layer->raise(*this); } void LayerItem::lower() { m_layer->lower(*this); } void LayerItem::tempRaise() { m_layer->tempRaise(*this); } void LayerItem::raiseLayer() { m_layer->raiseLayer(*this); } void LayerItem::lowerLayer() { m_layer->lowerLayer(*this); } void LayerItem::moveToLayer(int layernum) { m_layer->moveToLayer(*this, layernum); } void LayerItem::addWindow(FbWindow &win) { // I'd like to think we can trust ourselves that it won't be added twice... // Otherwise we're always scanning through the list. m_windows.push_back(&win); m_layer->alignItem(*this); } void LayerItem::removeWindow(FbWindow &win) { // I'd like to think we can trust ourselves that it won't be added twice... // Otherwise we're always scanning through the list. LayerItem::Windows::iterator it = std::find(m_windows.begin(), m_windows.end(), &win); if (it != m_windows.end()) m_windows.erase(it); } void LayerItem::bringToTop(FbWindow &win) { removeWindow(win); addWindow(win); } fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Layer.hh0000644000175000017500000000013112106662425017265 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.55181246 30 ctime=1360750008.547811615 fluxbox-1.3.5/src/FbTk/Layer.hh0000644000175000017500000000553712106662425015327 0ustar00mgmg00000000000000// Layer.hh for FbTk - fluxbox toolkit // Copyright (c) 2003 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_LAYER_HH #define FBTK_LAYER_HH #include #include namespace FbTk { class MultLayers; class LayerItem; class Layer { public: Layer(MultLayers &manager, int layernum); ~Layer(); typedef std::list ItemList; typedef std::list::iterator iterator; //typedef std::list::reverse_iterator reverse_iterator; void setLayerNum(int layernum) { m_layernum = layernum; }; int getLayerNum() { return m_layernum; }; // Put all items on the same layer (called when layer item added to) void alignItem(LayerItem &item); int countWindows(); void stackBelowItem(LayerItem &item, LayerItem *above); LayerItem *getLowestItem(); const ItemList &itemList() const { return m_items; } ItemList &itemList() { return m_items; } // we redefine these as Layer has special optimisations, and X restacking needs iterator insert(LayerItem &item, unsigned int pos=0); void remove(LayerItem &item); // bring to top of layer void raise(LayerItem &item); void lower(LayerItem &item); // raise it, but don't make it permanent (i.e. restack will revert) void tempRaise(LayerItem &item); // send to next layer up void raiseLayer(LayerItem &item); void lowerLayer(LayerItem &item); void moveToLayer(LayerItem &item, int layernum); static void restack(const std::vector& layers); private: void restack(); void restackAndTempRaise(LayerItem &item); MultLayers &m_manager; int m_layernum; bool m_needs_restack; ItemList m_items; }; } // namespace FbTk #endif // FBTK_LAYER_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Layer.cc0000644000175000017500000000013112106662425017253 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.55181246 30 ctime=1360750008.551811615 fluxbox-1.3.5/src/FbTk/Layer.cc0000644000175000017500000002167212106662425015313 0ustar00mgmg00000000000000// Layer.cc for FbTk - fluxbox toolkit // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "Layer.hh" #include "LayerItem.hh" #include "App.hh" #include "FbWindow.hh" #include "MultLayers.hh" #include #include #include using namespace FbTk; #ifdef DEBUG using std::cerr; using std::endl; #endif // DEBUG namespace { int sum_windows(int nr, LayerItem* item) { return nr + item->numWindows(); } int count_windows(const FbTk::Layer::ItemList& items) { return std::accumulate(items.begin(), items.end(), 0, sum_windows); } void extract_windows_to_stack(const LayerItem::Windows& windows, std::vector& stack) { LayerItem::Windows::const_iterator i = windows.begin(); LayerItem::Windows::const_iterator end = windows.end(); for (; i != end; ++i) { Window w = (*i)->window(); if (w) stack.push_back(w); } } void extract_windows_to_stack(const FbTk::Layer::ItemList& items, LayerItem* temp_raised, std::vector& stack) { if (temp_raised) { // add windows that go on top extract_windows_to_stack(temp_raised->getWindows(), stack); } FbTk::Layer::ItemList::const_iterator it = items.begin(); FbTk::Layer::ItemList::const_iterator it_end = items.end(); for (; it != it_end; ++it) { // add all the windows from each other item if (*it == temp_raised) { continue; } extract_windows_to_stack((*it)->getWindows(), stack); } } void restack(const FbTk::Layer::ItemList& items, LayerItem* temp_raised) { std::vector stack; extract_windows_to_stack(items, temp_raised, stack); if (!stack.empty()) XRestackWindows(FbTk::App::instance()->display(), &stack[0], stack.size()); } } // end of anonymous namespace void Layer::restack(const std::vector& layers) { std::vector stack; std::vector::const_iterator l; for (l = layers.begin(); l != layers.end(); ++l) { extract_windows_to_stack((*l)->itemList(), 0, stack); } if (!stack.empty()) XRestackWindows(FbTk::App::instance()->display(), &stack[0], stack.size()); } Layer::Layer(MultLayers &manager, int layernum): m_manager(manager), m_layernum(layernum), m_needs_restack(false) { } Layer::~Layer() { } void Layer::restack() { if (m_manager.isUpdatable()) { ::restack(itemList(), 0); m_needs_restack = false; } } void Layer::restackAndTempRaise(LayerItem &item) { ::restack(itemList(), &item); } int Layer::countWindows() { return ::count_windows(itemList()); } // Stack all windows associated with 'item' below the 'above' item void Layer::stackBelowItem(LayerItem &item, LayerItem *above) { if (!m_manager.isUpdatable()) return; // if there are no windows provided for above us, // then we must restack the entire layer // we can't do XRaiseWindow because a restack then causes OverrideRedirect // windows to get pushed to the bottom if (!above || m_needs_restack) { // must need to go right to top restack(); return; } std::vector stack; // We do have a window to stack below // so we put it on top, and fill the rest of the array with the ones to go below it. // assume that above's window exists stack.push_back(above->getWindows().back()->window()); // fill the rest of the array extract_windows_to_stack(item.getWindows(), stack); XRestackWindows(FbTk::App::instance()->display(), &stack[0], stack.size()); } // We can't just use Restack here, because it won't do anything if they're // already in the same relative order excluding other windows void Layer::alignItem(LayerItem &item) { if (itemList().front() == &item) { stackBelowItem(item, m_manager.getLowestItemAboveLayer(m_layernum)); return; } // Note: some other things effectively assume that the window list is // sorted from highest to lowest // get our item iterator myit = std::find(itemList().begin(), itemList().end(), &item); iterator it = myit; // go to the one above it in our layer (top is front, so we decrement) --it; // keep going until we find one that is currently visible to the user while (it != itemList().begin() && !(*it)->visible()) --it; if (it == itemList().begin() && !(*it)->visible()) // reached front item, but it wasn't visible, therefore it was already raised stackBelowItem(item, m_manager.getLowestItemAboveLayer(m_layernum)); else stackBelowItem(item, *it); } Layer::iterator Layer::insert(LayerItem &item, unsigned int pos) { #ifdef DEBUG // at this point we don't support insertions into a layer other than at the top if (pos != 0) cerr<<__FILE__<<"("<<__LINE__<<"): Insert using non-zero position not valid in Layer"< #include // size_t namespace FbTk { class LayerItem; class Layer; class MultLayers { public: explicit MultLayers(int numlayers); ~MultLayers(); LayerItem *getLowestItemAboveLayer(int layernum); /// if there are none below, it will return null LayerItem *getItemBelow(LayerItem &item); LayerItem *getItemAbove(LayerItem &item); void addToTop(LayerItem &item, int layernum); void remove(LayerItem &item); // raise/lower the whole layer void raise(Layer &layer); void lower(Layer &layer); // raise/lower the item a whole layer, not just to top of current layer void raiseLayer(LayerItem &item); void lowerLayer(LayerItem &item); void moveToLayer(LayerItem &item, int layernum); int size(); Layer *getLayer(size_t num); const Layer *getLayer(size_t num) const; bool isUpdatable() const { return m_lock == 0; } void lock() { ++m_lock; } void unlock() { if (--m_lock == 0) restack(); } private: void restack(); std::vector m_layers; int m_lock; }; } #endif // FBTK_MULTLAYERS_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/MultLayers.cc0000644000175000017500000000013112106662425020300 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.54781246 30 ctime=1360750008.551811615 fluxbox-1.3.5/src/FbTk/MultLayers.cc0000644000175000017500000000763412106662425016342 0ustar00mgmg00000000000000// MultLayers.cc for FbTk - fluxbox toolkit // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "MultLayers.hh" #include "Layer.hh" #include "LayerItem.hh" #include "App.hh" #include "FbWindow.hh" #include "Util.hh" using namespace FbTk; MultLayers::MultLayers(int numlayers) : m_lock(0) { for (int i=0; i < numlayers; ++i) m_layers.push_back(new Layer(*this, i)); } MultLayers::~MultLayers() { while (!m_layers.empty()) { delete m_layers.back(); m_layers.pop_back(); } } LayerItem *MultLayers::getLowestItemAboveLayer(int layernum) { if (layernum >= static_cast(m_layers.size()) || layernum <= 0) return 0; layernum--; // next one up LayerItem *item = 0; while (layernum >= 0 && (item = m_layers[layernum]->getLowestItem()) == 0) layernum--; return item; } void MultLayers::addToTop(LayerItem &item, int layernum) { layernum = FbTk::Util::clamp(layernum, 0, static_cast(m_layers.size()) - 1); m_layers[layernum]->insert(item); restack(); } // raise the whole layer void MultLayers::raise(Layer &layer) { int layernum = layer.getLayerNum(); if (layernum >= static_cast(m_layers.size() - 1)) // already on top return; // not yet implemented } // lower the whole layer void MultLayers::lower(Layer &layer) { int layernum = layer.getLayerNum(); if (layernum == 0) // already on bottom return; // not yet implemented } /* raise the item one level */ void MultLayers::raiseLayer(LayerItem &item) { // get the layer it is in Layer &curr_layer = item.getLayer(); moveToLayer(item, curr_layer.getLayerNum()-1); } /* raise the item one level */ void MultLayers::lowerLayer(LayerItem &item) { // get the layer it is in Layer &curr_layer = item.getLayer(); moveToLayer(item, curr_layer.getLayerNum()+1); } void MultLayers::moveToLayer(LayerItem &item, int layernum) { // get the layer it is in Layer &curr_layer = item.getLayer(); // do nothing if the item already is in the requested layer if (curr_layer.getLayerNum() == layernum) return; layernum = FbTk::Util::clamp(layernum, 0, static_cast(m_layers.size()) - 1); item.setLayer(*m_layers[layernum]); } void MultLayers::restack() { if (!isUpdatable()) return; Layer::restack(m_layers); } int MultLayers::size() { int num = 0; for (size_t i = 0; i < m_layers.size(); i++) { num += m_layers[i]->countWindows(); } return num; } Layer *MultLayers::getLayer(size_t num) { if (num >= m_layers.size()) return 0; return m_layers[num]; } const Layer *MultLayers::getLayer(size_t num) const { if (num >= m_layers.size()) return 0; return m_layers[num]; } fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Container.cc0000644000175000017500000000013112106662425020121 xustar000000000000000030 mtime=1360749845.887812656 29 atime=1360749876.54781246 30 ctime=1360750008.551811615 fluxbox-1.3.5/src/FbTk/Container.cc0000644000175000017500000003332512106662425016157 0ustar00mgmg00000000000000// Container.cc // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "Container.hh" #include "Button.hh" #include "TextUtils.hh" #include "EventManager.hh" #include "CompareEqual.hh" #include "STLUtil.hh" #include namespace FbTk { typedef CompareEqual_base CompareWindow; Container::Container(const FbWindow &parent, bool auto_resize): FbWindow(parent, 0, 0, 1, 1, ExposureMask), m_orientation(ROT0), m_align(RELATIVE), m_max_size_per_client(60), m_max_total_size(0), m_update_lock(false), m_auto_resize(auto_resize) { EventManager::instance()->add(*this, *this); } Container::~Container() { // ~FbWindow cleans event manager } void Container::resize(unsigned int width, unsigned int height) { // do we need to resize? if (FbWindow::width() == width && FbWindow::height() == height) return; FbWindow::resize(width, height); repositionItems(); } void Container::moveResize(int x, int y, unsigned int width, unsigned int height) { FbWindow::moveResize(x, y, width, height); repositionItems(); } void Container::insertItem(Item item, int pos) { if (find(item) != -1) return; // it must be a child of this window if (item->parent() != this) return; item->setOrientation(m_orientation); if (pos >= size() || pos < 0) { m_item_list.push_back(item); } else if (pos == 0) { m_item_list.push_front(item); } else { ItemList::iterator it = begin(); for (; pos != 0; ++it, --pos) continue; m_item_list.insert(it, item); } // make sure we dont have duplicate items m_item_list.unique(); repositionItems(); } void Container::moveItem(Item item, int movement) { int index = find(item); const size_t size = m_item_list.size(); if (index < 0 || (movement % static_cast(size)) == 0) { return; } int newindex = (index + movement) % static_cast(size); if (newindex < 0) // neg wrap newindex += size; ItemList::iterator it = std::find(begin(), end(), item); m_item_list.erase(it); for (it = begin(); newindex >= 0; ++it, --newindex) { if (newindex == 0) { break; } } m_item_list.insert(it, item); repositionItems(); } // returns true if something was done bool Container::moveItemTo(Item item, int x, int y) { Window parent_return=0, root_return=0, *children_return = NULL; unsigned int nchildren_return; // get the root window if (!XQueryTree(display(), window(), &root_return, &parent_return, &children_return, &nchildren_return)) parent_return = parent_return; if (children_return != NULL) XFree(children_return); int dest_x = 0, dest_y = 0; Window itemwin = 0; if (!XTranslateCoordinates(display(), root_return, window(), x, y, &dest_x, &dest_y, &itemwin)) return false; ItemList::iterator it = find_if(begin(), end(), CompareWindow(&FbWindow::window, itemwin)); // not found :( if (it == end()) return false; Window child_return = 0; //make x and y relative to our item if (!XTranslateCoordinates(display(), window(), itemwin, dest_x, dest_y, &x, &y, &child_return)) return false; return true; } bool Container::removeItem(Item item) { ItemList::iterator it = begin(); ItemList::iterator it_end = end(); for (; it != it_end && (*it) != item; ++it); if (it == it_end) return false; m_item_list.erase(it); repositionItems(); return true; } bool Container::removeItem(int index) { if (index < 0 || index > size()) return false; ItemList::iterator it = begin(); for (; index != 0; ++it, --index) continue; m_item_list.erase(it); repositionItems(); return true; } void Container::removeAll() { m_item_list.clear(); if (!m_update_lock) { clear(); } } int Container::find(ConstItem item) { ItemList::iterator it = m_item_list.begin(); ItemList::iterator it_end = m_item_list.end(); int index = 0; for (; it != it_end; ++it, ++index) { if ((*it) == item) break; } if (it == it_end) return -1; return index; } void Container::setMaxSizePerClient(unsigned int size) { if (size != m_max_size_per_client) { m_max_size_per_client = size; repositionItems(); } } void Container::setMaxTotalSize(unsigned int size) { if (m_max_total_size == size) return; m_max_total_size = size; repositionItems(); return; } void Container::setAlignment(Container::Alignment a) { if (m_align != a) { m_align = a; repositionItems(); } } void Container::exposeEvent(XExposeEvent &event) { if (!m_update_lock) { clearArea(event.x, event.y, event.width, event.height); } } bool Container::tryExposeEvent(XExposeEvent &event) { if (event.window == window()) { exposeEvent(event); return true; } ItemList::iterator it = find_if(begin(), end(), CompareWindow(&FbWindow::window, event.window)); // not found :( if (it == end()) return false; (*it)->exposeEvent(event); return true; } bool Container::tryButtonPressEvent(XButtonEvent &event) { if (event.window == window()) { // we don't have a buttonrelease event atm return true; } ItemList::iterator it = find_if(begin(), end(), CompareWindow(&FbWindow::window, event.window)); // not found :( if (it == end()) return false; (*it)->buttonPressEvent(event); return true; } bool Container::tryButtonReleaseEvent(XButtonEvent &event) { if (event.window == window()) { // we don't have a buttonrelease event atm return true; } ItemList::iterator it = find_if(begin(), end(), CompareWindow(&FbWindow::window, event.window)); // not found :( if (it == end()) return false; (*it)->buttonReleaseEvent(event); return true; } void Container::repositionItems() { if (empty() || m_update_lock) return; /** NOTE: all calculations here are done in non-rotated space */ unsigned int max_width_per_client = maxWidthPerClient(); unsigned int borderW = m_item_list.front()->borderWidth(); size_t num_items = m_item_list.size(); unsigned int total_width; unsigned int cur_width; unsigned int height; // unrotate if (m_orientation == ROT0 || m_orientation == ROT180) { total_width = cur_width = width(); height = this->height(); } else { total_width = cur_width = this->height(); height = width(); } // if we have a max total size, then we must also resize ourself // within that bound Alignment align = alignment(); if (m_max_total_size && align != RELATIVE) { total_width = (max_width_per_client + borderW) * num_items - borderW; if (total_width > m_max_total_size) { total_width = m_max_total_size; if (m_max_total_size > ((num_items - 1)*borderW)) { // don't go negative with unsigned nums max_width_per_client = ( m_max_total_size - (num_items - 1)*borderW ) / num_items; } else max_width_per_client = 1; } if (m_auto_resize && total_width != cur_width) { // calling Container::resize here risks infinite loops unsigned int neww = total_width, newh = height; translateSize(m_orientation, neww, newh); if (!(align == LEFT && (m_orientation == ROT0 || m_orientation == ROT90)) && !(align == RIGHT && (m_orientation == ROT180 || m_orientation == ROT270))) { int deltax = 0; int deltay = 0; if (m_orientation == ROT0 || m_orientation == ROT180) deltax = - (total_width - cur_width); else deltay = - (total_width - cur_width); // TODO: rounding errors could accumulate in this process if (align == CENTER) { deltax = deltax/2; deltay = deltay/2; } FbWindow::moveResize(x() + deltax, y() + deltay, neww, newh); } else { FbWindow::resize(neww, newh); } } } ItemList::iterator it = begin(); const ItemList::iterator it_end = end(); int rounding_error = 0; if (align == RELATIVE || total_width == m_max_total_size) { rounding_error = total_width - ((max_width_per_client + borderW)* num_items - borderW); } int next_x = -borderW; // zero so the border of the first shows int extra = 0; int direction = 1; if (align == RIGHT) { direction = -1; next_x = total_width - max_width_per_client - borderW; } int tmpx, tmpy; unsigned int tmpw, tmph; for (; it != it_end; ++it, next_x += direction*(max_width_per_client + borderW + extra)) { // we only need to do error stuff with alignment RELATIVE // OR with max_total_size triggered if (rounding_error) { --rounding_error; extra = 1; //counter for different direction if (align == RIGHT && !extra) --next_x; } else { if (extra && align == RIGHT) // last extra ++next_x; extra = 0; } // rotate the x and y coords tmpx = next_x; tmpy = -borderW; tmpw = max_width_per_client + extra; tmph = height; translateCoords(m_orientation, tmpx, tmpy, total_width, height); translatePosition(m_orientation, tmpx, tmpy, tmpw, tmph, borderW); translateSize(m_orientation, tmpw, tmph); // resize each clients including border in size (*it)->moveResize(tmpx, tmpy, tmpw, tmph); // moveresize does a clear } } unsigned int Container::maxWidthPerClient() const { switch (alignment()) { case RIGHT: case CENTER: case LEFT: return m_max_size_per_client; break; case RELATIVE: if (size() == 0) return width(); else { unsigned int borderW = m_item_list.front()->borderWidth(); // there're count-1 borders to fit in with the windows // -> 1 per window plus end unsigned int w = width(), h = height(); translateSize(m_orientation, w, h); if (w < (size()-1)*borderW) return 1; else return (w - (size() - 1) * borderW) / size(); } break; } // this will never happen anyway return 1; } void Container::for_each(std::mem_fun_t function) { std::for_each(begin(), end(), function); } void Container::setAlpha(int alpha) { FbWindow::setAlpha(alpha); STLUtil::forAll(m_item_list, std::bind2nd(std::mem_fun(&Button::setAlpha), alpha)); } void Container::parentMoved() { FbWindow::parentMoved(); STLUtil::forAll(m_item_list, std::mem_fun(&Button::parentMoved)); } void Container::invalidateBackground() { FbWindow::invalidateBackground(); STLUtil::forAll(m_item_list, std::mem_fun(&Button::invalidateBackground)); } void Container::clear() { STLUtil::forAll(m_item_list, std::mem_fun(&Button::clear)); } void Container::setOrientation(Orientation orient) { if (m_orientation == orient) return; FbWindow::invalidateBackground(); STLUtil::forAll(m_item_list, std::bind2nd(std::mem_fun(&Button::setOrientation), orient)); if (((m_orientation == ROT0 || m_orientation == ROT180) && (orient == ROT90 || orient == ROT270)) || ((m_orientation == ROT90 || m_orientation == ROT270) && (orient == ROT0 || orient == ROT180))) { // flip width and height m_orientation = orient; resize(height(), width()); } else { m_orientation = orient; repositionItems(); } } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Container.hh0000644000175000017500000000013112106662425020133 xustar000000000000000030 mtime=1360749845.887812656 29 atime=1360749876.54781246 30 ctime=1360750008.555811615 fluxbox-1.3.5/src/FbTk/Container.hh0000644000175000017500000001003712106662425016164 0ustar00mgmg00000000000000// Container.hh // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_CONTAINER_HH #define FBTK_CONTAINER_HH #include "FbWindow.hh" #include "EventHandler.hh" #include "NotCopyable.hh" #include "Orientation.hh" #include #include namespace FbTk { class Button; class Container: public FbWindow, public EventHandler, private NotCopyable { public: // LEFT, RIGHT => fixed total width, fixed icon size // RELATIVE => fixed total width, relative/variable icon size enum Alignment { LEFT, CENTER, RIGHT, RELATIVE }; typedef Button * Item; typedef const Button * ConstItem; typedef std::list ItemList; explicit Container(const FbWindow &parent, bool auto_resize = true); virtual ~Container(); // manipulators void resize(unsigned int width, unsigned int height); void moveResize(int x, int y, unsigned int width, unsigned int height); void insertItem(Item item, int pos = -1); bool removeItem(int item); // return true if something was removed bool removeItem(Item item); // return true if something was removed void removeAll(); void moveItem(Item item, int movement); // wraps around bool moveItemTo(Item item, int x, int y); int find(ConstItem item); void setMaxSizePerClient(unsigned int size); void setMaxTotalSize(unsigned int size); void setAlignment(Alignment a); void setOrientation(Orientation orient); Item back() { return m_item_list.back(); } /// force update void update() { repositionItems(); } /// so we can add items without having an graphic update for each item void setUpdateLock(bool value) { m_update_lock = value; } /// event handler void exposeEvent(XExposeEvent &event); // for use when embedded in something that may passthrough bool tryExposeEvent(XExposeEvent &event); bool tryButtonPressEvent(XButtonEvent &event); bool tryButtonReleaseEvent(XButtonEvent &event); void parentMoved(); void invalidateBackground(); /// accessors Alignment alignment() const { return m_align; } Orientation orientation() const { return m_orientation; } int size() const { return m_item_list.size(); } bool empty() const { return m_item_list.empty(); } unsigned int maxWidthPerClient() const; bool updateLock() const { return m_update_lock; } void for_each(std::mem_fun_t function); void setAlpha(int alpha); // set alpha on all windows ItemList::iterator begin() { return m_item_list.begin(); } ItemList::iterator end() { return m_item_list.end(); } void clear(); // clear all windows private: void repositionItems(); Orientation m_orientation; Alignment m_align; unsigned int m_max_size_per_client; unsigned int m_max_total_size; ItemList m_item_list; bool m_update_lock, m_auto_resize; }; } // end namespace FbTk #endif // FBTK_CONTAINER_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/TextButton.cc0000644000175000017500000000013112106662425020317 xustar000000000000000030 mtime=1360749845.895812656 29 atime=1360749876.54381246 30 ctime=1360750008.555811615 fluxbox-1.3.5/src/FbTk/TextButton.cc0000644000175000017500000001635012106662425016354 0ustar00mgmg00000000000000// TextButton.cc for Fluxbox Window Manager // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "TextButton.hh" #include "TextUtils.hh" #include "Font.hh" #include "GContext.hh" #include namespace FbTk { TextButton::TextButton(const FbTk::FbWindow &parent, FbTk::Font &font, const FbTk::BiDiString &text): FbTk::Button(parent, 0, 0, 10, 10), m_font(&font), m_text(text), m_justify(FbTk::LEFT), m_orientation(FbTk::ROT0), m_bevel(1), m_left_padding(0), m_right_padding(0) { setRenderer(*this); } void TextButton::resize(unsigned int width, unsigned int height) { if (this->width() == width && height == this->height()) return; Button::resize(width, height); } void TextButton::moveResize(int x, int y, unsigned int width, unsigned int height) { if (this->width() == width && height == this->height() && x == this->x() && y == this->y()) return; Button::moveResize(x, y, width, height); } void TextButton::setJustify(FbTk::Justify just) { m_justify = just; } bool TextButton::setOrientation(FbTk::Orientation orient) { if (orient == m_orientation || !m_font->validOrientation(orient)) return false; invalidateBackground(); if (((m_orientation == FbTk::ROT0 || m_orientation == FbTk::ROT180) && (orient == FbTk::ROT90 || orient == FbTk::ROT270)) || ((m_orientation == FbTk::ROT90 || m_orientation == FbTk::ROT270) && (orient == FbTk::ROT0 || orient == FbTk::ROT180))) { m_orientation = orient; resize(height(), width()); } else { m_orientation = orient; } return true; } void TextButton::setText(const FbTk::BiDiString &text) { if (m_text.logical() != text.logical()) { m_text = text; updateBackground(false); clear(); } } void TextButton::setFont(FbTk::Font &font) { // no need to set new font if it's the same if (&font == m_font) return; m_font = &font; font.validOrientation(m_orientation); // load the orientation! } void TextButton::setTextPaddingLeft(unsigned int leftpadding) { m_left_padding = leftpadding; } void TextButton::setTextPaddingRight(unsigned int rightpadding) { m_right_padding = rightpadding; } void TextButton::setTextPadding(unsigned int padding) { setTextPaddingLeft(padding/2); setTextPaddingRight(padding/2); } /// clear window and redraw text void TextButton::clear() { TextButton::clearArea(0, 0, width(), height()); } void TextButton::clearArea(int x, int y, unsigned int width, unsigned int height, bool exposure) { Button::clearArea(x, y, width, height, exposure); } unsigned int TextButton::textWidth() const { return font().textWidth(text()); } void TextButton::renderForeground(FbWindow &win, FbDrawable &drawable) { // (win should always be *this, no need to check) drawText(0, 0, &drawable); } void TextButton::drawText(int x_offset, int y_offset, FbDrawable *drawable) { if (drawable == 0) drawable = this; const FbString& visual = text().visual(); unsigned int textlen = visual.size(); unsigned int button_width = width(); unsigned int button_height = height(); translateSize(m_orientation, button_width, button_height); // horizontal alignment, cut off text if needed int align_x = FbTk::doAlignment(button_width - x_offset - m_left_padding - m_right_padding, bevel(), justify(), font(), visual.data(), visual.size(), textlen); // return new text len // // we center the text vertically. to do this we have to nudge the // baseline a little bit down so the "middle" of the glyph is placed // on the middle of the button. we "assume", that ascent/2 is roughly // the middle of the glyph. example: // // +== ascent <--------->== +===================== // | | | | // | | ggggg | | ascent <---------> // | | g gg | | | | // | baseline < glyph | | | ggggg | // | | g | -- middle of button -- | | g gg | // | descent < ggggg | | baseline < glyph | // | height |_________| | | g | // | | descent < ggggg | // | | height |_________| // | | // +======================= +===================== // // ascent = 4 // button_height = 11 // baseline = (11 + 4) / 2 - 1 = 6 // int baseline_x = align_x + x_offset + m_left_padding; int baseline_y = ((button_height + font().ascent()) / 2) - 1 + y_offset; // TODO: remove debug output fprintf(stderr, "%d | %d %d %d\n", height(), font().height(), font().ascent(), font().descent()); // give it ROT0 style coords translateCoords(m_orientation, baseline_x, baseline_y, button_width, button_height); font().drawText(*drawable, screenNumber(), gc(), visual.c_str(), textlen, baseline_x, baseline_y, m_orientation); } bool TextButton::textExceeds(int x_offset) { const FbString& visual = text().visual(); unsigned int textlen = visual.size(); unsigned int button_width = width(); unsigned int button_height = height(); translateSize(m_orientation, button_width, button_height); FbTk::doAlignment(button_width - x_offset - m_left_padding - m_right_padding, bevel(), justify(), font(), visual.data(), visual.size(), textlen); // return new text len return visual.size() > textlen; } void TextButton::exposeEvent(XExposeEvent &event) { clearArea(event.x, event.y, event.width, event.height, false); } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/TextButton.hh0000644000175000017500000000013112106662425020331 xustar000000000000000030 mtime=1360749845.895812656 29 atime=1360749876.54381246 30 ctime=1360750008.555811615 fluxbox-1.3.5/src/FbTk/TextButton.hh0000644000175000017500000000626012106662425016365 0ustar00mgmg00000000000000// TextButton.hh for Fluxbox Window Manager // Copyright (c) 2003 Henrik Kinnunen (fluxgen[at]fluxbox.org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_TEXTBUTTON_HH #define FBTK_TEXTBUTTON_HH #include "Button.hh" #include "FbString.hh" namespace FbTk { class Font; /// Displays a text on a button class TextButton: public FbTk::Button, FbTk::FbWindowRenderer { public: TextButton(const FbTk::FbWindow &parent, FbTk::Font &font, const FbTk::BiDiString &text); void setJustify(FbTk::Justify just); bool setOrientation(FbTk::Orientation orient); void setText(const FbTk::BiDiString &text); void setFont(FbTk::Font &font); void setTextPadding(unsigned int padding); void setTextPaddingLeft(unsigned int leftpadding); void setTextPaddingRight(unsigned int rightpadding); void resize(unsigned int width, unsigned int height); void moveResize(int x, int y, unsigned int width, unsigned int height); /// clears window and redraw text void clear(); /// clears area and redraws text void clearArea(int x, int y, unsigned int width, unsigned int height, bool exposure = false); void exposeEvent(XExposeEvent &event); //void renderForeground(FbDrawable &drawable); void renderForeground(FbWindow &win, FbDrawable &drawable); FbTk::Justify justify() const { return m_justify; } const BiDiString &text() const { return m_text; } FbTk::Font &font() const { return *m_font; } FbTk::Orientation orientation() const { return m_orientation; } unsigned int textWidth() const; int bevel() const { return m_bevel; } protected: virtual void drawText(int x_offset, int y_offset, FbDrawable *drawable_override); // return true if the text will be truncated bool textExceeds(int x_offset); private: FbTk::Font *m_font; BiDiString m_text; FbTk::Justify m_justify; FbTk::Orientation m_orientation; int m_bevel; unsigned int m_left_padding; ///< space between buttonborder and text unsigned int m_right_padding; ///< space between buttonborder and text }; } // end namespace FbTk #endif // FBTK_TEXTBUTTON_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Button.cc0000644000175000017500000000013112106662425017452 xustar000000000000000030 mtime=1360749845.887812656 29 atime=1360749876.53981246 30 ctime=1360750008.555811615 fluxbox-1.3.5/src/FbTk/Button.cc0000644000175000017500000001205412106662425015504 0ustar00mgmg00000000000000// Button.cc for FbTk - fluxbox toolkit // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "Button.hh" #include "Command.hh" #include "EventManager.hh" #include "App.hh" namespace FbTk { Button::Button(int screen_num, int x, int y, unsigned int width, unsigned int height): FbWindow(screen_num, x, y, width, height, ExposureMask | ButtonPressMask | EnterWindowMask | LeaveWindowMask | ButtonReleaseMask), m_background_pm(0), m_pressed_pm(0), m_pressed_color(), m_gc(DefaultGC(FbTk::App::instance()->display(), screen_num)), m_pressed(false), mark_if_deleted(0) { // add this to eventmanager FbTk::EventManager::instance()->add(*this, *this); } Button::Button(const FbWindow &parent, int x, int y, unsigned int width, unsigned int height): FbWindow(parent, x, y, width, height, ExposureMask | ButtonPressMask | ButtonReleaseMask | EnterWindowMask | LeaveWindowMask), m_background_pm(0), m_pressed_pm(0), m_pressed_color(), m_gc(DefaultGC(FbTk::App::instance()->display(), screenNumber())), m_pressed(false), mark_if_deleted(0) { // add this to eventmanager FbTk::EventManager::instance()->add(*this, *this); } Button::~Button() { if (mark_if_deleted) { *mark_if_deleted = true; } } void Button::setOnClick(RefCount > &cmd, int button) { // we only handle buttons 1 to 5 if (button > 5 || button == 0) return; //set on click command for the button m_onclick[button - 1] = cmd; } void Button::setPressedPixmap(Pixmap pm) { m_pressed_pm = pm; } void Button::setPressedColor(const FbTk::Color &color) { m_pressed_pm = None; m_pressed_color = color; } void Button::setBackgroundColor(const Color &color) { m_background_pm = 0; // we're using background color now m_background_color = color; FbTk::FbWindow::setBackgroundColor(color); } void Button::setBackgroundPixmap(Pixmap pm) { m_background_pm = pm; FbTk::FbWindow::setBackgroundPixmap(pm); } void Button::enterNotifyEvent(XCrossingEvent &ce){ } void Button::leaveNotifyEvent(XCrossingEvent &ce){ } void Button::buttonPressEvent(XButtonEvent &event) { bool update = false; if (m_pressed_pm != 0) { update = true; FbTk::FbWindow::setBackgroundPixmap(m_pressed_pm); } else if (m_pressed_color.isAllocated()) { update = true; FbTk::FbWindow::setBackgroundColor(m_pressed_color); } m_pressed = true; if (update) { clear(); } } void Button::buttonReleaseEvent(XButtonEvent &event) { if (!m_pressed) // we don't want to pick up clicks from other widgets return; m_pressed = false; bool update = false; bool been_deleted = false; mark_if_deleted = &been_deleted; // This command may result in this object being deleted // hence the mark_if_deleted mechanism so that we can // update our state after the command if (event.button > 0 && event.button <= 5 && event.x >= -static_cast(borderWidth()) && event.x <= static_cast(width()+borderWidth()) && event.y >= -static_cast(borderWidth()) && event.y <= static_cast(height()+borderWidth()) && m_onclick[event.button -1].get() != 0) m_onclick[event.button - 1]->execute(); if (!been_deleted) { mark_if_deleted = 0; if (m_background_pm) { if (m_pressed_pm != 0 || m_pressed_color.isAllocated()) { update = true; setBackgroundPixmap(m_background_pm); } } else if (m_pressed_pm != 0 || m_pressed_color.isAllocated()) { update = true; setBackgroundColor(m_background_color); } if (update) clear(); // clear background } } void Button::exposeEvent(XExposeEvent &event) { clearArea(event.x, event.y, event.width, event.height); } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Button.hh0000644000175000017500000000013112106662425017464 xustar000000000000000030 mtime=1360749845.887812656 29 atime=1360749876.53981246 30 ctime=1360750008.555811615 fluxbox-1.3.5/src/FbTk/Button.hh0000644000175000017500000000727512106662425015527 0ustar00mgmg00000000000000// Button.hh for FbTk - Fluxbox Toolkit // Copyright (c) 2002 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_BUTTON_HH #define FBTK_BUTTON_HH #include "EventHandler.hh" #include "NotCopyable.hh" #include "RefCount.hh" #include "FbWindow.hh" #include "Command.hh" #include "Color.hh" #include "Orientation.hh" namespace FbTk { class Theme; class Button:public FbTk::FbWindow, public EventHandler, private NotCopyable { public: Button(int screen_num, int x, int y, unsigned int width, unsigned int height); Button(const FbWindow &parent, int x, int y, unsigned int width, unsigned int height); virtual ~Button(); /// sets action when the button is clicked with #button mouse btn void setOnClick(RefCount > &com, int button = 1); /// sets the pixmap to be viewed when the button is pressed virtual void setPressedPixmap(Pixmap pm); virtual void setPressedColor(const FbTk::Color &color); /// sets graphic context for drawing void setGC(GC gc) { m_gc = gc; } /// sets background pixmap, this will override background color virtual void setBackgroundPixmap(Pixmap pm); /// sets background color virtual void setBackgroundColor(const Color &color); virtual bool setOrientation(FbTk::Orientation orient) { return orient == FbTk::ROT0; } /** @name eventhandlers */ //@{ virtual void buttonPressEvent(XButtonEvent &event); virtual void buttonReleaseEvent(XButtonEvent &event); virtual void enterNotifyEvent(XCrossingEvent &ce); virtual void leaveNotifyEvent(XCrossingEvent &ce); virtual void exposeEvent(XExposeEvent &event); //@} // in case it cares about a theme virtual void updateTheme(const FbTk::Theme &theme) {} /// @return true if the button is pressed, else false bool pressed() const { return m_pressed; } GC gc() const { return m_gc; } Pixmap backgroundPixmap() const { return m_background_pm; } Pixmap pressedPixmap() const { return m_pressed_pm; } const Color &backgroundColor() const { return m_background_color; } const Color &pressedColor() const { return m_pressed_color; } private: Pixmap m_background_pm; ///< background pixmap Color m_background_color; ///< background color Pixmap m_pressed_pm; ///< pressed pixmap Color m_pressed_color; GC m_gc; ///< graphic context for button bool m_pressed; ///< if the button is pressed bool *mark_if_deleted; ///< if the button is deleted and this is set, make it true RefCount > m_onclick[5]; ///< what to do when this button is clicked with button num }; } // namespace FbTk #endif // FBTK_BUTTON_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/XFontImp.hh0000644000175000017500000000013112106662425017715 xustar000000000000000030 mtime=1360749845.895812656 29 atime=1360749876.53981246 30 ctime=1360750008.559811615 fluxbox-1.3.5/src/FbTk/XFontImp.hh0000644000175000017500000000543212106662425015751 0ustar00mgmg00000000000000// XFontImp.hh for FbTk fluxbox toolkit // Copyright (c) 2002-2004 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_XFONTIMP_HH #define FBTK_XFONTIMP_HH #include "FontImp.hh" namespace FbTk { /// regular X font implementation for FbTk class XFontImp:public FbTk::FontImp { public: explicit XFontImp(const char *filename = 0); ~XFontImp(); bool load(const std::string &filename); unsigned int textWidth(const char* text, unsigned int len) const; unsigned int height() const; int ascent() const; int descent() const { return m_fontstruct ? m_fontstruct->descent : 0; } void drawText(const FbDrawable &w, int screen, GC gc, const char* text, size_t len, int x, int y, FbTk::Orientation orient); bool validOrientation(FbTk::Orientation orient); bool loaded() const { return m_fontstruct != 0; } private: struct BitmapStruct { int bit_w; int bit_h; Pixmap bm; }; struct XRotCharStruct { int ascent; int descent; int lbearing; int rbearing; int width; BitmapStruct glyph; }; struct XRotFontStruct { int height; int max_ascent; int max_descent; int max_char; int min_char; XRotCharStruct per_char[95]; }; void rotate(FbTk::Orientation orient); void freeRotFont(XRotFontStruct * rotfont); void drawRotText(Drawable w, int screen, GC gc, const char* text, size_t len, int x, int y, FbTk::Orientation orient) const; XRotFontStruct *m_rotfonts[4]; ///< rotated font structure (only 3 used) bool m_rotfonts_loaded[4]; // whether we've tried yet XFontStruct *m_fontstruct; ///< X font structure }; } // end namespace FbTk #endif // XFONTIMP_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/XFontImp.cc0000644000175000017500000000013112106662425017703 xustar000000000000000030 mtime=1360749845.895812656 29 atime=1360749876.53581246 30 ctime=1360750008.559811615 fluxbox-1.3.5/src/FbTk/XFontImp.cc0000644000175000017500000003144112106662425015736 0ustar00mgmg00000000000000// XFontImp.cc for FbTk fluxbox toolkit // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "XFontImp.hh" #include "App.hh" #include "GContext.hh" #include "FbPixmap.hh" #include "I18n.hh" #include #include #include #ifdef HAVE_CSTDIO #include #else #include #endif #ifdef HAVE_CSTRING #include #else #include #endif #include using std::cerr; using std::endl; using std::string; using std::nothrow; namespace FbTk { XFontImp::XFontImp(const char *fontname):m_fontstruct(0) { for (int i = ROT0; i <= ROT270; ++i) { m_rotfonts[i] = 0; m_rotfonts_loaded[i] = false; } if (fontname != 0) load(fontname); } XFontImp::~XFontImp() { if (m_fontstruct != 0) XFreeFont(App::instance()->display(), m_fontstruct); for (int i = ROT0; i <= ROT270; ++i) if (m_rotfonts[i] != 0) freeRotFont(m_rotfonts[i]); } int XFontImp::ascent() const { if (m_fontstruct == 0) return 0; return m_fontstruct->ascent; } bool XFontImp::load(const string &fontname) { XFontStruct *font = XLoadQueryFont(App::instance()->display(), fontname.c_str()); if (font == 0) return false; if (m_fontstruct != 0) // free old font struct, if any XFreeFont(App::instance()->display(), m_fontstruct); m_fontstruct = font; //set new font for (int i = ROT0; i <= ROT270; ++i) { m_rotfonts_loaded[i] = false; if (m_rotfonts[i] != 0) { freeRotFont(m_rotfonts[i]); m_rotfonts[i] = 0; } } return true; } void XFontImp::drawText(const FbDrawable &w, int screen, GC gc, const char* text, size_t len, int x, int y, FbTk::Orientation orient) { if (!text || !*text || m_fontstruct == 0) return; std::string localestr = FbStringUtil::FbStrToLocale(FbString(text, len)); // use roated font functions? if (orient != ROT0 && validOrientation(orient)) { drawRotText(w.drawable(), screen, gc, localestr.c_str(), localestr.size(), x, y, orient); return; } XSetFont(w.display(), gc, m_fontstruct->fid); XDrawString(w.display(), w.drawable(), gc, x, y, localestr.data(), localestr.size()); } unsigned int XFontImp::textWidth(const char* text, unsigned int size) const { if (!text || !*text || m_fontstruct == 0) return 0; std::string localestr = FbStringUtil::FbStrToLocale(FbString(text, size)); return XTextWidth(m_fontstruct, localestr.data(), localestr.size()); } unsigned int XFontImp::height() const { if (m_fontstruct == 0) return 0; return m_fontstruct->ascent + m_fontstruct->descent; } void XFontImp::rotate(FbTk::Orientation orient) { //we must have a font loaded before we rotate if (m_fontstruct == 0 || m_fontstruct->per_char == 0 || orient == ROT0) return; _FB_USES_NLS; // X system default vars Display *dpy = App::instance()->display(); Window rootwin = DefaultRootWindow(dpy); int screen = DefaultScreen(dpy); char text[3]; int ichar, i, j, index, boxlen = 60; int vert_w, vert_h, vert_len, bit_w, bit_h, bit_len; int min_char, max_char; unsigned char *vertdata, *bitdata; int ascent, descent, lbearing, rbearing; // create the depth 1 canvas bitmap FbTk::FbPixmap canvas(rootwin, boxlen, boxlen, 1); // create graphic context for our canvas FbTk::GContext font_gc(canvas); font_gc.setBackground(None); font_gc.setFont(m_fontstruct->fid); // allocate space for rotated font m_rotfonts[orient] = new(nothrow) XRotFontStruct; XRotFontStruct *rotfont = m_rotfonts[orient]; if (rotfont == 0) { cerr<<"RotFont: "<<_FBTK_CONSOLETEXT(Error, OutOfMemory, "Out of memory", "Something couldn't allocate memory")<min_char_or_byte2; max_char = m_fontstruct->max_char_or_byte2; // we only want printable chars if (min_char<32) min_char = 32; if (max_char>126) max_char = 126; /* some overall font data ... */ rotfont->min_char = min_char; rotfont->max_char = max_char; rotfont->max_ascent = m_fontstruct->max_bounds.ascent; rotfont->max_descent = m_fontstruct->max_bounds.descent; rotfont->height = rotfont->max_ascent + rotfont->max_descent; // font needs rotation // loop through each character for (ichar = min_char; ichar <= max_char; ichar++) { index = ichar - m_fontstruct->min_char_or_byte2; // per char dimensions ... ascent = rotfont->per_char[ichar-32].ascent = m_fontstruct->per_char[index].ascent; descent = rotfont->per_char[ichar-32].descent = m_fontstruct->per_char[index].descent; lbearing = rotfont->per_char[ichar-32].lbearing = m_fontstruct->per_char[index].lbearing; rbearing = rotfont->per_char[ichar-32].rbearing = m_fontstruct->per_char[index].rbearing; rotfont->per_char[ichar-32].width = m_fontstruct->per_char[index].width; // some space chars have zero body, but a bitmap can't have if (!ascent && !descent) ascent = rotfont->per_char[ichar-32].ascent = 1; if (!lbearing && !rbearing) rbearing = rotfont->per_char[ichar-32].rbearing = 1; // glyph width and height when vertical vert_w = rbearing - lbearing; vert_h = ascent + descent; // width in bytes vert_len = (vert_w-1)/8+1; font_gc.setForeground(None); canvas.fillRectangle(font_gc.gc(), 0, 0, boxlen, boxlen); // draw the character centre top right on canvas sprintf(text, "%c", ichar); font_gc.setForeground(1); XDrawImageString(dpy, canvas.drawable(), font_gc.gc(), boxlen/2 - lbearing, boxlen/2 - descent, text, 1); // reserve memory for first XImage vertdata = (unsigned char *)calloc((unsigned)(vert_len * vert_h), 1); XImage *I1 = XCreateImage(dpy, DefaultVisual(dpy, screen), 1, XYBitmap, 0, (char *)vertdata, vert_w, vert_h, 8, 0); if (I1 == None) { cerr << "RotFont: " << _FBTK_CONSOLETEXT(Error, CreateXImage, "Can't create XImage", "XCreateImage failed for some reason") << "." << endl; free(vertdata); delete rotfont; m_rotfonts[orient] = 0; return; } I1->byte_order = I1->bitmap_bit_order = MSBFirst; // extract character from canvas XGetSubImage(dpy, canvas.drawable(), boxlen/2, boxlen/2 - vert_h, vert_w, vert_h, 1, XYPixmap, I1, 0, 0); I1->format = XYBitmap; // width, height of rotated character if (orient == ROT180) { bit_w = vert_w; bit_h = vert_h; } else { bit_w = vert_h; bit_h = vert_w; } // width in bytes bit_len = (bit_w-1)/8 + 1; rotfont->per_char[ichar-32].glyph.bit_w = bit_w; rotfont->per_char[ichar-32].glyph.bit_h = bit_h; // reserve memory for the rotated image bitdata = (unsigned char *)calloc((unsigned)(bit_h * bit_len), 1); // create the image XImage *I2 = XCreateImage(dpy, DefaultVisual(dpy, screen), 1, XYBitmap, 0, (char *)bitdata, bit_w, bit_h, 8, 0); if (I2 == None) { cerr << "XFontImp: " <<_FBTK_CONSOLETEXT(Error, CreateXImage, "Can't create XImage", "XCreateImage failed for some reason") << "." << endl; free(bitdata); delete rotfont; m_rotfonts[orient] = 0; return; } I2->byte_order = I2->bitmap_bit_order = MSBFirst; // map vertical data to rotated character for (j = 0; j < bit_h; j++) { for (i = 0; i < bit_w; i++) { char val = 0; if (orient == ROT270) { val = vertdata[i*vert_len + (vert_w-j-1)/8] & (128>>((vert_w-j-1)%8)); } else if (orient == ROT180) { val = vertdata[(vert_h-j-1)*vert_len + (vert_w-i-1)/8] & (128>>((vert_w-i-1)%8)); } else { val = vertdata[(vert_h-i-1)*vert_len + j/8] & (128>>(j%8)); } if (val) { bitdata[j*bit_len + i/8] = bitdata[j*bit_len + i/8] | (128>>(i%8)); } } } // create this character's bitmap rotfont->per_char[ichar-32].glyph.bm = XCreatePixmap(dpy, rootwin, bit_w, bit_h, 1); // put the image into the bitmap XPutImage(dpy, rotfont->per_char[ichar-32].glyph.bm, font_gc.gc(), I2, 0, 0, 0, 0, bit_w, bit_h); // free the image and data XDestroyImage(I1); XDestroyImage(I2); } } void XFontImp::freeRotFont(XRotFontStruct *rotfont) { // loop through each character and free its pixmap for (int ichar = rotfont->min_char - 32; ichar <= rotfont->max_char - 32; ++ichar) { XFreePixmap(App::instance()->display(), rotfont->per_char[ichar].glyph.bm); } delete rotfont; rotfont = 0; } void XFontImp::drawRotText(Drawable w, int screen, GC gc, const char* text, size_t len, int x, int y, FbTk::Orientation orient) const { if (!text || !*text || len<1) return; Display *dpy = App::instance()->display(); static GC my_gc = 0; int xp, yp, ichar; XRotFontStruct *rotfont = m_rotfonts[orient]; if (my_gc == 0) my_gc = XCreateGC(dpy, w, 0, 0); XCopyGC(dpy, gc, GCForeground|GCBackground, my_gc); // vertical or upside down XSetFillStyle(dpy, my_gc, FillStippled); // loop through each character in texting for (size_t i = 0; i= 0 && ichar<95) { // suitable offset if (orient == ROT270) { xp = x-rotfont->per_char[ichar].ascent; yp = y-rotfont->per_char[ichar].rbearing; } else if (orient == ROT180) { xp = x-rotfont->per_char[ichar].rbearing; yp = y-rotfont->per_char[ichar].descent+1; } else { // ROT90 xp = x-rotfont->per_char[ichar].descent; yp = y+rotfont->per_char[ichar].lbearing; } // draw the glyph XSetStipple(dpy, my_gc, rotfont->per_char[ichar].glyph.bm); XSetTSOrigin(dpy, my_gc, xp, yp); XFillRectangle(dpy, w, my_gc, xp, yp, rotfont->per_char[ichar].glyph.bit_w, rotfont->per_char[ichar].glyph.bit_h); // advance position if (orient == ROT270) y -= rotfont->per_char[ichar].width; else if (orient == ROT180) x -= rotfont->per_char[ichar].width; else y += rotfont->per_char[ichar].width; } } } bool XFontImp::validOrientation(FbTk::Orientation orient) { if (orient == ROT0 || m_rotfonts[orient]) return true; if (m_rotfonts_loaded[orient]) return false; // load must have failed m_rotfonts_loaded[orient] = true; rotate(orient); return m_rotfonts[orient] != 0; } } fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/FbTime.hh0000644000175000017500000000013112106662425017357 xustar000000000000000030 mtime=1360749845.887812656 29 atime=1360749876.53581246 30 ctime=1360750008.559811615 fluxbox-1.3.5/src/FbTk/FbTime.hh0000644000175000017500000000412112106662425015405 0ustar00mgmg00000000000000// FbTime.hh for FbTk - Fluxbox Toolkit // Copyright (c) 2012 Mathias Gumz (akira at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_FBTIME_HH #define FBTK_FBTIME_HH #ifdef HAVE_CONFIG_H #include "config.h" #endif // HAVE_CONFIG_H #ifdef HAVE_INTTYPES_H #include #endif // HAVE_INTTYPES_H namespace FbTk { // time in micro-seconds // // interesting links: // // http://www.python.org/dev/peps/pep-0418/#operating-system-time-functions // http://en.cppreference.com/w/cpp/chrono namespace FbTime { const uint64_t IN_MILLISECONDS = 1000L; const uint64_t IN_SECONDS = 1000L * IN_MILLISECONDS; const uint64_t IN_MINUTES = 60 * IN_SECONDS; uint64_t mono(); // point in time, always monotonic uint64_t system(); // system time, might jump (DST, leap seconds) // calculates the remaining microseconds from 'now' up to the // next full 'unit' inline uint64_t remainingNext(uint64_t now, uint64_t unit) { return (unit - (now % unit) - 1); } } // namespace FbTime } // namespace FbTk #endif // FBTK_TIME_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/FbTime.cc0000644000175000017500000000013112106662425017345 xustar000000000000000030 mtime=1360749845.887812656 29 atime=1360749876.53581246 30 ctime=1360750008.559811615 fluxbox-1.3.5/src/FbTk/FbTime.cc0000644000175000017500000000521412106662425015377 0ustar00mgmg00000000000000// FbTime.cc for FbTk - Fluxbox Toolkit // Copyright (c) 2012 Mathias Gumz (akira at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "FbTime.hh" #include #include #ifdef HAVE_CLOCK_GETTIME // linux|*bsd|solaris #include namespace { uint64_t _mono() { uint64_t t = 0L; timespec ts; if (clock_gettime(CLOCK_MONOTONIC, &ts) == 0) { t = (ts.tv_sec * FbTk::FbTime::IN_SECONDS) + (ts.tv_nsec / 1000L); } return t; } } #endif // HAVE_CLOCK_GETTIME #ifdef HAVE_MACH_ABSOLUTE_TIME // macosx // http://stackoverflow.com/questions/5167269/clock-gettime-alternative-in-mac-os-x // https://github.com/ThomasHabets/monotonic_clock/blob/master/src/monotonic_mach.c // http://shiftedbits.org/2008/10/01/mach_absolute_time-on-the-iphone/ #include namespace { uint64_t _mono() { // mach_absolute_time() * info.numer / info.denom yields // nanoseconds. static double micro_scale = 0.001; // 1000ms == 1ns static bool initial = true; if (initial) { initial = false; mach_timebase_info_data_t info; if (mach_timebase_info(&info) == 0) { micro_scale *= static_cast(info.numer) / static_cast(info.denom); } } return static_cast(mach_absolute_time() * micro_scale); } } #endif // HAVE_MACH_ABSOLUTE_TIME static uint64_t start = ::_mono(); uint64_t FbTk::FbTime::mono() { return ::_mono() - start; } uint64_t FbTk::FbTime::system() { static timeval v; gettimeofday(&v, NULL); return (v.tv_sec * FbTk::FbTime::IN_SECONDS) + v.tv_usec; } fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Timer.cc0000644000175000017500000000013112106662425017257 xustar000000000000000030 mtime=1360749845.895812656 29 atime=1360749876.53181246 30 ctime=1360750008.563811615 fluxbox-1.3.5/src/FbTk/Timer.cc0000644000175000017500000001521412106662425015312 0ustar00mgmg00000000000000// Timer.cc for FbTk - Fluxbox Toolkit // Copyright (c) 2003 - 2012 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Timer.cc for Blackbox - An X11 Window Manager // Copyright (c) 1997 - 2000 Brad Hughes (bhughes at tcac.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "Timer.hh" #include "CommandParser.hh" #include "StringUtil.hh" //use GNU extensions #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif // _GNU_SOURCE #ifdef HAVE_CASSERT #include #else #include #endif // sys/select.h on solaris wants to use memset() #ifdef HAVE_CSTRING # include #else # include #endif #ifdef HAVE_SYS_SELECT_H # include #elif defined(_WIN32) # include #endif #include #include #include namespace { struct TimerCompare { // stable sort order and allows multiple timers to have // the same end-time bool operator() (const FbTk::Timer* a, const FbTk::Timer* b) const { uint64_t ae = a->getEndTime(); uint64_t be = b->getEndTime(); return (ae < be) || (ae == be && a < b); } }; typedef std::set TimerList; TimerList s_timerlist; } namespace FbTk { Timer::Timer() : m_once(false), m_interval(0), m_start(0), m_timeout(0) { } Timer::Timer(const RefCount > &handler): m_handler(handler), m_once(false), m_interval(0), m_start(0), m_timeout(0) { } Timer::~Timer() { stop(); } void Timer::setTimeout(uint64_t timeout) { bool was_timing = isTiming(); if (was_timing) { stop(); } m_timeout = timeout; if (was_timing) { start(); } } void Timer::setCommand(const RefCount > &cmd) { m_handler = cmd; } void Timer::start() { // only add Timers that actually DO something if ( ( ! isTiming() || m_interval > 0 ) && m_handler) { // in case start() gets triggered on a started // timer with 'm_interval != 0' we have to remove // it from s_timerlist before restarting it stop(); m_start = FbTk::FbTime::mono(); // interval timers have their timeout change every // time they are started! if (m_interval != 0) { m_timeout = m_interval * FbTk::FbTime::IN_SECONDS; } s_timerlist.insert(this); } } void Timer::stop() { s_timerlist.erase(this); } uint64_t Timer::getEndTime() const { return m_start + m_timeout; } int Timer::isTiming() const { return s_timerlist.find(const_cast(this)) != s_timerlist.end(); } void Timer::fireTimeout() { if (m_handler) (*m_handler)(); } void Timer::updateTimers(int fd) { fd_set rfds; timeval* tout; timeval tm; TimerList::iterator t; bool overdue = false; uint64_t now; FD_ZERO(&rfds); FD_SET(fd, &rfds); tout = NULL; // search for overdue timers if (!s_timerlist.empty()) { Timer* timer = *s_timerlist.begin(); uint64_t end_time = timer->getEndTime(); now = FbTime::mono(); if (end_time <= now) { overdue = true; } else { uint64_t diff = (end_time - now); tm.tv_sec = diff / FbTime::IN_SECONDS; tm.tv_usec = diff % FbTime::IN_SECONDS; tout = &tm; } } // if not overdue, wait for the next xevent via the blocking // select(), so OS sends fluxbox to sleep. the select() will // time out when the next timer has to be handled if (!overdue && select(fd + 1, &rfds, 0, 0, tout) != 0) { // didn't time out! x events are pending return; } // stoping / restarting the timers modifies the list in an upredictable // way. to avoid problems (infinite loops etc) we copy the current overdue // timers from the gloabl (and ordered) list of timers and work on it. static std::vector timeouts; now = FbTime::mono(); for (t = s_timerlist.begin(); t != s_timerlist.end(); ++t ) { if (now < (*t)->getEndTime()) { break; } timeouts.push_back(*t); } size_t i; const size_t ts = timeouts.size(); for (i = 0; i < ts; ++i) { FbTk::Timer& timer = *timeouts[i]; // first we stop the timer to remove it // from s_timerlist timer.stop(); // then we call the handler which might (re)start 't' // on it's own timer.fireTimeout(); // restart 't' if needed if (!timer.doOnce() && !timer.isTiming()) { timer.start(); } } timeouts.clear(); } Command *DelayedCmd::parse(const std::string &command, const std::string &args, bool trusted) { std::string cmd_str; int err = StringUtil::getStringBetween(cmd_str, args.c_str(), '{', '}', " \t\n", true); if (err == 0) return 0; RefCount > cmd(CommandParser::instance().parse(cmd_str, trusted)); if (cmd == 0) return 0; uint64_t delay = 200; StringUtil::fromString(args.c_str() + err, delay); return new DelayedCmd(cmd, delay); } REGISTER_COMMAND_PARSER(delay, DelayedCmd::parse, void); DelayedCmd::DelayedCmd(const RefCount > &cmd, uint64_t timeout) { initTimer(timeout); m_timer.setCommand(cmd); } void DelayedCmd::initTimer(uint64_t timeout) { m_timer.setTimeout(timeout); m_timer.fireOnce(true); } void DelayedCmd::execute() { if (m_timer.isTiming()) m_timer.stop(); m_timer.start(); } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Timer.hh0000644000175000017500000000013112106662425017271 xustar000000000000000030 mtime=1360749845.895812656 29 atime=1360749876.53181246 30 ctime=1360750008.563811615 fluxbox-1.3.5/src/FbTk/Timer.hh0000644000175000017500000000665712106662425015337 0ustar00mgmg00000000000000// Timer.hh for FbTk - Fluxbox Toolkit // Copyright (c) 2002-2003 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Timer.hh for Blackbox - An X11 Window Manager // Copyright (c) 1997 - 2000 Brad Hughes (bhughes at tcac.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_TIMER_HH #define FBTK_TIMER_HH #include "RefCount.hh" #include "Command.hh" #include "FbTime.hh" #ifdef HAVE_CONFIG_H #include "config.h" #endif //HAVE_CONFIG_H #include namespace FbTk { /** Handles Timeout */ class Timer { public: Timer(); explicit Timer(const RefCount > &handler); ~Timer(); void fireOnce(bool once) { m_once = once; } void setTimeout(uint64_t timeout); void setCommand(const RefCount > &cmd); template void setFunctor(const Functor &functor) { setCommand(RefCount >(new SlotImpl(functor))); } void setInterval(int seconds) { m_interval = seconds; } void start(); void stop(); static void updateTimers(int file_descriptor); int isTiming() const; int getInterval() const { return m_interval; } int doOnce() const { return m_once; } uint64_t getTimeout() const { return m_timeout; } uint64_t getStartTime() const { return m_start; } uint64_t getEndTime() const; protected: /// force a timeout void fireTimeout(); private: RefCount > m_handler; ///< what to do on a timeout bool m_once; ///< do timeout only once? int m_interval; ///< Is an interval-only timer (e.g. clock), in seconds uint64_t m_start; ///< start time in microseconds uint64_t m_timeout; ///< time length in microseconds }; /// executes a command after a specified timeout class DelayedCmd: public Command { public: // timeout in microseconds DelayedCmd(const RefCount > &cmd, uint64_t timeout = 200); // this constructor has inverted order of parameters to avoid ambiguity with the previous // constructor template DelayedCmd(uint64_t timeout, const Functor &functor) { initTimer(timeout); m_timer.setFunctor(functor); } void execute(); static Command *parse(const std::string &command, const std::string &args, bool trusted); private: void initTimer(uint64_t timeout); Timer m_timer; }; } // end namespace FbTk #endif // FBTK_TIMER_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/ThemeItems.cc0000644000175000017500000000013112106662425020243 xustar000000000000000030 mtime=1360749845.895812656 29 atime=1360749876.52781246 30 ctime=1360750008.563811615 fluxbox-1.3.5/src/FbTk/ThemeItems.cc0000644000175000017500000002604012106662425016275 0ustar00mgmg00000000000000// ThemeItems.cc for FbTk - Fluxbox ToolKit // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. /// @file ThemeItems.cc implements common theme items #ifndef THEMEITEMS_HH #define THEMEITEMS_HH #ifdef HAVE_CONFIG_H #include "config.h" #endif // HAVE_CONFIG_H #include "Theme.hh" #include "Color.hh" #include "Texture.hh" #include "Font.hh" #include "GContext.hh" #include "PixmapWithMask.hh" #include "Image.hh" #include "Shape.hh" #include "StringUtil.hh" #include #ifdef HAVE_CSTDIO #include #else #include #endif #ifdef HAVE_CSTRING #include #else #include #endif #ifdef HAVE_CSTDLIB #include #else #include #endif #include #include namespace FbTk { using std::string; using std::cerr; using std::endl; // create default handlers for Color, Font, Texture, int and string template <> void ThemeItem::load(const string *name, const string *altname) { } template <> void ThemeItem::setDefaultValue() { *(*this) = ""; } template <> void ThemeItem::setFromString(const char *str) { *(*this) = (str ? str : ""); } template <> void ThemeItem::load(const std::string *name, const std::string *altname) { } template<> void ThemeItem::setDefaultValue() { *(*this) = 0; } template <> void ThemeItem::setFromString(const char *str) { if (str == 0) { setDefaultValue(); return; } if (sscanf(str, "%d", &m_value) < 1) setDefaultValue(); } template<> void ThemeItem::load(const std::string *name, const std::string *altname) { } template<> void ThemeItem::setDefaultValue() { *(*this) = false; } template<> void ThemeItem::setFromString(char const *strval) { if (strcasecmp(strval, "true")==0) *(*this) = true; else *(*this) = false; } template <> void ThemeItem::setDefaultValue() { m_value = 0; } template <> void ThemeItem::setFromString(const char *str) { sscanf(str, "%u", &m_value); } template <> void ThemeItem::load(const std::string *name, const std::string *altname) { } template <> void ThemeItem::setDefaultValue() { if (!m_value.load("__DEFAULT__")) { cerr<<"ThemeItem: Warning! Failed to load default value 'fixed'"< void ThemeItem::setFromString(const char *str) { if (str == 0 || m_value.load(str) == false) { if (ThemeManager::instance().verbose()) { cerr<<"Theme: Error loading font "<< ((m_value.utf8()) ? "(utf8)" : "")<< "for \""< void ThemeItem::load(const string *o_name, const string *o_altname) { const string &m_name = o_name ? *o_name : name(); const string &m_altname = o_altname ? *o_altname : altName(); string effect(ThemeManager::instance().resourceValue(m_name+".effect", m_altname+".Effect")); if (effect == "halo") { Color halo_color(ThemeManager::instance().resourceValue(m_name+".halo.color", m_altname+".Halo.Color").c_str(), theme().screenNum()); m_value.setHalo(true); m_value.setHaloColor(halo_color); } else if (effect == "shadow" ) { Color shadow_color(ThemeManager::instance().resourceValue(m_name+".shadow.color", m_altname+".Shadow.Color").c_str(), theme().screenNum()); m_value.setShadow(true); m_value.setShadowColor(shadow_color); m_value.setShadowOffX(atoi(ThemeManager::instance().resourceValue(m_name+".shadow.x", m_altname+".Shadow.X").c_str())); m_value.setShadowOffY(atoi(ThemeManager::instance().resourceValue(m_name+".shadow.y", m_altname+".Shadow.Y").c_str())); } } template <> void ThemeItem::load(const string *o_name, const string *o_altname) { const string &m_name = (o_name==0)?name():*o_name; const string &m_altname = (o_altname==0)?altName():*o_altname; string color_name(ThemeManager::instance(). resourceValue(m_name+".color", m_altname+".Color")); string colorto_name(ThemeManager::instance(). resourceValue(m_name+".colorTo", m_altname+".ColorTo")); string pixmap_name(ThemeManager::instance(). resourceValue(m_name+".pixmap", m_altname+".Pixmap")); // set default value if we failed to load color if (!m_value.color().setFromString(color_name.c_str(), m_tm.screenNum())) m_value.color().setFromString("darkgray", m_tm.screenNum()); if (!m_value.colorTo().setFromString(colorto_name.c_str(), m_tm.screenNum())) m_value.colorTo().setFromString("white", m_tm.screenNum()); if ((m_value.type() & Texture::SOLID) != 0 && (m_value.type() & Texture::FLAT) == 0) m_value.calcHiLoColors(m_tm.screenNum()); StringUtil::removeFirstWhitespace(pixmap_name); StringUtil::removeTrailingWhitespace(pixmap_name); if (pixmap_name.empty()) { m_value.pixmap() = 0; return; } std::auto_ptr pm(Image::load(pixmap_name, m_tm.screenNum())); if (pm.get() == 0) { if (ThemeManager::instance().verbose()) { cerr<<"Resource("<pixmap().release(); } template <> void ThemeItem::setDefaultValue() { m_value.setType(Texture::DEFAULT_LEVEL | Texture::DEFAULT_TEXTURE); load(); // one might forget to add line something: so we try to load something.*: too } template <> void ThemeItem::setFromString(const char *str) { m_value.setFromString(str); if (m_value.type() == 0) // failed to set value setDefaultValue(); } // not used template <> void ThemeItem::load(const string *name, const string *altname) { } template <> void ThemeItem::setDefaultValue() { // create empty pixmap (*this)->pixmap() = 0; (*this)->mask() = 0; } template <> void ThemeItem:: setFromString(const char *str) { if (str == 0) setDefaultValue(); else { string filename(str); StringUtil::removeFirstWhitespace(filename); StringUtil::removeTrailingWhitespace(filename); std::auto_ptr pm(Image::load(filename, m_tm.screenNum())); if (pm.get() == 0) setDefaultValue(); else { (*this)->pixmap() = pm->pixmap().release(); (*this)->mask() = pm->mask().release(); } } } template <> void ThemeItem::setDefaultValue() { m_value.setFromString("white", m_tm.screenNum()); } template <> void ThemeItem::setFromString(const char *str) { if (!m_value.setFromString(str, m_tm.screenNum())) { if (ThemeManager::instance().verbose()) cerr<<"Theme: Error loading color value for \""< void ThemeItem::load(const string *name, const string *altname) { } template<> void ThemeItem::setDefaultValue() { *(*this) = GContext::LINESOLID; } template<> void ThemeItem::setFromString(char const *strval) { if (strcasecmp(strval, "LineSolid") == 0 ) m_value = GContext::LINESOLID; else if (strcasecmp(strval, "LineOnOffDash") == 0 ) m_value = GContext::LINEONOFFDASH; else if (strcasecmp(strval, "LineDoubleDash") == 0) m_value = GContext::LINEDOUBLEDASH; else setDefaultValue(); } template<> void ThemeItem::load(const string *name, const string *altname) { } template<> void ThemeItem::setDefaultValue() { *(*this) = GContext::JOINMITER; } template<> void ThemeItem::setFromString(char const *strval) { if (strcasecmp(strval, "JoinRound") == 0 ) m_value = GContext::JOINROUND; else if (strcasecmp(strval, "JoinMiter") == 0 ) m_value = GContext::JOINMITER; else if (strcasecmp(strval, "JoinBevel") == 0) m_value = GContext::JOINBEVEL; else setDefaultValue(); } template<> void ThemeItem::load(const string *name, const string *altname) { } template<> void ThemeItem::setDefaultValue() { *(*this) = GContext::CAPNOTLAST; } template<> void ThemeItem::setFromString(char const *strval) { if (strcasecmp(strval, "CapNotLast") == 0 ) m_value = GContext::CAPNOTLAST; else if (strcasecmp(strval, "CapProjecting") == 0 ) m_value = GContext::CAPPROJECTING; else if (strcasecmp(strval, "CapRound") == 0) m_value = GContext::CAPROUND; else if (strcasecmp(strval, "CapButt" ) == 0) m_value = GContext::CAPBUTT; else setDefaultValue(); } template<> void ThemeItem::load(const string *name, const string *altname) { } template <> void ThemeItem::load(const string *name, const string *altname) { } template <> void ThemeItem::setDefaultValue() { *(*this) = Shape::NONE; } template <> void ThemeItem::setFromString(const char *str) { int places = 0; if (StringUtil::strcasestr(str, "topleft") != 0) places |= Shape::TOPLEFT; if (StringUtil::strcasestr(str, "topright") != 0) places |= Shape::TOPRIGHT; if (StringUtil::strcasestr(str, "bottomleft") != 0) places |= Shape::BOTTOMLEFT; if (StringUtil::strcasestr(str, "bottomright") != 0) places |= Shape::BOTTOMRIGHT; *(*this) = static_cast(places); } } // end namespace FbTk #endif // THEMEITEMS_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Theme.cc0000644000175000017500000000013112106662425017241 xustar000000000000000030 mtime=1360749845.895812656 29 atime=1360749876.52781246 30 ctime=1360750008.563811615 fluxbox-1.3.5/src/FbTk/Theme.cc0000644000175000017500000002143012106662425015271 0ustar00mgmg00000000000000// Theme.cc for FbTk - Fluxbox ToolKit // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "Theme.hh" #include "XrmDatabaseHelper.hh" #include "App.hh" #include "StringUtil.hh" #include "FileUtil.hh" #include "I18n.hh" #include "Image.hh" #include "STLUtil.hh" #ifdef HAVE_CSTDIO #include #else #include #endif #include #include #include using std::cerr; using std::endl; using std::string; namespace FbTk { struct LoadThemeHelper { LoadThemeHelper():m_tm(ThemeManager::instance()) {} void operator ()(Theme *tm) { m_tm.loadTheme(*tm); } void operator ()(ThemeManager::ThemeList &tmlist) { STLUtil::forAll(tmlist, *this); // send reconfiguration signal to theme and listeners ThemeManager::ThemeList::iterator it = tmlist.begin(); ThemeManager::ThemeList::iterator it_end = tmlist.end(); for (; it != it_end; ++it) { (*it)->reconfigSig().emit(); } } ThemeManager &m_tm; }; Theme::Theme(int screen_num):m_screen_num(screen_num) { ThemeManager::instance().registerTheme(*this); } Theme::~Theme() { ThemeManager::instance().unregisterTheme(*this); } ThemeManager &ThemeManager::instance() { static ThemeManager tm; return tm; } ThemeManager::ThemeManager(): // max_screens: we initialize this later so we can set m_verbose // without having a display connection m_max_screens(-1), m_verbose(false), m_themelocation("") { } bool ThemeManager::registerTheme(Theme &tm) { if (m_max_screens < 0) { m_max_screens = ScreenCount(FbTk::App::instance()->display()); m_themes.resize(m_max_screens); } // valid screen num? if (m_max_screens < tm.screenNum() || tm.screenNum() < 0) return false; ThemeList::const_iterator it = m_themes[tm.screenNum()].begin(), it_end = m_themes[tm.screenNum()].end(); if (std::find(it, it_end, &tm) == it_end) { m_themes[tm.screenNum()].push_back(&tm); return true; } return false; } bool ThemeManager::unregisterTheme(Theme &tm) { if (m_max_screens < tm.screenNum() || tm.screenNum() < 0) return false; m_themes[tm.screenNum()].remove(&tm); return true; } bool ThemeManager::load(const string &filename, const string &overlay_filename, int screen_num) { string location = FbTk::StringUtil::expandFilename(filename); StringUtil::removeTrailingWhitespace(location); StringUtil::removeFirstWhitespace(location); string prefix = ""; if (FileUtil::isDirectory(location.c_str())) { prefix = location; location.append("/theme.cfg"); if (!FileUtil::isRegularFile(location.c_str())) { location = prefix; location.append("/style.cfg"); if (!FileUtil::isRegularFile(location.c_str())) { cerr<<"Error loading theme file "< m_max_screens) { STLUtil::forAll(m_themes, load_theme_helper); } else { load_theme_helper(m_themes[screen_num]); } return true; } void ThemeManager::loadTheme(Theme &tm) { Theme::ItemList::iterator i = tm.itemList().begin(); Theme::ItemList::iterator i_end = tm.itemList().end(); for (; i != i_end; ++i) { ThemeItem_base *resource = *i; if (!loadItem(*resource)) { // try fallback resource in theme if (!tm.fallback(*resource)) { if (verbose()) { _FB_USES_NLS; cerr<<_FBTK_CONSOLETEXT(Error, ThemeItem, "Failed to read theme item", "When reading a style, couldn't read a specific item (following)")<<": "<name()<setDefaultValue(); } } } // send reconfiguration signal to theme and listeners } bool ThemeManager::loadItem(ThemeItem_base &resource) { return loadItem(resource, resource.name(), resource.altName()); } /// handles resource item loading with specific name/altname bool ThemeManager::loadItem(ThemeItem_base &resource, const string &name, const string &alt_name) { XrmValue value; char *value_type; if (XrmGetResource(*m_database, name.c_str(), alt_name.c_str(), &value_type, &value)) { resource.setFromString(value.addr); resource.load(&name, &alt_name); // load additional stuff by the ThemeItem } else return false; return true; } string ThemeManager::resourceValue(const string &name, const string &altname) { XrmValue value; char *value_type; if (*m_database != 0 && XrmGetResource(*m_database, name.c_str(), altname.c_str(), &value_type, &value) && value.addr != 0) return string(value.addr); return ""; } /* void ThemeManager::listItems() { ThemeList::iterator it = m_themelist.begin(); ThemeList::iterator it_end = m_themelist.end(); for (; it != it_end; ++it) { list::iterator item = (*it)->itemList().begin(); list::iterator item_end = (*it)->itemList().end(); for (; item != item_end; ++item) { if (typeid(**item) == typeid(ThemeItem)) { cerr<<(*item)->name()<<": "<name()<<".pixmap: "<name()<<".color: "<name()<<".colorTo: "<)) { cerr<<(*item)->name()<<": "<)) { cerr<<(*item)->name()<<": "<)) { cerr<<(*item)->name()<<": "<)) { cerr<<(*item)->name()<<": "<)) { cerr<<(*item)->name()<<": "<)) { cerr<<(*item)->name()<<": "<name()<<":"<, Theme and ThemeManager which is the base for any theme */ #ifndef FBTK_THEME_HH #define FBTK_THEME_HH #include "Signal.hh" #include "XrmDatabaseHelper.hh" #include #include #include namespace FbTk { class Theme; /// Base class for ThemeItem, holds name and altname /** @see ThemeItem */ class ThemeItem_base { public: ThemeItem_base(const std::string &name, const std::string &altname): m_name(name), m_altname(altname) { } virtual ~ThemeItem_base() { } virtual void setFromString(const char *str) = 0; virtual void setDefaultValue() = 0; virtual void load(const std::string *name = 0, const std::string *altname = 0) = 0; // if it needs to load additional stuff const std::string &name() const { return m_name; } const std::string &altName() const { return m_altname; } private: std::string m_name, m_altname; }; /// template ThemeItem class for basic theme items /// to use this you need to specialize setDefaultValue, setFromString and load template class ThemeItem:public ThemeItem_base { public: ThemeItem(FbTk::Theme &tm, const std::string &name, const std::string &altname); virtual ~ThemeItem(); /// specialized void setDefaultValue(); /// specialized virtual void setFromString(const char *strval); /// specialized // name and altname may be different to the primary ones (e.g. from fallback) // if they are null, then the original name is used virtual void load(const std::string *name = 0, const std::string *altname = 0); /** @name access operators */ /**@{*/ T& operator*() { return m_value; } const T& operator*() const { return m_value; } T *operator->() { return &m_value; } const T *operator->() const { return &m_value; } /**@}*/ FbTk::Theme &theme() { return m_tm; } private: T m_value; FbTk::Theme &m_tm; }; /// Hold ThemeItems. Use this to create a Theme set class Theme { public: typedef std::list ItemList; explicit Theme(int screen_num); // create a theme for a specific screen virtual ~Theme(); virtual void reconfigTheme() = 0; int screenNum() const { return m_screen_num; } std::list &itemList() { return m_themeitems; } const std::list &itemList() const { return m_themeitems; } /// add ThemeItem template void add(ThemeItem &item); /// remove ThemeItem template void remove(ThemeItem &item); virtual bool fallback(ThemeItem_base &) { return false; } Signal<> &reconfigSig() { return m_reconfig_sig; } private: const int m_screen_num; ItemList m_themeitems; Signal<> m_reconfig_sig; }; /// Proxy interface for themes, so they can be substituted dynamically template class ThemeProxy { public: virtual ~ThemeProxy() { } virtual Signal<> &reconfigSig() = 0; virtual BaseTheme &operator *() = 0; virtual const BaseTheme &operator *() const = 0; virtual BaseTheme *operator ->() { return &(**this); } virtual const BaseTheme *operator ->() const { return &(**this); } }; /// Singleton theme manager /** Use this to load all the registred themes */ class ThemeManager { public: typedef std::list ThemeList; typedef std::vector ScreenThemeVector; static ThemeManager &instance(); /// load style file "filename" to screen bool load(const std::string &filename, const std::string &overlay_filename, int screen_num = -1); std::string resourceValue(const std::string &name, const std::string &altname); void loadTheme(Theme &tm); bool loadItem(ThemeItem_base &resource); bool loadItem(ThemeItem_base &resource, const std::string &name, const std::string &altname); bool verbose() const { return m_verbose; } void setVerbose(bool value) { m_verbose = value; } // dump theme out to filename, stdout if no filename is given void dump(Theme& theme, const char* filename = 0) const; // void listItems(); private: ThemeManager(); ~ThemeManager() { } friend class FbTk::Theme; // so only theme can register itself in constructor /// @return false if screen_num if out of /// range or theme already registered, else true bool registerTheme(FbTk::Theme &tm); /// @return false if theme isn't registred in the manager bool unregisterTheme(FbTk::Theme &tm); /// map each theme manager to a screen ScreenThemeVector m_themes; int m_max_screens; XrmDatabaseHelper m_database; bool m_verbose; std::string m_themelocation; }; template ThemeItem::ThemeItem(FbTk::Theme &tm, const std::string &name, const std::string &altname): ThemeItem_base(name, altname), m_tm(tm) { tm.add(*this); setDefaultValue(); } template ThemeItem::~ThemeItem() { m_tm.remove(*this); } template void Theme::add(ThemeItem &item) { m_themeitems.push_back(&item); m_themeitems.unique(); } template void Theme::remove(ThemeItem &item) { m_themeitems.remove(&item); } } // end namespace FbTk #endif // FBTK_THEME_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Shape.cc0000644000175000017500000000013112106662425017237 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.52381246 30 ctime=1360750008.567811615 fluxbox-1.3.5/src/FbTk/Shape.cc0000644000175000017500000003053312106662425015273 0ustar00mgmg00000000000000// Shape.cc // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "Shape.hh" #include "FbWindow.hh" #include "App.hh" #include "GContext.hh" #include "FbPixmap.hh" #ifdef HAVE_CONFIG_H #include "config.h" #endif // HAVE_CONFIG_H #ifdef HAVE_CSTRING #include #else #include #endif #ifdef HAVE_CSTDLIB #include #else #include #endif #include #ifdef SHAPE #include #endif // SHAPE #include #include #include using std::min; namespace FbTk { namespace { /* rows is an array of 8 bytes, i.e. 8x8 bits */ Pixmap makePixmap(Display* disp, int screen_nr, Window parent, const unsigned char rows[]) { const size_t data_size = 8 * 8; // we use malloc here so we get consistent C alloc/free with XDestroyImage // and no warnings in valgrind :) char *data = (char *)malloc(data_size * sizeof (char)); if (data == 0) return 0; memset(data, 0xFF, data_size); XImage *ximage = XCreateImage(disp, DefaultVisual(disp, screen_nr), 1, XYPixmap, 0, data, 8, 8, 32, 0); if (ximage == 0) { free(data); return 0; } XInitImage(ximage); for (int y=0; y<8; y++) { for (int x=0; x<8; x++) { XPutPixel(ximage, x, y, (rows[y] & (0x01 << x)) ? 0 : 1); // inverted, it is subtracted } } FbPixmap pm(parent, 8, 8, 1); GContext gc(pm); XPutImage(disp, pm.drawable(), gc.gc(), ximage, 0, 0, 0, 0, 8, 8); XDestroyImage(ximage); return pm.release(); } struct CornerPixmaps { CornerPixmaps() : do_create(true) { } FbPixmap topleft; FbPixmap topright; FbPixmap botleft; FbPixmap botright; bool do_create; }; // unfortunately, we need a separate pixmap per screen std::vector s_corners; unsigned long nr_shapes = 0; void initCorners(int screen) { Display* disp = App::instance()->display(); if (s_corners.empty()) s_corners.resize(ScreenCount(disp)); if (screen < 0 || screen > static_cast(s_corners.size())) { std::cerr << "FbTk/Shape.cc:initCorners(), invalid argument: " << screen << "\n"; return; } static const unsigned char left_bits[] = { 0xc0, 0xf8, 0xfc, 0xfe, 0xfe, 0xfe, 0xff, 0xff }; static const unsigned char right_bits[] = { 0x03, 0x1f, 0x3f, 0x7f, 0x7f, 0x7f, 0xff, 0xff}; static const unsigned char bottom_left_bits[] = { 0xff, 0xff, 0xfe, 0xfe, 0xfe, 0xfc, 0xf8, 0xc0 }; static const unsigned char bottom_right_bits[] = { 0xff, 0xff, 0x7f, 0x7f, 0x7f, 0x3f, 0x1f, 0x03 }; CornerPixmaps& corners = s_corners[screen]; if (corners.do_create) { Window root = RootWindow(disp, screen); corners.topleft = makePixmap(disp, screen, root, left_bits); corners.topright = makePixmap(disp, screen, root, right_bits); corners.botleft = makePixmap(disp, screen, root, bottom_left_bits); corners.botright = makePixmap(disp, screen, root, bottom_right_bits); corners.do_create = false; } nr_shapes++; // refcounting } void cleanCorners() { if (nr_shapes == 1) { s_corners.clear(); } if (nr_shapes > 0) { nr_shapes--; // refcounting } } } // end of anonymous namespace Shape::Shape(FbWindow &win, int shapeplaces): m_win(&win), m_shapesource(0), m_shapesource_xoff(0), m_shapesource_yoff(0), m_shapeplaces(shapeplaces) { #ifdef SHAPE initCorners(win.screenNumber()); #endif update(); } Shape::~Shape() { #ifdef SHAPE if (m_win != 0 && m_win->window()) { // Reset shape of window XShapeCombineMask(App::instance()->display(), m_win->window(), ShapeClip, 0, 0, 0, ShapeSet); XShapeCombineMask(App::instance()->display(), m_win->window(), ShapeBounding, 0, 0, 0, ShapeSet); } cleanCorners(); #endif // SHAPE } void Shape::setPlaces(int shapeplaces) { m_shapeplaces = shapeplaces; } void Shape::update() { if (m_win == 0 || m_win->window() == 0) return; #ifdef SHAPE /** * Set the client's shape in position, * or wipe the shape and return. */ Display *display = App::instance()->display(); int bw = m_win->borderWidth(); int width = m_win->width(); int height = m_win->height(); if (m_shapesource == 0 && m_shapeplaces == 0) { /* clear the shape and return */ XShapeCombineMask(display, m_win->window(), ShapeClip, 0, 0, None, ShapeSet); XShapeCombineMask(display, m_win->window(), ShapeBounding, 0, 0, None, ShapeSet); return; } Region clip = XCreateRegion(); Region bound = XCreateRegion(); XRectangle rect; rect.x = 0; rect.y = 0; rect.width = width; rect.height = height; XUnionRectWithRegion(&rect, clip, clip); rect.x = -bw; rect.y = -bw; rect.width = width+2*bw; rect.height = height+2*bw; XUnionRectWithRegion(&rect, bound, bound); if (m_shapesource != 0) { /* Copy the shape from the source. We achieve this by subtracting the client-area size from the shape, and then unioning in the client's mask. */ rect.x = m_shapesource_xoff; rect.y = m_shapesource_yoff; rect.width = m_shapesource->width(); rect.height = m_shapesource->height(); Region clientarea = XCreateRegion(); XUnionRectWithRegion(&rect, clientarea, clientarea); XSubtractRegion(clip, clientarea, clip); XSubtractRegion(bound, clientarea, bound); XDestroyRegion(clientarea); XShapeCombineShape(display, m_win->window(), ShapeClip, rect.x, rect.y, // xOff, yOff m_shapesource->window(), ShapeClip, ShapeSet); XShapeCombineRegion(display, m_win->window(), ShapeClip, 0, 0, // offsets clip, ShapeUnion); /* Now the bounding rectangle. Note that the frame has a shared border with the region above the client (i.e. titlebar), so we don't want to wipe the shared border, hence the adjustments. */ XShapeCombineShape(display, m_win->window(), ShapeBounding, rect.x, rect.y, // xOff, yOff m_shapesource->window(), ShapeBounding, ShapeSet); XShapeCombineRegion(display, m_win->window(), ShapeBounding, 0, 0, // offsets bound, ShapeUnion); } else { XShapeCombineRegion(display, m_win->window(), ShapeClip, 0, 0, // offsets clip, ShapeSet); XShapeCombineRegion(display, m_win->window(), ShapeBounding, 0, 0, // offsets bound, ShapeSet); } XDestroyRegion(clip); XDestroyRegion(bound); const CornerPixmaps &corners = s_corners[m_win->screenNumber()]; #define SHAPECORNER(corner, x, y, shapekind) \ XShapeCombineMask(App::instance()->display(), \ m_win->window(), \ shapekind, \ x, y, \ corners.corner.drawable(), \ ShapeSubtract); /** * Set the top corners if the y offset is nonzero. */ if (m_shapesource == 0 || m_shapesource_yoff != 0) { if (m_shapeplaces & TOPLEFT) { SHAPECORNER(topleft, 0, 0, ShapeClip); SHAPECORNER(topleft, -bw, -bw, ShapeBounding); } if (m_shapeplaces & TOPRIGHT) { SHAPECORNER(topright, width-8, 0, ShapeClip); SHAPECORNER(topright, width+bw-8, -bw, ShapeBounding); } } // note that the bottom corners y-vals are offset by 8 (the height of the corner pixmaps) if (m_shapesource == 0 || (m_shapesource_yoff+(signed) m_shapesource->height()) < height || m_shapesource_yoff >= height /* shaded */) { if (m_shapeplaces & BOTTOMLEFT) { SHAPECORNER(botleft, 0, height-8, ShapeClip); SHAPECORNER(botleft, -bw, height+bw-8, ShapeBounding); } if (m_shapeplaces & BOTTOMRIGHT) { SHAPECORNER(botright, width-8, height-8, ShapeClip); SHAPECORNER(botright, width+bw-8, height+bw-8, ShapeBounding); } } #endif // SHAPE } void Shape::setWindow(FbWindow &win) { m_win = &win; update(); } /** * set the shape source to the given window. * This is purely for client windows at the moment, where the offsets and height/width of the * target window and the source window are used to determine whether to shape a given corner. * * (note: xoffset will always be zero, and widths always match, so we ignore those) * * i.e. if the yoffset is not zero, then the top corners are shaped. * if the target height is bigger than the source plus yoffset, then the bottom corners are * shaped. * * If *either* the top or bottom corners are not shaped due to this, but a shape source window * is given, then the bounding shape has the borders alongside the source window deleted, otherwise * they are left hanging outside the client's shape. */ void Shape::setShapeSource(FbWindow *win, int xoff, int yoff, bool always_update) { if (win != 0 && !isShaped(*win)) { win = 0; if (m_shapesource == 0 && !always_update) return; } // even if source is same, want to update the shape on it m_shapesource = win; m_shapesource_xoff = xoff; m_shapesource_yoff = yoff; update(); } void Shape::setShapeOffsets(int xoff, int yoff) { m_shapesource_xoff = xoff; m_shapesource_yoff = yoff; update(); } void Shape::setShapeNotify(const FbWindow &win) { #ifdef SHAPE XShapeSelectInput(App::instance()->display(), win.window(), ShapeNotifyMask); #endif // SHAPE } bool Shape::isShaped(const FbWindow &win) { int shaped = 0; #ifdef SHAPE int not_used; unsigned int not_used2; XShapeQueryExtents(App::instance()->display(), win.window(), &shaped, /// bShaped ¬_used, ¬_used, // xbs, ybs ¬_used2, ¬_used2, // wbs, hbs ¬_used, // cShaped ¬_used, ¬_used, // xcs, ycs ¬_used2, ¬_used2); // wcs, hcs #endif // SHAPE return (shaped != 0 ? true : false); } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Shape.hh0000644000175000017500000000013112106662425017251 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.52381246 30 ctime=1360750008.567811615 fluxbox-1.3.5/src/FbTk/Shape.hh0000644000175000017500000000470112106662425015303 0ustar00mgmg00000000000000// Shape.hh // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef SHAPE_HH #define SHAPE_HH #include "FbPixmap.hh" namespace FbTk { class FbWindow; /// creates round corners on windows class Shape { public: enum ShapePlace { NONE = 0, BOTTOMRIGHT = 0x01, TOPRIGHT = 0x02, BOTTOMLEFT = 0x04, TOPLEFT = 0x08 }; Shape(FbWindow &win, int shapeplaces); ~Shape(); /// set new shape places void setPlaces(int shapeplaces); /// update our shape void update(); /// assign a new window void setWindow(FbWindow &win); /// Assign a window to merge our shape with. /// (note that this is currently specific to frames) void setShapeSource(FbWindow *win, int xoff, int yoff, bool always_update); void setShapeOffsets(int xoff, int yoff); unsigned int width() const; unsigned int height() const; unsigned int clipWidth() const; unsigned int clipHeight() const; // sets shape notify mask static void setShapeNotify(const FbWindow &win); /// @return true if window has shape static bool isShaped(const FbWindow &win); private: FbWindow *m_win; ///< window to be shaped FbWindow *m_shapesource; ///< window to pull shape from int m_shapesource_xoff, m_shapesource_yoff; int m_shapeplaces; ///< places to shape }; } // end namespace FbTk #endif // SHAPE_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/TextureRender.cc0000644000175000017500000000013112106662425020777 xustar000000000000000030 mtime=1360749845.895812656 29 atime=1360749876.51981246 30 ctime=1360750008.567811615 fluxbox-1.3.5/src/FbTk/TextureRender.cc0000644000175000017500000007324512106662425017042 0ustar00mgmg00000000000000// TextureRender.cc for fluxbox // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // from Image.cc for Blackbox - an X11 Window manager // Copyright (c) 1997 - 2000 Brad Hughes (bhughes at tcac.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "TextureRender.hh" #include "ImageControl.hh" #include "TextUtils.hh" #include "Texture.hh" #include "App.hh" #include "FbPixmap.hh" #include "GContext.hh" #include "I18n.hh" #include "StringUtil.hh" #include "ColorLUT.hh" #include #include // mipspro has no new(nothrow) #if defined sgi && ! defined GCC #define FB_new_nothrow new #else #define FB_new_nothrow new(std::nothrow) #endif using std::cerr; using std::endl; using std::string; using std::max; using std::min; using FbTk::ColorLUT::PRE_MULTIPLY_0_75; using FbTk::ColorLUT::BRIGHTER_4; using FbTk::ColorLUT::BRIGHTER_8; namespace FbTk { struct RGBA { unsigned char r; unsigned char g; unsigned char b; unsigned char a; // align RGBA to 32bit, it's of no use (yet) // use of 'static void function()' here to have // simple function-pointers for interlace-code // (and avoid *this 'overhead') static void brighten_4(RGBA& color) { color.r = BRIGHTER_4[color.r]; color.g = BRIGHTER_4[color.g]; color.b = BRIGHTER_4[color.b]; } static void brighten_8(RGBA& color) { color.r = BRIGHTER_8[color.r]; color.g = BRIGHTER_8[color.g]; color.b = BRIGHTER_8[color.b]; } // 0.75 of old value static void darken(RGBA& color) { color.r = PRE_MULTIPLY_0_75[color.r]; color.g = PRE_MULTIPLY_0_75[color.g]; color.b = PRE_MULTIPLY_0_75[color.b]; } static void noop(RGBA& color) { } typedef void (*colorFunc)(RGBA&); static const colorFunc pseudoInterlaceFuncs[3]; }; const RGBA::colorFunc RGBA::pseudoInterlaceFuncs[3] = { RGBA::noop, RGBA::brighten_8, RGBA::darken }; } namespace { struct Vec2 { int x; int y; // positive: 'other' is clockwise of this // negative: 'other' is counterclockwise of this // 0: same line int cross(int other_x, int other_y) const { return (x * other_y) - (y * other_x); } }; template int sign(T val) { return (T(0) < val) - (val < T(0)); } std::vector& getGradientBuffer(size_t size) { static std::vector buffer; if (buffer.size() < size) buffer.resize(size); return buffer; } void invertRGB(unsigned int w, unsigned int h, FbTk::RGBA* rgba) { FbTk::RGBA* l = rgba; FbTk::RGBA* r = rgba + (w * h); for (--r; l < r; ++l, --r) { // swapping 32bits (RGBA) at ones. std::swap(*((unsigned int*)l), *(unsigned int*)r); } } void mirrorRGB(unsigned int w, unsigned int h, FbTk::RGBA* rgba) { FbTk::RGBA* l = rgba; FbTk::RGBA* r = rgba + (w * h); for (--r; l < r; ++l, --r) { *(unsigned int*)r = *(unsigned int*)l; } } typedef void (*prepareFunc)(size_t, FbTk::RGBA*, const FbTk::Color*, const FbTk::Color*, double); // // // To + . From +. // | . | . // | . | . // | . | . // | . | . // |. | . // From +-----------+ To +-----------+ // 0 size 0 size // void prepareLinearTable(size_t size, FbTk::RGBA* rgba, const FbTk::Color* from, const FbTk::Color* to, double scale) { const double r = from->red(); const double g = from->green(); const double b = from->blue(); const double delta_r = (to->red() - r) / (double)size; const double delta_g = (to->green() - g) / (double)size; const double delta_b = (to->blue() - b) / (double)size; size_t i; for (i = 0; i < size; ++i) { rgba[i].r = static_cast(scale * (r + (i * delta_r))); rgba[i].g = static_cast(scale * (g + (i * delta_g))); rgba[i].b = static_cast(scale * (b + (i * delta_b))); } } void prepareSquareTable(size_t size, FbTk::RGBA* rgba, const FbTk::Color* from, const FbTk::Color* to, double scale) { const double r = from->red(); const double g = from->green(); const double b = from->blue(); const double delta_r = (to->red() - r); const double delta_g = (to->green() - g); const double delta_b = (to->blue() - b); double s; size_t i; for (i = 0; i < size; ++i) { s = 1.0 - ((double)(i + 1) / (double)size); s *= s; rgba[i].r = static_cast(scale * (r + (s * delta_r))); rgba[i].g = static_cast(scale * (g + (s * delta_g))); rgba[i].b = static_cast(scale * (b + (s * delta_b))); } } // // // To + . From + . // | . . |. . // | . . | . . // | . . | . . // | . . | . . // |. . | . . // From +-----------+ To +-----.-----+ // 0 size 0 size // void prepareMirrorTable(prepareFunc prepare, size_t size, FbTk::RGBA* rgba, const FbTk::Color* from, const FbTk::Color* to, double scale) { // for simplicity we just use given 'prepare' func to // prepare 2 parts of the 'mirrorTable' // // 2 cases: odd and even number of 'size' // // even: f..tt..f (size == 8) // odd: f..t..f (size == 7) // // for 'odd' we habe to 'overwrite' the last value of the left half // with the (same) value for 't' again // // // half_size for even: 4 // half_size for odd: 4 // size_t half_size = (size >> 1) + (size & 1); prepare(half_size, &rgba[0], from, to, scale); mirrorRGB(size, 1, rgba); } inline void pseudoInterlace(FbTk::RGBA& rgba, const bool& do_interlace, const size_t& y) { FbTk::RGBA::pseudoInterlaceFuncs[do_interlace + (do_interlace * (y & 1))](rgba); } /* x1 y1 ---- gc1 ---- x2 y1 | | | | gc2 gc1 | | | | x1 y2 ---- gc2 ---- x2 y2 */ void drawBevelRectangle(FbTk::FbDrawable& d, GC gc1, GC gc2, int x1, int y1, int x2, int y2) { d.drawLine(gc1, x1, y1, x2, y1); d.drawLine(gc1, x2, y1, x2, y2); d.drawLine(gc2, x1, y2, x2, y2); d.drawLine(gc2, x1, y1, x1, y2); } /* bbbbbbbbbbbbbbbbb b d b - brighter b d d - darker b d D - 2 times dark xdddddddddddddddD x - darker(brighter()) */ void renderBevel1(bool interlaced, unsigned int width, unsigned int height, FbTk::RGBA* rgba, const FbTk::Color* from, const FbTk::Color* to, FbTk::ImageControl& imgctrl) { if (! (width > 2 && height > 2)) return; const size_t s = width * height; size_t i; // brighten top line and first pixel of the // 2nd line for (i = 0; i < width + 1; ++i) { FbTk::RGBA::brighten_8(rgba[i]); } // bright and darken left and right border for (i = 2 * width - 1; i < s - width; i += width) { FbTk::RGBA::darken(rgba[i]); // right border FbTk::RGBA::brighten_8(rgba[i + 1]); // left border on the next line } // darken bottom line, except the first pixel for (i = s - width + 1; i < s; ++i) { FbTk::RGBA::darken(rgba[i]); } // and darken the lower corner pixels again FbTk::RGBA::darken(rgba[i - 1]); FbTk::RGBA::darken(rgba[i - width]); } /* ................... .bbbbbbbbbbbbbbbbd. .b...............d. .b...............d. b - brighter .b...............d. d - darker .bdddddddddddddddd. ................... */ void renderBevel2(bool interlaced, unsigned int width, unsigned int height, FbTk::RGBA* rgba, const FbTk::Color* from, const FbTk::Color* to, FbTk::ImageControl& imgctrl) { if (! (width > 4 && height > 4)) return; const size_t s = width * height; size_t i; // top line, but stop 2 pixels before right border for (i = (width + 1); i < ((2 * width) - 2); i++) { FbTk::RGBA::brighten_8(rgba[i]); } // first darken the right border, then brighten the // left border for ( ; i < (s - (2 * width) - 1); i += width) { FbTk::RGBA::darken(rgba[i]); FbTk::RGBA::brighten_8(rgba[i + 3]); } // bottom line for (i = (s - (2 * width)) + 2; i < ((s - width) - 1); ++i) { FbTk::RGBA::darken(rgba[i]); } } void renderHorizontalGradient(bool interlaced, unsigned int width, unsigned int height, FbTk::RGBA* rgba, const FbTk::Color* from, const FbTk::Color* to, FbTk::ImageControl& imgctrl) { FbTk::RGBA* gradient = (FbTk::RGBA*)&getGradientBuffer(width * sizeof(FbTk::RGBA))[0]; prepareLinearTable(width, gradient, from, to, 1.0); size_t y; size_t x; size_t i; for (i = 0, y = 0; y < height; ++y) { for (x = 0; x < width; ++x, ++i) { rgba[i] = gradient[x]; pseudoInterlace(rgba[i], interlaced, y); } } } void renderVerticalGradient(bool interlaced, unsigned int width, unsigned int height, FbTk::RGBA* rgba, const FbTk::Color* from, const FbTk::Color* to, FbTk::ImageControl& imgctrl) { FbTk::RGBA* gradient = (FbTk::RGBA*)&getGradientBuffer(height * sizeof(FbTk::RGBA))[0]; prepareLinearTable(height, gradient, from, to, 1.0); size_t y; size_t x; size_t i; for (i = 0, y = 0; y < height; ++y) { for (x = 0; x < width; ++x, ++i) { rgba[i] = gradient[y]; pseudoInterlace(rgba[i], interlaced, y); } } } void renderPyramidGradient(bool interlaced, unsigned int width, unsigned int height, FbTk::RGBA* rgba, const FbTk::Color* from, const FbTk::Color* to, FbTk::ImageControl& imgctrl) { const size_t s = width + height; // we need 2 gradients but use only 'one' buffer FbTk::RGBA* x_gradient = (FbTk::RGBA*)&getGradientBuffer(s * sizeof(FbTk::RGBA))[0]; FbTk::RGBA* y_gradient = x_gradient + width; prepareMirrorTable(prepareLinearTable, width, x_gradient, from, to, 0.5); prepareMirrorTable(prepareLinearTable, height, y_gradient, from, to, 0.5); size_t x; size_t y; size_t i; for (i = 0, y = 0; y < height; ++y) { for (x = 0; x < width; ++x, ++i) { rgba[i].r = x_gradient[x].r + y_gradient[y].r; rgba[i].g = x_gradient[x].g + y_gradient[y].g; rgba[i].b = x_gradient[x].b + y_gradient[y].b; pseudoInterlace(rgba[i], interlaced, y); } } } /* ................. ............. ......... .... '.' - x_gradient . ' ' - y_gradient .... ......... ............. ................. */ void renderRectangleGradient(bool interlaced, unsigned int width, unsigned int height, FbTk::RGBA* rgba, const FbTk::Color* from, const FbTk::Color* to, FbTk::ImageControl& imgctrl) { const size_t s = width + height; // we need 2 gradients but use only 'one' buffer FbTk::RGBA* x_gradient = (FbTk::RGBA*)&getGradientBuffer(s * sizeof(FbTk::RGBA))[0]; FbTk::RGBA* y_gradient = x_gradient + width; prepareMirrorTable(prepareLinearTable, width, x_gradient, from, to, 1.0); prepareMirrorTable(prepareLinearTable, height, y_gradient, from, to, 1.0); // diagonal vectors const Vec2 a = { static_cast(width) - 1, static_cast(height) - 1 }; const Vec2 b = { a.x, -a.y }; int x; int y; size_t i; for (i = 0, y = 0; y < static_cast(height); ++y) { for (x = 0; x < static_cast(width); ++x, ++i) { // check, if the point (x, y) is left or right of the vectors // 'a' and 'b'. if the point is on the same side for both 'a' and // 'b' (sign(a.cross()) is equal to sign(b.cross())) then use the // y_gradient, otherwise use x_gradient if (sign(a.cross(x, y)) * sign(b.cross(x, b.y + y)) < 0) { rgba[i] = x_gradient[x]; } else { rgba[i] = y_gradient[y]; } pseudoInterlace(rgba[i], interlaced, y); } } } void renderPipeCrossGradient(bool interlaced, unsigned int width, unsigned int height, FbTk::RGBA* rgba, const FbTk::Color* from, const FbTk::Color* to, FbTk::ImageControl& imgctrl) { size_t s = width + height; // we need 2 gradients but use only 'one' buffer FbTk::RGBA* x_gradient = (FbTk::RGBA*)&getGradientBuffer(s * sizeof(FbTk::RGBA))[0]; FbTk::RGBA* y_gradient = x_gradient + width; prepareMirrorTable(prepareLinearTable, width, x_gradient, from, to, 1.0); prepareMirrorTable(prepareLinearTable, height, y_gradient, from, to, 1.0); // diagonal vectors const Vec2 a = { static_cast(width) - 1, static_cast(height - 1) }; const Vec2 b = { a.x, -a.y }; int x; int y; size_t i; for (i = 0, y = 0; y < static_cast(height); ++y) { for (x = 0; x < static_cast(width); ++x, ++i) { // check, if the point (x, y) is left or right of the vectors // 'a' and 'b'. if the point is on the same side for both 'a' and // 'b' (sign(a.cross()) is equal to sign(b.cross())) then use the // x_gradient, otherwise use y_gradient if (sign(a.cross(x, y)) * sign(b.cross(x, b.y + y)) > 0) { rgba[i] = x_gradient[x]; } else { rgba[i] = y_gradient[y]; } pseudoInterlace(rgba[i], interlaced, y); } } } void renderDiagonalGradient(bool interlaced, unsigned int width, unsigned int height, FbTk::RGBA* rgba, const FbTk::Color* from, const FbTk::Color* to, FbTk::ImageControl& imgctrl) { size_t s = width + height; // we need 2 gradients but use only 'one' buffer FbTk::RGBA* x_gradient = (FbTk::RGBA*)&getGradientBuffer(s * sizeof(FbTk::RGBA))[0]; FbTk::RGBA* y_gradient = x_gradient + width; prepareLinearTable(width, x_gradient, from, to, 0.5); prepareLinearTable(height, y_gradient, from, to, 0.5); size_t x; size_t y; size_t i; for (i = 0, y = 0; y < height; ++y) { for (x = 0; x < width; ++x, ++i) { rgba[i].r = x_gradient[x].r + y_gradient[y].r; rgba[i].g = x_gradient[x].g + y_gradient[y].g; rgba[i].b = x_gradient[x].b + y_gradient[y].b; pseudoInterlace(rgba[i], interlaced, y); } } } void renderEllipticGradient(bool interlaced, unsigned int width, unsigned int height, FbTk::RGBA* rgba, const FbTk::Color* from, const FbTk::Color* to, FbTk::ImageControl& imgctrl) { const double r = to->red(); const double g = to->green(); const double b = to->blue(); const double dr = r - from->red(); const double dg = g - from->green(); const double db = b - from->blue(); const double w2 = width / 2.0; const double h2 = height / 2.0; const double sw = 1.0 / (w2 * w2); const double sh = 1.0 / (h2 * h2); size_t i; int x; int y; double _x; double _y; double d; for (i = 0, y = 0; y < height; ++y) { for (x = 0; x < width; ++x, ++i) { _x = x - w2; _y = y - h2; d = ((_x * _x * sw) + (_y * _y * sh)) / 2.0; rgba[i].r = (unsigned char)(r - (d * dr)); rgba[i].g = (unsigned char)(g - (d * dg)); rgba[i].b = (unsigned char)(b - (d * db)); pseudoInterlace(rgba[i], interlaced, y); } } } void renderCrossDiagonalGradient(bool interlaced, unsigned int width, unsigned int height, FbTk::RGBA* rgba, const FbTk::Color* from, const FbTk::Color* to, FbTk::ImageControl& imgctrl) { size_t s = width + height; // we need 2 gradients but use only 'one' buffer FbTk::RGBA* x_gradient = (FbTk::RGBA*)&getGradientBuffer(s * sizeof(FbTk::RGBA))[0]; FbTk::RGBA* y_gradient = x_gradient + width; prepareLinearTable(width, x_gradient, to, from, 0.5); prepareLinearTable(height, y_gradient, from, to, 0.5); size_t x; size_t y; size_t i; for (i = 0, y = 0; y < height; ++y) { for (x = 0; x < width; ++x, ++i) { rgba[i].r = x_gradient[x].r + y_gradient[y].r; rgba[i].g = x_gradient[x].g + y_gradient[y].g; rgba[i].b = x_gradient[x].b + y_gradient[y].b; pseudoInterlace(rgba[i], interlaced, y); } } } struct RendererActions { unsigned int type; void (*render)(bool, unsigned int, unsigned int, FbTk::RGBA*, const FbTk::Color*, const FbTk::Color*, FbTk::ImageControl&); }; const RendererActions render_gradient_actions[] = { { FbTk::Texture::DIAGONAL, renderDiagonalGradient}, { FbTk::Texture::ELLIPTIC, renderEllipticGradient }, { FbTk::Texture::HORIZONTAL, renderHorizontalGradient }, { FbTk::Texture::PYRAMID, renderPyramidGradient }, { FbTk::Texture::RECTANGLE, renderRectangleGradient }, { FbTk::Texture::VERTICAL, renderVerticalGradient }, { FbTk::Texture::CROSSDIAGONAL, renderCrossDiagonalGradient }, { FbTk::Texture::PIPECROSS, renderPipeCrossGradient } }; const RendererActions render_bevel_actions[] = { { FbTk::Texture::BEVEL1, renderBevel1 }, { FbTk::Texture::BEVEL2, renderBevel2 } }; } namespace FbTk { TextureRender::TextureRender(ImageControl &imgctrl, unsigned int w, unsigned int h, FbTk::Orientation orient): control(imgctrl), cpc(imgctrl.colorsPerChannel()), cpccpc(cpc * cpc), rgba(0), orientation(orient), width(w), height(h) { Display* d = App::instance()->display(); Screen* s = ScreenOfDisplay(d, imgctrl.screenNumber()); unsigned int texture_max_width = WidthOfScreen(s) * 2; unsigned int texture_max_height = HeightOfScreen(s) * 2; _FB_USES_NLS; // clamp to "normal" size if (width > texture_max_width) { cerr<<"TextureRender: "<<_FBTK_CONSOLETEXT(Error, BigWidth, "Warning! Width > 3200 setting Width = 3200", "Image width seems too big, clamping") < texture_max_height) { cerr<<"TextureRender: "<<_FBTK_CONSOLETEXT(Error, BigHeight, "Warning! Height > 3200 setting Height = 3200", "Image height seems too big, clamping") <display(), control.screenNumber()), width, height, control.depth()); if (pixmap.drawable() == None) { _FB_USES_NLS; cerr << "FbTk::TextureRender::render_solid(): " <<_FBTK_CONSOLETEXT(Error, CreatePixmap, "Error creating pixmap", "Couldn't create a pixmap - image - for some reason") << endl; return None; } FbTk::GContext gc(pixmap); FbTk::GContext hgc(pixmap); FbTk::GContext lgc(pixmap); gc.setForeground(texture.color()); gc.setFillStyle(FillSolid); hgc.setForeground(texture.hiColor()); pixmap.fillRectangle(gc.gc(), 0, 0, width, height); if (texture.type() & Texture::INTERLACED) { lgc.setForeground(texture.colorTo()); unsigned int i; for (i = 0; i < height; i += 2) pixmap.drawLine(lgc.gc(), 0, i, width - 1, i); } lgc.setForeground(texture.loColor()); if (height > 1 && width > 1 && texture.type() & Texture::BEVEL1) { if (texture.type() & Texture::RAISED) { drawBevelRectangle(pixmap, lgc.gc(), hgc.gc(), 0, height - 1, width - 1, 0); } else if (texture.type() & Texture::SUNKEN) { drawBevelRectangle(pixmap, hgc.gc(), lgc.gc(), 0, height - 1, width - 1, 0); } } else if (width > 2 && height > 2 && texture.type() & Texture::BEVEL2) { if (texture.type() & Texture::RAISED) { drawBevelRectangle(pixmap, lgc.gc(), hgc.gc(), 1, height - 2, width - 2, 1); } else if (texture.type() & Texture::SUNKEN) { drawBevelRectangle(pixmap, hgc.gc(), lgc.gc(), 1, height - 2, width - 2, 1); } } return pixmap.release(); } Pixmap TextureRender::renderGradient(const FbTk::Texture &texture) { // invert our width and height if necessary translateSize(orientation, width, height); const Color* from = &(texture.color()); const Color* to = &(texture.colorTo()); bool interlaced = texture.type() & Texture::INTERLACED; bool inverted = texture.type() & Texture::INVERT; if (texture.type() & Texture::SUNKEN) { std::swap(from, to); inverted = !inverted; } size_t i; // draw gradient for (i = 0; i < sizeof(render_gradient_actions)/sizeof(RendererActions); ++i) { if (render_gradient_actions[i].type & texture.type()) { render_gradient_actions[i].render(interlaced, width, height, rgba, from, to, control); break; } } // draw bevel for (i = 0; i < sizeof(render_bevel_actions)/sizeof(RendererActions); ++i) { if (texture.type() & render_bevel_actions[i].type) { render_bevel_actions[i].render(interlaced, width, height, rgba, from, to, control); break; } } if (inverted) { invertRGB(width, height, rgba); } return renderPixmap(); } Pixmap TextureRender::renderPixmap(const FbTk::Texture &src_texture) { unsigned int tmpw = width, tmph = height; // we are given width and height in rotated form, we // unrotate it here to render it translateSize(orientation, tmpw, tmph); if (tmpw != src_texture.pixmap().width() || tmph != src_texture.pixmap().height()) { // copy src_texture's pixmap and // scale/tile to fit our size FbPixmap new_pm(src_texture.pixmap()); if ((src_texture.type() & Texture::TILED)) { new_pm.tile(tmpw,tmph); } else { new_pm.scale(tmpw, tmph); } new_pm.rotate(orientation); return new_pm.release(); } // return copy of pixmap FbPixmap pm_copy = FbPixmap(src_texture.pixmap()); pm_copy.rotate(orientation); return pm_copy.release(); } XImage *TextureRender::renderXImage() { Display *disp = FbTk::App::instance()->display(); XImage *image = XCreateImage(disp, control.visual(), control.depth(), ZPixmap, 0, 0, width, height, 32, 0); if (! image) { _FB_USES_NLS; cerr << "FbTk::TextureRender::renderXImage(): " << _FBTK_CONSOLETEXT(Error, CreateXImage, "Can't create XImage", "Couldn't create an XImage") << "." << endl; return 0; } image->data = 0; const unsigned char *red_table; const unsigned char *green_table; const unsigned char *blue_table; int red_offset; int green_offset; int blue_offset; control.colorTables(&red_table, &green_table, &blue_table, &red_offset, &green_offset, &blue_offset, 0, 0, 0); unsigned char *d = new unsigned char[image->bytes_per_line * (height + 1)]; unsigned int x, y, r, g, b, offset; unsigned char *pixel_data = d, *ppixel_data = d; unsigned long pixel; unsigned int o = image->bits_per_pixel + ((image->byte_order == MSBFirst) ? 1 : 0); #define TRANSFER_PIXELS(pixel_stmt, transfer_stmt) { \ RGBA _rgba; \ for (y = 0, offset = 0; y < height; y++) { \ for (x = 0; x < width; x++, offset++) { \ _rgba = rgba[offset]; \ r = red_table[_rgba.r]; \ g = green_table[_rgba.g]; \ b = blue_table[_rgba.b]; \ pixel = pixel_stmt; \ transfer_stmt; \ } \ pixel_data = (ppixel_data += image->bytes_per_line); \ } } switch (control.visual()->c_class) { case StaticColor: case PseudoColor: TRANSFER_PIXELS((r * cpccpc) + (g * cpc) + b, *pixel_data++ = control.colors()[pixel].pixel); break; case TrueColor: switch (o) { case 8: TRANSFER_PIXELS((r << red_offset)|(g << green_offset)|(b << blue_offset), *pixel_data++ = pixel); break; case 16: TRANSFER_PIXELS((r << red_offset)|(g << green_offset)|(b << blue_offset), *pixel_data++ = pixel; *pixel_data++ = pixel >> 8); break; case 17: TRANSFER_PIXELS((r << red_offset)|(g << green_offset)|(b << blue_offset), *pixel_data++ = pixel >> 8; *pixel_data++ = pixel); break; case 24: TRANSFER_PIXELS((r << red_offset)|(g << green_offset)|(b << blue_offset), *pixel_data++ = pixel; *pixel_data++ = pixel >> 8; *pixel_data++ = pixel >> 16); break; case 25: TRANSFER_PIXELS((r << red_offset)|(g << green_offset)|(b << blue_offset), *pixel_data++ = pixel >> 16; *pixel_data++ = pixel >> 8; *pixel_data++ = pixel); break; case 32: TRANSFER_PIXELS((r << red_offset)|(g << green_offset)|(b << blue_offset), *pixel_data++ = pixel; *pixel_data++ = pixel >> 8; *pixel_data++ = pixel >> 16; *pixel_data++ = pixel >> 24); break; case 33: TRANSFER_PIXELS((r << red_offset)|(g << green_offset)|(b << blue_offset), *pixel_data++ = pixel >> 24; *pixel_data++ = pixel >> 16; *pixel_data++ = pixel >> 8; *pixel_data++ = pixel); break; } break; case StaticGray: case GrayScale: TRANSFER_PIXELS(((r * 30) + (g * 59) + (b * 11)) / 100, *pixel_data++ = control.colors()[pixel].pixel); break; default: _FB_USES_NLS; cerr << "TextureRender::renderXImage(): " << _FBTK_CONSOLETEXT(Error, UnsupportedVisual, "Unsupported visual", "A visual is a technical term in X") << endl; delete [] d; XDestroyImage(image); return (XImage *) 0; } #undef TRANSFER_PIXELS image->data = (char *) d; return image; } Pixmap TextureRender::renderPixmap() { Display *disp = FbTk::App::instance()->display(); FbPixmap pixmap(RootWindow(disp, control.screenNumber()), width, height, control.depth()); if (pixmap.drawable() == None) { _FB_USES_NLS; cerr << "FbTk::TextureRender::renderPixmap(): " << _FBTK_CONSOLETEXT(Error, CreatePixmap, "Error creating pixmap", "Couldn't create a pixmap - image - for some reason") << endl; return None; } XImage *image = renderXImage(); if (! image) { return None; } else if (! image->data) { XDestroyImage(image); return None; } XPutImage(disp, pixmap.drawable(), DefaultGC(disp, control.screenNumber()), image, 0, 0, 0, 0, width, height); if (image->data != 0) { delete [] image->data; image->data = 0; } XDestroyImage(image); pixmap.rotate(orientation); return pixmap.release(); } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/TextureRender.hh0000644000175000017500000000013112106662425021011 xustar000000000000000030 mtime=1360749845.895812656 29 atime=1360749876.51981246 30 ctime=1360750008.567811615 fluxbox-1.3.5/src/FbTk/TextureRender.hh0000644000175000017500000000520212106662425017040 0ustar00mgmg00000000000000// TextureRender.hh for fluxbox // Copyright (c) 2002 - 2003 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Image.hh for Blackbox - an X11 Window manager // Copyright (c) 1997 - 2000 Brad Hughes (bhughes at tcac.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_TEXTURRENDER_HH #define FBTK_TEXTURRENDER_HH #include "Orientation.hh" #include namespace FbTk { class ImageControl; class Texture; /// Renders texture to pixmap /** This is used with ImageControl to render textures */ struct RGBA; class TextureRender { public: TextureRender(ImageControl &ic, unsigned int width, unsigned int height, Orientation orient = ROT0); ~TextureRender(); /// render to pixmap Pixmap render(const FbTk::Texture &src_texture); /// render solid texture to pixmap Pixmap renderSolid(const FbTk::Texture &src_texture); /// render gradient texture to pixmap Pixmap renderGradient(const FbTk::Texture &src_texture); /// scales and renders a pixmap Pixmap renderPixmap(const FbTk::Texture &src_texture); private: /// allocates red, green and blue for gradient rendering void allocateColorTables(); /** Render to pixmap @return rendered pixmap */ Pixmap renderPixmap(); /** Render to XImage @returns allocated and rendered XImage, user is responsible to deallocate */ XImage *renderXImage(); ImageControl &control; int cpc, cpccpc; RGBA* rgba; //unsigned char *red, *green, *blue; Orientation orientation; unsigned int width, height; }; } // end namespace FbTk #endif // FBTK_TEXTURERENDER_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Texture.hh0000644000175000017500000000013112106662425017651 xustar000000000000000030 mtime=1360749845.895812656 29 atime=1360749876.51981246 30 ctime=1360750008.571811615 fluxbox-1.3.5/src/FbTk/Texture.hh0000644000175000017500000000655712106662425015716 0ustar00mgmg00000000000000// Texture.hh for Fluxbox Window Manager // Copyright (c) 2002-2003 Henrik Kinnunen (fluxboxusers.sourceforge.net) // // from Image.hh for Blackbox - an X11 Window manager // Copyright (c) 1997 - 2000 Brad Hughes (bhughes@tcac.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_TEXTURE_HH #define FBTK_TEXTURE_HH #include "Color.hh" #include "FbPixmap.hh" namespace FbTk { /** Holds texture type and info */ class Texture { public: enum Bevel { // why are we not using the lowest-order bit? FLAT = 0x00002, SUNKEN = 0x00004, RAISED = 0x00008, DEFAULT_LEVEL = FLAT }; enum Textures { NONE = 0x00000, SOLID = 0x00010, GRADIENT = 0x00020, DEFAULT_TEXTURE = SOLID }; enum Gradients { HORIZONTAL = 0x00040, VERTICAL = 0x00080, DIAGONAL = 0x00100, CROSSDIAGONAL = 0x00200, RECTANGLE = 0x00400, PYRAMID = 0x00800, PIPECROSS = 0x01000, ELLIPTIC = 0x02000 }; enum { BEVEL1 = 0x04000, BEVEL2 = 0x08000, // bevel types INVERT = 0x10000, ///< inverted image PARENTRELATIVE = 0x20000, INTERLACED = 0x40000, TILED = 0x80000 ///< tiled pixmap }; Texture():m_type(0) { } void setType(unsigned long t) { m_type = t; } void addType(unsigned long t) { m_type |= t; } void setFromString(const char * const str); Color &color() { return m_color; } Color &colorTo() { return m_color_to; } Color &hiColor() { return m_hicolor; } Color &loColor() { return m_locolor; } FbPixmap &pixmap() { return m_pixmap; } void calcHiLoColors(int screen_num); const Color &color() const { return m_color; } const Color &colorTo() const { return m_color_to; } const Color &hiColor() const { return m_hicolor; } const Color &loColor() const { return m_locolor; } const FbTk::FbPixmap &pixmap() const { return m_pixmap; } unsigned long type() const { return m_type; } bool usePixmap() const { return !( type() == (FLAT | SOLID) && pixmap().drawable() == 0); } private: FbTk::Color m_color, m_color_to, m_hicolor, m_locolor; FbTk::FbPixmap m_pixmap; unsigned long m_type; }; } // end namespace FbTk #endif // FBTK_TEXTURE_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Texture.cc0000644000175000017500000000013112106662425017637 xustar000000000000000030 mtime=1360749845.895812656 29 atime=1360749876.51581246 30 ctime=1360750008.571811615 fluxbox-1.3.5/src/FbTk/Texture.cc0000644000175000017500000001054212106662425015671 0ustar00mgmg00000000000000// Texture.hh for Fluxbox Window Manager // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // from Image.cc for Blackbox - an X11 Window manager // Copyright (c) 1997 - 2000 Brad Hughes (bhughes@tcac.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "Texture.hh" #include "App.hh" #include "StringUtil.hh" #include #ifdef HAVE_CSTRING #include #else #include #endif #include "ColorLUT.hh" namespace { unsigned short inline brighten(unsigned short c) { return 0x101 * FbTk::ColorLUT::BRIGHTER_8[c]; } unsigned short inline darken(unsigned short c) { return 0x101 * FbTk::ColorLUT::PRE_MULTIPLY_0_75[c]; } } namespace FbTk { void Texture::setFromString(const char * const texture_str) { if (texture_str == 0) return; const std::string t = FbTk::StringUtil::toLower(texture_str); const char* ts = t.c_str(); if (strstr(ts, "parentrelative")) { setType(Texture::PARENTRELATIVE); } else { setType(Texture::NONE); if (strstr(ts, "gradient")) { addType(Texture::GRADIENT); if (strstr(ts, "crossdiagonal")) addType(Texture::CROSSDIAGONAL); else if (strstr(ts, "rectangle")) addType(Texture::RECTANGLE); else if (strstr(ts, "pyramid")) addType(Texture::PYRAMID); else if (strstr(ts, "pipecross")) addType(Texture::PIPECROSS); else if (strstr(ts, "elliptic")) addType(Texture::ELLIPTIC); else if (strstr(ts, "diagonal")) addType(Texture::DIAGONAL); else if (strstr(ts, "horizontal")) addType(Texture::HORIZONTAL); else if (strstr(ts, "vertical")) addType(Texture::VERTICAL); else addType(Texture::DIAGONAL); } else if (strstr(ts, "solid")) addType(Texture::SOLID); else addType(Texture::DEFAULT_TEXTURE); if (strstr(ts, "raised")) addType(Texture::RAISED); else if (strstr(ts, "sunken")) addType(Texture::SUNKEN); else if (strstr(ts, "flat")) addType(Texture::FLAT); else addType(Texture::DEFAULT_LEVEL); if (! (type() & Texture::FLAT)) { if (strstr(ts, "bevel2")) addType(Texture::BEVEL2); else addType(Texture::BEVEL1); } if (strstr(ts, "invert")) addType(Texture::INVERT); if (strstr(ts, "interlaced")) addType(Texture::INTERLACED); if (strstr(ts, "tiled")) addType(Texture::TILED); } } void Texture::calcHiLoColors(int screen_num) { Display *disp = FbTk::App::instance()->display(); Colormap colm = DefaultColormap(disp, screen_num); XColor xcol; xcol.red = ::brighten(m_color.red()); xcol.green = ::brighten(m_color.green()); xcol.blue = ::brighten(m_color.blue()); if (! XAllocColor(disp, colm, &xcol)) xcol.pixel = 0; m_hicolor.setPixel(xcol.pixel); xcol.red = ::darken(m_color.red()); xcol.green = ::darken(m_color.green()); xcol.blue = ::darken(m_color.blue()); if (! XAllocColor(disp, colm, &xcol)) xcol.pixel = 0; m_locolor.setPixel(xcol.pixel); } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Orientation.hh0000644000175000017500000000013112106662425020504 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.51581246 30 ctime=1360750008.571811615 fluxbox-1.3.5/src/FbTk/Orientation.hh0000644000175000017500000000257312106662425016543 0ustar00mgmg00000000000000// Orientation.hh for FbTk // Copyright (c) 2008 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_ORIENTATION_HH #define FBTK_ORIENTATION_HH namespace FbTk { enum Justify {LEFT, RIGHT, CENTER}; // clockwise enum Orientation { ROT0=0, ROT90, ROT180, ROT270 }; } // end namespace FbTk #endif // FBTK_ORIENTATION_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/TextUtils.cc0000644000175000017500000000013112106662425020144 xustar000000000000000030 mtime=1360749845.895812656 29 atime=1360749876.51581246 30 ctime=1360750008.571811615 fluxbox-1.3.5/src/FbTk/TextUtils.cc0000644000175000017500000000504512106662425016200 0ustar00mgmg00000000000000// Text.cc for FbTk - text utils // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "TextUtils.hh" #include "Font.hh" #include "Theme.hh" #include namespace FbTk { int doAlignment(int max_width, int bevel, FbTk::Justify justify, const FbTk::Font &font, const char * const text, unsigned int textlen, unsigned int &newlen) { if (text == 0 || textlen == 0) return 0; int l = font.textWidth(text, textlen) + bevel; unsigned int dlen = textlen; int dx = bevel; if (l > max_width) { for (; dlen > 0; dlen--) { l = font.textWidth(text, dlen) + bevel; if (l<=max_width) break; } } newlen = dlen; switch (justify) { case FbTk::RIGHT: dx = max_width - l - bevel; break; case FbTk::CENTER: dx = (max_width - l)/2; break; case FbTk::LEFT: break; } return dx; } /// specialization for Justify template <> void ThemeItem::setDefaultValue() { m_value = LEFT; } template <> void ThemeItem::setFromString(const char *value) { if (strcasecmp("center", value) == 0) m_value = FbTk::CENTER; else if (strcasecmp("right", value) == 0) m_value = FbTk::RIGHT; else // default setDefaultValue(); } // do nothing template <> void ThemeItem::load(const std::string *name, const std::string *altname) { } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/TextUtils.hh0000644000175000017500000000013112106662425020156 xustar000000000000000030 mtime=1360749845.895812656 29 atime=1360749876.51181246 30 ctime=1360750008.575811615 fluxbox-1.3.5/src/FbTk/TextUtils.hh0000644000175000017500000000701212106662425016206 0ustar00mgmg00000000000000// TextUtils.hh for FbTk - text utils // Copyright (c) 2002 - 2003 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_TEXTUTILS_HH #define FBTK_TEXTUTILS_HH #include "Orientation.hh" namespace FbTk { class Font; /** Aligns the text after max width and bevel */ int doAlignment(int max_width, int bevel, FbTk::Justify justify, const FbTk::Font &font, const char * const text, unsigned int textlen, unsigned int &newlen); /** There are 3 interesting translations: 1) Coords = simple rotation of coordinates 2) Position = adjusting (x,y) coordinates to use to position a box with X coords 3) Size = swapping of width and height if necessary */ // translate coordinates from ROT0 into different orientations // coords are relative to rot0 0,0 position // Need width and height of the area being rotated (in ROT0 coords) inline void translateCoords(Orientation orient, int &x, int &y, unsigned int w, unsigned int h) { int orig_x = x; int orig_y = y; switch(orient) { case ROT0: break; case ROT90: x = h - orig_y; y = orig_x; break; case ROT180: x = w - orig_x; y = h - orig_y; break; case ROT270: x = orig_y; y = w - orig_x; break; } } // still require w and h in ROT0 coords inline void untranslateCoords(Orientation orient, int &orig_x, int &orig_y, unsigned int w, unsigned int h) { int x = orig_x; int y = orig_y; switch(orient) { case ROT0: break; case ROT90: orig_y = h - x; orig_x = y; break; case ROT180: orig_x = w - x; orig_y = h - y; break; case ROT270: orig_y = x; orig_x = w - y; break; } } // When positioning an X11 box inside another area, we need to // relocate the x,y coordinates inline void translatePosition(Orientation orient, int &x, int &y, unsigned int w, unsigned int h, unsigned int bw) { switch(orient) { case ROT0: break; case ROT90: x -= h + 2*bw; break; case ROT180: x -= w + 2*bw; y -= h + 2*bw; break; case ROT270: y -= w + 2*bw; break; } } inline void translateSize(Orientation orient, unsigned int &w, unsigned int &h) { if (orient == ROT0 || orient == ROT180) return; unsigned int tmp; tmp = w; w = h; h = tmp; } } // end namespace FbTk #endif // FBTK_TEXTUTILS_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/SignalHandler.hh0000644000175000017500000000013112106662425020724 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.51181246 30 ctime=1360750008.575811615 fluxbox-1.3.5/src/FbTk/SignalHandler.hh0000644000175000017500000000444012106662425016756 0ustar00mgmg00000000000000// SignalHandler.hh for FbTk // Copyright (c) 2002 - 2003 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_SIGNALHANDLER_HH #define FBTK_SIGNALHANDLER_HH #include namespace FbTk { /// Base class that SignalHandler calls when it gets a signal /// Use this to catch system signals class SignalEventHandler { public: virtual void handleSignal(int signum) = 0; virtual ~SignalEventHandler() { } }; /// Handles system signals, singleton. /** Usage: inherit the class SignalEventHandler and then register it to SignalHandler by calling registerHandler with a signal number */ class SignalHandler { public: /// get singleton object static SignalHandler &instance(); /** Register an event handler @return true on success else false @param signum signal number @param eh event handler @param oldhandler_ret return handler to old sighandler */ bool registerHandler(int signum, SignalEventHandler *eh, SignalEventHandler **oldhandler_ret = 0); private: SignalHandler(); static void handleSignal(int signum); static SignalEventHandler *s_signal_handler[NSIG]; ///< NSIG defined in signal.h }; } // end namespace FbTk #endif // FBTK_SIGNALHANDLER_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/SignalHandler.cc0000644000175000017500000000013112106662425020712 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.50781246 30 ctime=1360750008.575811615 fluxbox-1.3.5/src/FbTk/SignalHandler.cc0000644000175000017500000000505112106662425016743 0ustar00mgmg00000000000000// SignalHandler.cc for FbTk - Fluxbox ToolKit // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "SignalHandler.hh" namespace FbTk { SignalEventHandler *SignalHandler::s_signal_handler[NSIG]; SignalHandler::SignalHandler() { // clear signal list for (int i=0; i < NSIG; ++i) s_signal_handler[i] = 0; } SignalHandler &SignalHandler::instance() { static SignalHandler singleton; return singleton; } bool SignalHandler::registerHandler(int signum, SignalEventHandler *eh, SignalEventHandler **oldhandler_ret) { // must be less than NSIG if (signum >= NSIG) return false; // get old signal handler for this signum if (oldhandler_ret != 0) *oldhandler_ret = s_signal_handler[signum]; #ifdef HAVE_SIGACTION struct sigaction sa; // set callback sa.sa_handler = SignalHandler::handleSignal; sigemptyset (&sa.sa_mask); sa.sa_flags = 0; if (sigaction(signum, &sa, 0) == -1) return false; #else // Fallback code for Windows and other platforms lacking sigaction. if (signal(signum, &SignalHandler::handleSignal) == SIG_ERR) { return false; } #endif s_signal_handler[signum] = eh; return true; } void SignalHandler::handleSignal(int signum) { if (signum >= NSIG) return; // make sure we got a handler for this signal if (s_signal_handler[signum] != 0) { s_signal_handler[signum]->handleSignal(signum); } } } fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/SimpleCommand.hh0000644000175000017500000000013112106662425020741 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.50781246 30 ctime=1360750008.575811615 fluxbox-1.3.5/src/FbTk/SimpleCommand.hh0000644000175000017500000000325412106662425016775 0ustar00mgmg00000000000000// SimpleCommand.hh for FbTk // Copyright (c) 2002-2003 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_SIMPLECOMMAND_HH #define FBTK_SIMPLECOMMAND_HH #include "Command.hh" namespace FbTk { /// a simple command template class SimpleCommand: public Command { public: typedef ReturnType (Receiver::* Action)(); SimpleCommand(Receiver &r, Action a): m_receiver(r), m_action(a) { } void execute() { (m_receiver.*m_action)(); } private: Receiver &m_receiver; Action m_action; }; } // end namespace FbTk #endif // FBTK_SIMPLECOMMAND_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/RefCount.hh0000644000175000017500000000013112106662425017736 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.50781246 30 ctime=1360750008.579811615 fluxbox-1.3.5/src/FbTk/RefCount.hh0000644000175000017500000001350412106662425015771 0ustar00mgmg00000000000000// RefCount.hh for FbTk - Fluxbox Toolkit // Copyright (c) 2002 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_REFCOUNT_HH #define FBTK_REFCOUNT_HH namespace FbTk { /// holds a pointer with reference counting, similar to std:auto_ptr template class RefCount { typedef Pointer* RefCount::*bool_type; public: RefCount(); explicit RefCount(Pointer *p); RefCount(const RefCount ©); template RefCount(const RefCount ©); ~RefCount(); RefCount &operator = (const RefCount ©); Pointer &operator * () const { return *get(); } Pointer *operator -> () const { return get(); } Pointer *get() const { return m_data; } void reset(Pointer *p = 0); /// conversion to "bool" operator bool_type() const { return m_data ? &RefCount::m_data : 0; } private: /// increase reference count void incRefCount(); /// decrease reference count void decRefCount(); Pointer *m_data; ///< data holder unsigned int *m_refcount; ///< holds reference counting // we need this for the template copy constructor template friend class RefCount; }; // implementation template RefCount::RefCount():m_data(0), m_refcount(new unsigned int(0)) { incRefCount(); // it really counts how many things are storing m_refcount } template template RefCount::RefCount(const RefCount ©): m_data(copy.m_data), m_refcount(copy.m_refcount) { incRefCount(); } template RefCount::RefCount(Pointer *p):m_data(p), m_refcount(new unsigned int(0)) { incRefCount(); } template RefCount::RefCount(const RefCount ©): m_data(copy.m_data), m_refcount(copy.m_refcount) { incRefCount(); } template RefCount::~RefCount() { decRefCount(); } template RefCount &RefCount::operator = (const RefCount ©) { decRefCount(); // dec current ref count m_refcount = copy.m_refcount; // set new ref count m_data = copy.m_data; // set new data pointer incRefCount(); // inc new ref count return *this; } template void RefCount::reset(Pointer *p) { decRefCount(); m_data = p; // set data pointer m_refcount = new unsigned int(0); // create new counter incRefCount(); } template void RefCount::decRefCount() { if (m_refcount == 0) return; if (*m_refcount == 0) { // already zero, then delete refcount delete m_refcount; m_refcount = 0; return; } (*m_refcount)--; if (*m_refcount == 0) { // destroy m_data and m_refcount if nobody else is using this if (m_data != 0) delete m_data; m_data = 0; delete m_refcount; m_refcount = 0; } } template void RefCount::incRefCount() { if (m_refcount == 0) return; (*m_refcount)++; } template inline RefCount makeRef() { return RefCount(new Pointer); } template inline RefCount makeRef(const Arg1 &arg1) { return RefCount(new Pointer(arg1)); } template inline RefCount makeRef(const Arg1 &arg1, const Arg2 &arg2) { return RefCount(new Pointer(arg1, arg2)); } template inline RefCount makeRef(const Arg1 &arg1, const Arg2 &arg2, const Arg3 &arg3) { return RefCount(new Pointer(arg1, arg2, arg3)); } template inline bool operator == (const RefCount &a, const RefCount &b) { return a.get() == b.get(); } template inline bool operator != (const RefCount &a, const RefCount &b) { return a.get() != b.get(); } template inline bool operator < (const RefCount &a, const RefCount &b) { return a.get() < b.get(); } template inline bool operator > (const RefCount &a, const RefCount &b) { return a.get() > b.get(); } template inline bool operator <= (const RefCount &a, const RefCount &b) { return a.get() <= b.get(); } template inline bool operator >= (const RefCount &a, const RefCount &b) { return a.get() >= b.get(); } } // end namespace FbTk #endif // FBTK_REFCOUNT_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/TextTheme.cc0000644000175000017500000000013112106662425020106 xustar000000000000000030 mtime=1360749845.895812656 29 atime=1360749876.50381246 30 ctime=1360750008.579811615 fluxbox-1.3.5/src/FbTk/TextTheme.cc0000644000175000017500000000362412106662425016143 0ustar00mgmg00000000000000// TextTheme.cc // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "TextTheme.hh" #include "App.hh" #include namespace FbTk { TextTheme::TextTheme(Theme &theme, const std::string &name, const std::string &altname): m_font(theme, name + ".font", altname + ".Font"), m_text_color(theme, name + ".textColor", altname + ".TextColor"), m_justify(theme, name + ".justify", altname + ".Justify"), m_text_gc(RootWindow(App::instance()->display(), theme.screenNum())) { *m_justify = LEFT; // set default values m_text_color->setFromString("white", theme.screenNum()); updateTextColor(); } void TextTheme::updateTextColor() { m_text_gc.setForeground(*m_text_color); } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/TextTheme.hh0000644000175000017500000000013112106662425020120 xustar000000000000000030 mtime=1360749845.895812656 29 atime=1360749876.50381246 30 ctime=1360750008.579811615 fluxbox-1.3.5/src/FbTk/TextTheme.hh0000644000175000017500000000374412106662425016160 0ustar00mgmg00000000000000// TextTheme.hh // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_TEXTTHEME_HH #define FBTK_TEXTTHEME_HH #include "Theme.hh" #include "Font.hh" #include "Color.hh" #include "Orientation.hh" #include "GContext.hh" namespace FbTk { class TextTheme { public: TextTheme(Theme &theme, const std::string &name, const std::string &altname); virtual ~TextTheme() { } void updateTextColor(); Font &font() { return *m_font; } const Font &font() const { return *m_font; } const Color &textColor() const { return *m_text_color; } Justify justify() const { return *m_justify; } GC textGC() const { return m_text_gc.gc(); } private: ThemeItem m_font; ThemeItem m_text_color; ThemeItem m_justify; GContext m_text_gc; }; } // end namespace FbTk #endif // FBTK_TEXTTHEME_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/BorderTheme.cc0000644000175000017500000000013112106662425020377 xustar000000000000000030 mtime=1360749845.887812656 29 atime=1360749876.50381246 30 ctime=1360750008.579811615 fluxbox-1.3.5/src/FbTk/BorderTheme.cc0000644000175000017500000000320612106662425016430 0ustar00mgmg00000000000000// BorderTheme.cc // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "BorderTheme.hh" namespace FbTk { BorderTheme::BorderTheme(Theme &theme, const std::string &name, const std::string &altname): m_width(theme, name + ".borderWidth", altname + ".BorderWidth"), m_color(theme, name + ".borderColor", altname + ".BorderColor") { // set default values *m_width = 0; m_color->setFromString("black", theme.screenNum()); } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/BorderTheme.hh0000644000175000017500000000013112106662425020411 xustar000000000000000030 mtime=1360749845.887812656 29 atime=1360749876.49981246 30 ctime=1360750008.579811615 fluxbox-1.3.5/src/FbTk/BorderTheme.hh0000644000175000017500000000334312106662425016444 0ustar00mgmg00000000000000// BorderTheme.hh // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_BORDERTHEME_HH #define FBTK_BORDERTHEME_HH #include "Theme.hh" #include "Color.hh" namespace FbTk { /// helper class for border theme items class BorderTheme { public: BorderTheme(Theme &theme, const std::string &name, const std::string &altname); virtual ~BorderTheme() { } int width() const { return *m_width; } const Color &color() const { return *m_color; } private: ThemeItem m_width; ThemeItem m_color; }; } // end namespace FbTk #endif // FBTK_BORDERTHEME_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/NotCopyable.hh0000644000175000017500000000013112106662425020430 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.49981246 30 ctime=1360750008.583811615 fluxbox-1.3.5/src/FbTk/NotCopyable.hh0000644000175000017500000000313512106662425016462 0ustar00mgmg00000000000000// NotCopyable.hh // Copyright (c) 2002 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_NOTCOPYABLE_HH #define FBTK_NOTCOPYABLE_HH namespace FbTk { /** Makes the inherited class not copyable. inherit this class to disable assignment and copy */ class NotCopyable { protected: NotCopyable() {} virtual ~NotCopyable() { } private: NotCopyable(const NotCopyable &rhs); // copy constructor NotCopyable &operator=(const NotCopyable &rhs); // assignment operator }; } // end namespace FbTk #endif //FBTK_NOTCOPYABLE_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/MenuTheme.cc0000644000175000017500000000013112106662425020066 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.49581246 30 ctime=1360750008.583811615 fluxbox-1.3.5/src/FbTk/MenuTheme.cc0000644000175000017500000001733112106662425016123 0ustar00mgmg00000000000000// MenuTheme.cc for FbTk // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "MenuTheme.hh" #include "Color.hh" #include "Texture.hh" #include "Font.hh" #include "App.hh" #include "StringUtil.hh" #ifdef HAVE_CSTDIO #include #else #include #endif #include namespace FbTk { MenuTheme::MenuTheme(int screen_num): FbTk::Theme(screen_num), t_text(*this, "menu.title.textColor", "Menu.Title.TextColor"), f_text(*this, "menu.frame.textColor", "Menu.Frame.TextColor"), h_text(*this, "menu.hilite.textColor", "Menu.Hilite.TextColor"), d_text(*this, "menu.frame.disableColor", "Menu.Frame.DisableColor"), u_text(*this, "menu.frame.underlineColor", "Menu.Frame.UnderlineColor"), title(*this, "menu.title", "Menu.Title"), frame(*this, "menu.frame", "Menu.Frame"), hilite(*this, "menu.hilite", "Menu.Hilite"), titlefont(*this, "menu.title.font", "Menu.Title.Font"), framefont(*this, "menu.frame.font", "Menu.Frame.Font"), hilitefont(*this, "menu.hilite.font", "Menu.Hilite.Font"), framefont_justify(*this, "menu.frame.justify", "Menu.Frame.Justify"), hilitefont_justify(*this, "menu.hilite.justify", "Menu.Hilite.Justify"), titlefont_justify(*this, "menu.title.justify", "Menu.Title.Justify"), bullet_pos(*this, "menu.bullet.position", "Menu.Bullet.Position"), m_bullet(*this, "menu.bullet", "Menu.Bullet"), m_shapeplace(*this, "menu.roundCorners", "Menu.RoundCorners"), m_title_height(*this, "menu.titleHeight", "Menu.TitleHeight"), m_item_height(*this, "menu.itemHeight", "Menu.ItemHeight"), m_border_width(*this, "menu.borderWidth", "Menu.BorderWidth"), m_bevel_width(*this, "menu.bevelWidth", "Menu.BevelWidth"), m_border_color(*this, "menu.borderColor", "Menu.BorderColor"), m_bullet_pixmap(*this, "menu.submenu.pixmap", "Menu.Submenu.Pixmap"), m_selected_pixmap(*this, "menu.selected.pixmap", "Menu.Selected.Pixmap"), m_unselected_pixmap(*this, "menu.unselected.pixmap", "Menu.Unselected.Pixmap"), m_hl_bullet_pixmap(*this, "menu.hilite.submenu.pixmap", "Menu.Hilite.Submenu.Pixmap"), m_hl_selected_pixmap(*this, "menu.hilite.selected.pixmap", "Menu.Hilite.Selected.Pixmap"), m_hl_unselected_pixmap(*this, "menu.hilite.unselected.pixmap", "Menu.Hilite.Unselected.Pixmap"), m_display(FbTk::App::instance()->display()), t_text_gc(RootWindow(m_display, screen_num)), f_text_gc(RootWindow(m_display, screen_num)), u_text_gc(RootWindow(m_display, screen_num)), h_text_gc(RootWindow(m_display, screen_num)), d_text_gc(RootWindow(m_display, screen_num)), hilite_gc(RootWindow(m_display, screen_num)), m_alpha(255), m_delay(0), // no delay as default m_real_title_height(*m_title_height), m_real_item_height(*m_item_height) { // set default values *m_border_width = 0; *m_bevel_width = 0; *m_border_width = 0; *m_shapeplace = FbTk::Shape::NONE; ThemeManager::instance().loadTheme(*this); m_real_item_height = std::max(*m_item_height, std::max(frameFont().height() + 2*bevelWidth(), hiliteFont().height() + 2*bevelWidth())); m_real_title_height = std::max(*m_title_height, titleFont().height() + 2*bevelWidth()); m_real_item_height = m_real_item_height == 0 ? 1 : m_real_item_height; m_real_title_height = m_real_title_height == 0 ? 1 : m_real_title_height; t_text_gc.setForeground(*t_text); f_text_gc.setForeground(*f_text); u_text_gc.setForeground(*u_text); h_text_gc.setForeground(*h_text); d_text_gc.setForeground(*d_text); hilite_gc.setForeground(hilite->color()); } MenuTheme::~MenuTheme() { } void MenuTheme::reconfigTheme() { // clamp to "normal" size if (*m_bevel_width > 20) *m_bevel_width = 20; if (*m_border_width > 20) *m_border_width = 20; m_real_item_height = std::max(*m_item_height, std::max(frameFont().height() + 2*bevelWidth(), hiliteFont().height() + 2*bevelWidth())); m_real_title_height = std::max(*m_title_height, titleFont().height() + 2*bevelWidth()); unsigned int minsize = 2*bevelWidth()+1; m_real_item_height = m_real_item_height < minsize ? minsize: m_real_item_height; m_real_title_height = m_real_title_height == minsize ? minsize : m_real_title_height; unsigned int item_pm_height = itemHeight(); m_bullet_pixmap->scale(item_pm_height, item_pm_height); m_selected_pixmap->scale(item_pm_height, item_pm_height); m_unselected_pixmap->scale(item_pm_height, item_pm_height); m_hl_bullet_pixmap->scale(item_pm_height, item_pm_height); m_hl_selected_pixmap->scale(item_pm_height, item_pm_height); m_hl_unselected_pixmap->scale(item_pm_height, item_pm_height); t_text_gc.setForeground(*t_text); f_text_gc.setForeground(*f_text); u_text_gc.setForeground(*u_text); h_text_gc.setForeground(*h_text); d_text_gc.setForeground(*d_text); hilite_gc.setForeground(hilite->color()); } bool MenuTheme::fallback(ThemeItem_base &item) { if (item.name() == "menu.borderWidth") { return ThemeManager::instance().loadItem(item, "borderWidth", "BorderWidth"); } else if (item.name() == "menu.borderColor") { return ThemeManager::instance().loadItem(item, "borderColor", "BorderColor"); } else if (item.name() == "menu.bevelWidth") { return ThemeManager::instance().loadItem(item, "bevelWidth", "BevelWidth"); } else if (item.name() == "menu.hilite.font") { return ThemeManager::instance().loadItem(item, "menu.frame.font", "Menu.Frame.Font"); } else if (item.name() == "menu.hilite.justify") { return ThemeManager::instance().loadItem(item, "menu.frame.justify", "Menu.Frame.Justify"); } return false; } template <> void ThemeItem::setDefaultValue() { m_value = MenuTheme::EMPTY; } template <> void ThemeItem::setFromString(const char *str) { // do nothing if (StringUtil::strcasestr(str, "empty") != 0) m_value = MenuTheme::EMPTY; else if (StringUtil::strcasestr(str, "square") != 0) m_value = MenuTheme::SQUARE; else if (StringUtil::strcasestr(str, "triangle") != 0) m_value = MenuTheme::TRIANGLE; else if (StringUtil::strcasestr(str, "diamond") != 0) m_value = MenuTheme::DIAMOND; else setDefaultValue(); } template <> void ThemeItem::load(const std::string *name, const std::string *altname) { // do nothing, we don't have anything extra to load } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/MenuTheme.hh0000644000175000017500000000013112106662425020100 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.49581246 30 ctime=1360750008.583811615 fluxbox-1.3.5/src/FbTk/MenuTheme.hh0000644000175000017500000001506712106662425016141 0ustar00mgmg00000000000000// MenuTheme.hh for FbTk // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_MENUTHEME_HH #define FBTK_MENUTHEME_HH #include "Theme.hh" #include "Color.hh" #include "Font.hh" #include "Shape.hh" #include "Texture.hh" #include "PixmapWithMask.hh" #include "GContext.hh" namespace FbTk { class MenuTheme: public Theme, public ThemeProxy { public: enum BulletType { EMPTY, SQUARE, TRIANGLE, DIAMOND}; MenuTheme(int screen_num); virtual ~MenuTheme(); void reconfigTheme(); bool fallback(ThemeItem_base &item); /** @name text colors */ ///@{ const Color &titleTextColor() const { return *t_text; } const Color &frameTextColor() const { return *f_text; } const Color &frameUnderlineColor() const { return *u_text; } const Color &highlightTextColor() const { return *h_text; } const Color &disableTextColor() const { return *d_text; } ///@} /** @name textures */ ///@{ const Texture &titleTexture() const { return *title; } const Texture &frameTexture() const { return *frame; } const Texture &hiliteTexture() const { return *hilite; } ///@} const PixmapWithMask &bulletPixmap() const { return *m_bullet_pixmap; } const PixmapWithMask &selectedPixmap() const { return *m_selected_pixmap; } const PixmapWithMask &unselectedPixmap() const { return *m_unselected_pixmap; } const PixmapWithMask &highlightBulletPixmap() const { return *m_hl_bullet_pixmap; } const PixmapWithMask &highlightSelectedPixmap() const { return *m_hl_selected_pixmap; } const PixmapWithMask &highlightUnselectedPixmap() const { return *m_hl_unselected_pixmap; } /** @name fonts */ ///@{ const Font &titleFont() const { return *titlefont; } Font &titleFont() { return *titlefont; } const Font &frameFont() const { return *framefont; } Font &frameFont() { return *framefont; } const Font &hiliteFont() const { return *hilitefont; } Font &hiliteFont() { return *hilitefont; } ///@} Justify frameFontJustify() const { return *framefont_justify; } Justify hiliteFontJustify() const { return *hilitefont_justify; } Justify titleFontJustify() const { return *titlefont_justify; } /** @name graphic contexts */ ///@{ const GContext &titleTextGC() const { return t_text_gc; } const GContext &frameTextGC() const { return f_text_gc; } const GContext &hiliteUnderlineGC() const { return u_text_gc; } const GContext &hiliteTextGC() const { return h_text_gc; } const GContext &disableTextGC() const { return d_text_gc; } const GContext &hiliteGC() const { return hilite_gc; } GContext &titleTextGC() { return t_text_gc; } GContext &frameTextGC() { return f_text_gc; } GContext &hiliteUnderlineGC() { return u_text_gc; } GContext &hiliteTextGC() { return h_text_gc; } GContext &disableTextGC() { return d_text_gc; } GContext &hiliteGC() { return hilite_gc; } ///@} BulletType bullet() const { return *m_bullet; } Justify bulletPos() const { return *bullet_pos; } unsigned int titleHeight() const { return m_real_title_height; } unsigned int itemHeight() const { return m_real_item_height; } unsigned int borderWidth() const { return *m_border_width; } unsigned int bevelWidth() const { return *m_bevel_width; } unsigned char alpha() const { return m_alpha; } void setAlpha(int alpha) { m_alpha = alpha; } // this isn't actually a theme item // but we'll let it be here for now, until there's a better way to // get resources into menu void setDelay(int msec) { m_delay = msec; } int getDelay() const { return m_delay; } const Color &borderColor() const { return *m_border_color; } Shape::ShapePlace shapePlaces() const { return *m_shapeplace; } // special override void setSelectedPixmap(Pixmap pm, bool is_imagecached) { m_selected_pixmap->pixmap() = pm; if (is_imagecached) m_selected_pixmap->pixmap().dontFree(); } void setHighlightSelectedPixmap(Pixmap pm, bool is_imagecached) { m_hl_selected_pixmap->pixmap() = pm; if (is_imagecached) m_hl_selected_pixmap->pixmap().dontFree(); } virtual Signal<> &reconfigSig() { return Theme::reconfigSig(); } virtual MenuTheme &operator *() { return *this; } virtual const MenuTheme &operator *() const { return *this; } private: ThemeItem t_text, f_text, h_text, d_text, u_text; ThemeItem title, frame, hilite; ThemeItem titlefont, framefont, hilitefont; ThemeItem framefont_justify, hilitefont_justify, titlefont_justify; ThemeItem bullet_pos; ThemeItem m_bullet; ThemeItem m_shapeplace; ThemeItem m_title_height, m_item_height; ThemeItem m_border_width; ThemeItem m_bevel_width; ThemeItem m_border_color; ThemeItem m_bullet_pixmap, m_selected_pixmap, m_unselected_pixmap; ThemeItem m_hl_bullet_pixmap, m_hl_selected_pixmap, m_hl_unselected_pixmap; Display *m_display; GContext t_text_gc, f_text_gc, u_text_gc, h_text_gc, d_text_gc, hilite_gc; int m_alpha; unsigned int m_delay; ///< in msec unsigned int m_real_title_height; ///< the calculated item height (from font and menu.titleHeight) unsigned int m_real_item_height; ///< the calculated item height (from font and menu.itemHeight) }; } // end namespace FbTk #endif // FBTK_MENUTHEME_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/MultiButtonMenuItem.cc0000644000175000017500000000013112106662425022131 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.49581246 30 ctime=1360750008.583811615 fluxbox-1.3.5/src/FbTk/MultiButtonMenuItem.cc0000644000175000017500000000504512106662425020165 0ustar00mgmg00000000000000// MultiButtonMenuItem.cc for FbTk // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "MultiButtonMenuItem.hh" #include "PixmapWithMask.hh" #include "Command.hh" namespace FbTk { MultiButtonMenuItem::MultiButtonMenuItem(int buttons, const FbTk::BiDiString &label): MenuItem(label), m_button_exe(0), m_buttons(buttons) { init(buttons); } MultiButtonMenuItem::MultiButtonMenuItem(int buttons, const FbTk::BiDiString &label, Menu *submenu): MenuItem(label, submenu), m_button_exe(0), m_buttons(buttons) { init(buttons); } MultiButtonMenuItem::~MultiButtonMenuItem() { delete [] m_button_exe; } void MultiButtonMenuItem::setCommand(int button, FbTk::RefCount > &cmd) { if (button <= 0 || button > static_cast(buttons()) || buttons() == 0) return; m_button_exe[button - 1] = cmd; } void MultiButtonMenuItem::click(int button, int time, unsigned int mods) { if (button <= 0 || button > static_cast(buttons()) || buttons() == 0) return; if (m_button_exe[button - 1] != 0) m_button_exe[button - 1]->execute(); } void MultiButtonMenuItem::init(int buttons) { if (buttons < 0) m_buttons = 0; else m_buttons = buttons; if (m_buttons != 0) m_button_exe = new FbTk::RefCount >[m_buttons]; else m_button_exe = 0; } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/MultiButtonMenuItem.hh0000644000175000017500000000013112106662425022143 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.49181246 30 ctime=1360750008.587811615 fluxbox-1.3.5/src/FbTk/MultiButtonMenuItem.hh0000644000175000017500000000423412106662425020176 0ustar00mgmg00000000000000// MultiButtonMenuItem.hh for FbTk // Copyright (c) 2003 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_MULTIBUTTONMENUITEM_HH #define FBTK_MULTIBUTTONMENUITEM_HH #include "MenuItem.hh" namespace FbTk { /// Handles commands for the specified numbers of buttons class MultiButtonMenuItem: public FbTk::MenuItem { public: MultiButtonMenuItem(int buttons, const FbTk::BiDiString& label); MultiButtonMenuItem(int buttons, const FbTk::BiDiString& label, Menu *submenu); virtual ~MultiButtonMenuItem(); /// sets command to specified button void setCommand(int button, FbTk::RefCount > &cmd); /// executes command for the button click virtual void click(int button, int time, unsigned int mods); /// @return number of buttons this instance handles unsigned int buttons() const { return m_buttons; } private: void init(int buttons); FbTk::RefCount > *m_button_exe; unsigned int m_buttons; }; } // end namespace FbTk #endif // FBTK_MULTIBUTTONMENUITEM_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/IntMenuItem.hh0000644000175000017500000000013112106662425020407 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.49181246 30 ctime=1360750008.587811615 fluxbox-1.3.5/src/FbTk/IntMenuItem.hh0000644000175000017500000000663112106662425016445 0ustar00mgmg00000000000000// IntMenuItem.hh for FbTk // Copyright (c) 2003-2007 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_INTMENUITEM_HH #define FBTK_INTMENUITEM_HH #include "MenuItem.hh" #include "StringUtil.hh" namespace FbTk { template class Accessor; /// Changes an resource integer value between min and max class IntMenuItem: public FbTk::MenuItem { public: IntMenuItem(const FbTk::FbString &label, Accessor &res, int min_val, int max_val, FbTk::Menu &host_menu) : FbTk::MenuItem(label, host_menu), m_org_label(FbTk::MenuItem::label()), m_max(max_val), m_min(min_val), m_res(res) { updateLabel(); setCloseOnClick(false); } void click(int button, int time, unsigned int mods) { static int last_time = -201; int inc_val = 1; // check double click //!! TODO: must have some sort of "global" double click time in FbTk if (time - last_time <= 200) inc_val = 5; last_time = time; // make sure values stay within bounds _before_ we try to set m_res // otherwise, this may cause bugs (say, with casting to unsigned char) if ((button == 4 || button == 3) && m_res < m_max) { // up if (m_res + inc_val < m_max) m_res = m_res + inc_val; else m_res = m_max; } else if ((button == 5 || button == 1) && m_res > m_min) { // down if (m_res - inc_val >= m_min) m_res = m_res - inc_val; else m_res = m_min; } // update label updateLabel(); // call other commands FbTk::MenuItem::click(button, time, mods); // show new value, which for us means forcing a full menu update // since the text is drawn onto the background! if (menu()) { menu()->frameWindow().updateBackground(false); menu()->clearWindow(); } } void updateLabel() { setLabel(m_org_label.logical() + ": " + FbTk::StringUtil::number2String(m_res)); } private: FbTk::BiDiString m_org_label; ///< original label const int m_max; ///< maximum value the integer can have const int m_min; ///< minimum value the integer can have Accessor &m_res; ///< resource item to be changed }; } // end namespace FbTk #endif // FBTK_INTMENUITEM_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/BoolMenuItem.hh0000644000175000017500000000013112106662425020550 xustar000000000000000030 mtime=1360749845.887812656 29 atime=1360749876.48781246 30 ctime=1360750008.587811615 fluxbox-1.3.5/src/FbTk/BoolMenuItem.hh0000644000175000017500000000443312106662425016604 0ustar00mgmg00000000000000// BoolMenuItem.hh for FbTk // Copyright (c) 2003 - 2007 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_BOOLMENUITEM_HH #define FBTK_BOOLMENUITEM_HH #include "MenuItem.hh" namespace FbTk { template class Accessor; /// a bool menu item class BoolMenuItem: public FbTk::MenuItem { public: BoolMenuItem(const FbTk::FbString &label, Accessor &item, FbTk::RefCount > &cmd): FbTk::MenuItem(label, cmd), m_item(item) { FbTk::MenuItem::setSelected(m_item); setToggleItem(true); setCloseOnClick(false); } BoolMenuItem(const FbTk::FbString &label, Accessor &item): FbTk::MenuItem(label), m_item(item) { FbTk::MenuItem::setSelected(m_item); setToggleItem(true); setCloseOnClick(false); } bool isSelected() const { return m_item; } // toggle state void click(int button, int time, unsigned int mods) { setSelected(!m_item); FbTk::MenuItem::click(button, time, mods); } void setSelected(bool value) { m_item = value; FbTk::MenuItem::setSelected(m_item); } private: Accessor &m_item; }; } // end namespace FbTk #endif // FBTK_BOOLMENUITEM_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/MenuItem.cc0000644000175000017500000000013112106662425017722 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.48781246 30 ctime=1360750008.587811615 fluxbox-1.3.5/src/FbTk/MenuItem.cc0000644000175000017500000003140212106662425015752 0ustar00mgmg00000000000000// MenuItem.cc for FbTk - Fluxbox Toolkit // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "MenuItem.hh" #include "Command.hh" #include "GContext.hh" #include "MenuTheme.hh" #include "PixmapWithMask.hh" #include "Image.hh" #include "App.hh" #include "StringUtil.hh" #include "Menu.hh" #include namespace FbTk { void MenuItem::click(int button, int time, unsigned int mods) { if (m_command.get() != 0) { if (m_menu && m_close_on_click && (mods & ControlMask) == 0) m_menu->hide(); // we need a local variable, since the command may destroy this object RefCount > tmp(m_command); tmp->execute(); } } void MenuItem::drawLine(FbDrawable &draw, const FbTk::ThemeProxy &theme, size_t size, int text_x, int text_y, unsigned int width) const { unsigned int height = theme->itemHeight(); int bevelW = theme->bevelWidth(); int font_top = (height - theme->hiliteFont().height())/2; int underline_height = font_top + theme->hiliteFont().ascent() + 2; int bottom = height - bevelW - 1; text_y += bottom > underline_height ? underline_height : bottom; int text_w = theme->hiliteFont().textWidth(label()); const FbString& visual = m_label.visual(); BiDiString search_string(FbString(visual, 0, size > visual.size() ? visual.size() : size)); int search_string_w = theme->hiliteFont().textWidth(search_string); // pay attention to the text justification switch(theme->hiliteFontJustify()) { case FbTk::LEFT: text_x += bevelW + height + 1; break; case FbTk::RIGHT: text_x += width - (height + bevelW + text_w); break; default: //center text_x += ((width + 1 - text_w) / 2); break; } // avoid drawing an ugly dot if (size != 0) draw.drawLine(theme->hiliteUnderlineGC().gc(), text_x, text_y, text_x + search_string_w, text_y); } void MenuItem::draw(FbDrawable &draw, const FbTk::ThemeProxy &theme, bool highlight, bool draw_foreground, bool draw_background, int x, int y, unsigned int width, unsigned int height) const { // text and submenu icon are background // selected pixmaps are foreground Display *disp = App::instance()->display(); // // Icon // if (draw_background) { if (icon() != 0) { // copy pixmap, so we don't resize the original FbPixmap tmp_pixmap, tmp_mask; tmp_pixmap.copy(icon()->pixmap()); tmp_mask.copy(icon()->mask()); // scale pixmap to right size if (height - 2*theme->bevelWidth() != tmp_pixmap.height()) { unsigned int scale_size = height - 2*theme->bevelWidth(); tmp_pixmap.scale(scale_size, scale_size); tmp_mask.scale(scale_size, scale_size); } if (tmp_pixmap.drawable() != 0) { GC gc = theme->frameTextGC().gc(); int icon_x = x + theme->bevelWidth(); int icon_y = y + theme->bevelWidth(); // enable clip mask XSetClipMask(disp, gc, tmp_mask.drawable()); XSetClipOrigin(disp, gc, icon_x, icon_y); if (draw.depth() == tmp_pixmap.depth()) { draw.copyArea(tmp_pixmap.drawable(), gc, 0, 0, icon_x, icon_y, tmp_pixmap.width(), tmp_pixmap.height()); } else { // TODO: wrong in soon-to-be-common circumstances XGCValues backup; XGetGCValues(draw.display(), gc, GCForeground|GCBackground, &backup); XSetForeground(draw.display(), gc, Color("black", theme->screenNum()).pixel()); XSetBackground(draw.display(), gc, Color("white", theme->screenNum()).pixel()); XCopyPlane(draw.display(), tmp_pixmap.drawable(), draw.drawable(), gc, 0, 0, tmp_pixmap.width(), tmp_pixmap.height(), icon_x, icon_y, 1); XSetForeground(draw.display(), gc, backup.foreground); XSetBackground(draw.display(), gc, backup.background); } // restore clip mask XSetClipMask(disp, gc, None); } } } if (label().logical().empty()) return; // text is background if (draw_background) { const GContext &tgc = (highlight ? theme->hiliteTextGC() : (isEnabled() ? theme->frameTextGC() : theme->disableTextGC() ) ); const Font& font = (highlight ? theme->hiliteFont() : theme->frameFont()); // // Text // int text_y = y, text_x = x; int text_w = font.textWidth(label()); int height_offset = theme->itemHeight() - (font.height() + 2*theme->bevelWidth()); text_y = y + theme->bevelWidth() + font.ascent() + height_offset/2; switch(highlight ? theme->hiliteFontJustify() : theme->frameFontJustify()) { case FbTk::LEFT: text_x = x + theme->bevelWidth() + height + 1; break; case FbTk::RIGHT: text_x = x + width - (height + theme->bevelWidth() + text_w); break; default: //center text_x = x + ((width + 1 - text_w) / 2); break; } font.drawText(draw, theme->screenNum(), tgc.gc(), label(), text_x, text_y); } GC gc = (highlight) ? theme->hiliteTextGC().gc() : theme->frameTextGC().gc(); int sel_x = x; int sel_y = y; unsigned int item_pm_height = theme->itemHeight(); if (theme->bulletPos() == FbTk::RIGHT) sel_x += width - height - theme->bevelWidth(); // selected pixmap is foreground if (draw_foreground && isToggleItem()) { // // ToggleItem // const PixmapWithMask *pm = 0; if (isSelected()) { if (highlight && theme->highlightSelectedPixmap().pixmap().drawable() != 0) pm = &theme->highlightSelectedPixmap(); else pm = &theme->selectedPixmap(); } else { if (highlight && theme->highlightUnselectedPixmap().pixmap().drawable() != 0) pm = &theme->highlightUnselectedPixmap(); else pm = &theme->unselectedPixmap(); } if (pm != 0 && pm->pixmap().drawable() != 0) { unsigned int selw = pm->width(); unsigned int selh = pm->height(); int offset_x = 0; int offset_y = 0; if (selw < item_pm_height) offset_x += (item_pm_height - selw) / 2; if (selh < item_pm_height) offset_y += (item_pm_height - selh) / 2; XSetClipMask(disp, gc, pm->mask().drawable()); XSetClipOrigin(disp, gc, sel_x+offset_x, sel_y+offset_y); // copy bullet pixmap to drawable draw.copyArea(pm->pixmap().drawable(), gc, 0, 0, sel_x+offset_x, sel_y+offset_y, selw, selh); // disable clip mask XSetClipMask(disp, gc, None); } else if (isSelected()) { draw.fillRectangle(theme->hiliteGC().gc(), sel_x+item_pm_height/4, sel_y+item_pm_height/4, item_pm_height/2, item_pm_height/2); } } // // Submenu (background) // if (draw_background && submenu()) { const PixmapWithMask *pm = 0; if (highlight && theme->highlightBulletPixmap().pixmap().drawable() != 0) pm = &theme->highlightBulletPixmap(); else pm = &theme->bulletPixmap(); if (pm && pm->pixmap().drawable() != 0) { unsigned int selw = pm->width(); unsigned int selh = pm->height(); int offset_x = 0; int offset_y = 0; if (selw < item_pm_height) offset_x += (item_pm_height - selw) / 2; if (selh < item_pm_height) offset_y += (item_pm_height - selh) / 2; XSetClipMask(disp, gc, pm->mask().drawable()); XSetClipOrigin(disp, gc, sel_x+offset_x, sel_y+offset_y); // copy bullet pixmap to drawable draw.copyArea(pm->pixmap().drawable(), gc, 0, 0, sel_x+offset_x, sel_y+offset_y, selw, selh); // disable clip mask XSetClipMask(disp, gc, None); } else { unsigned int half_w = item_pm_height / 2, quarter_w = item_pm_height / 4; switch (theme->bullet()) { case MenuTheme::SQUARE: draw.drawRectangle(gc, sel_x+quarter_w, y+quarter_w, half_w, half_w); break; case MenuTheme::TRIANGLE: draw.drawTriangle(gc, ((theme->bulletPos() == FbTk::RIGHT)? FbTk::FbDrawable::RIGHT: FbTk::FbDrawable::LEFT), sel_x, sel_y, item_pm_height, item_pm_height, 300); // 33% triangle break; case MenuTheme::DIAMOND: XPoint dia[4]; dia[0].x = sel_x + half_w - 3; dia[0].y = sel_y + half_w; dia[1].x = 3; dia[1].y = -3; dia[2].x = 3; dia[2].y = 3; dia[3].x = -3; dia[3].y = 3; draw.fillPolygon(gc, dia, 4, Convex, CoordModePrevious); break; default: break; } } } } void MenuItem::setIcon(const std::string &filename, int screen_num) { if (filename.empty()) { if (m_icon.get() != 0) m_icon.reset(0); return; } if (m_icon.get() == 0) m_icon.reset(new Icon); m_icon->filename = FbTk::StringUtil::expandFilename(filename); m_icon->pixmap.reset(Image::load(m_icon->filename.c_str(), screen_num)); } unsigned int MenuItem::height(const FbTk::ThemeProxy &theme) const { return std::max(theme->itemHeight(), std::max(theme->frameFont().height() + 2*theme->bevelWidth(), theme->hiliteFont().height() + 2*theme->bevelWidth())); } unsigned int MenuItem::width(const FbTk::ThemeProxy &theme) const { // textwidth + bevel width on each side of the text const unsigned int icon_width = height(theme); const unsigned int normal = 2 * (theme->bevelWidth() + icon_width) + std::max(theme->frameFont().textWidth(label()), theme->hiliteFont().textWidth(label())); return m_icon.get() == 0 ? normal : normal + icon_width; } void MenuItem::updateTheme(const FbTk::ThemeProxy &theme) { if (m_icon.get() == 0) return; m_icon->pixmap.reset(Image::load(m_icon->filename.c_str(), theme->screenNum())); } void MenuItem::showSubmenu() { if (submenu() != 0) submenu()->show(); } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/MenuItem.hh0000644000175000017500000000013112106662425017734 xustar000000000000000030 mtime=1360749845.891812656 29 atime=1360749876.48781246 30 ctime=1360750008.591811615 fluxbox-1.3.5/src/FbTk/MenuItem.hh0000644000175000017500000001410212106662425015762 0ustar00mgmg00000000000000// MenuItem.hh for FbTk - Fluxbox Toolkit // Copyright (c) 2003-2004 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_MENUITEM_HH #define FBTK_MENUITEM_HH #include "RefCount.hh" #include "Command.hh" #include "PixmapWithMask.hh" #include "ITypeAheadable.hh" #include "FbString.hh" #include namespace FbTk { class Menu; class MenuTheme; class FbDrawable; template class ThemeProxy; /// An interface for a menu item in Menu class MenuItem : public FbTk::ITypeAheadable { public: MenuItem() : m_label(BiDiString("")), m_menu(0), m_submenu(0), m_enabled(true), m_selected(false), m_close_on_click(true), m_toggle_item(false) { } explicit MenuItem(const BiDiString &label) : m_label(label), m_menu(0), m_submenu(0), m_enabled(true), m_selected(false), m_close_on_click(true), m_toggle_item(false) { } MenuItem(const BiDiString &label, Menu &host_menu) : m_label(label), m_menu(&host_menu), m_submenu(0), m_enabled(true), m_selected(false), m_close_on_click(true), m_toggle_item(false) { } /// create a menu item with a specific command to be executed on click MenuItem(const BiDiString &label, RefCount > &cmd, Menu *menu = 0) : m_label(label), m_menu(menu), m_submenu(0), m_command(cmd), m_enabled(true), m_selected(false), m_close_on_click(true), m_toggle_item(false) { } MenuItem(const BiDiString &label, Menu *submenu, Menu *host_menu = 0) : m_label(label), m_menu(host_menu), m_submenu(submenu), m_enabled(true), m_selected(false), m_close_on_click(true), m_toggle_item(false) { } virtual ~MenuItem() { } void setCommand(RefCount > &cmd) { m_command = cmd; } virtual void setSelected(bool selected) { m_selected = selected; } virtual void setEnabled(bool enabled) { m_enabled = enabled; } virtual void setLabel(const BiDiString &label) { m_label = label; } virtual void setToggleItem(bool val) { m_toggle_item = val; } void setCloseOnClick(bool val) { m_close_on_click = val; } void setIcon(const std::string &filename, int screen_num); virtual Menu *submenu() { return m_submenu; } /** @name accessors */ //@{ virtual const FbTk::BiDiString& label() const { return m_label; } virtual const PixmapWithMask *icon() const { return m_icon.get() ? m_icon->pixmap.get() : 0; } virtual const Menu *submenu() const { return m_submenu; } virtual bool isEnabled() const { return m_enabled; } virtual bool isSelected() const { return m_selected; } virtual bool isToggleItem() const { return m_toggle_item; } // iType functions virtual void setIndex(int index) { m_index = index; } virtual int getIndex() { return m_index; } const FbString &iTypeString() const { return m_label.visual(); } virtual void drawLine(FbDrawable &draw, const FbTk::ThemeProxy &theme, size_t size, int text_x, int text_y, unsigned int width) const; virtual unsigned int width(const FbTk::ThemeProxy &theme) const; virtual unsigned int height(const FbTk::ThemeProxy &theme) const; virtual void draw(FbDrawable &drawable, const FbTk::ThemeProxy &theme, bool highlight, // "foreground" is the transient bits - more likely to change bool draw_foreground, bool draw_background, int x, int y, unsigned int width, unsigned int height) const; virtual void updateTheme(const FbTk::ThemeProxy &theme); /** Called when the item was clicked with a specific button @param button the button number @param time the time stamp */ virtual void click(int button, int time, unsigned int mods); /// must use this to show submenu to ensure consistency for object like window menu in ClientMenu (see Workspace.cc) virtual void showSubmenu(); RefCount > &command() { return m_command; } const RefCount > &command() const { return m_command; } //@} void setMenu(Menu &menu) { m_menu = &menu; } Menu *menu() { return m_menu; } private: BiDiString m_label; ///< label of this item Menu *m_menu; ///< the menu we live in Menu *m_submenu; ///< a submenu, 0 if we don't have one RefCount > m_command; ///< command to be executed bool m_enabled, m_selected; bool m_close_on_click, m_toggle_item; int m_index; struct Icon { std::auto_ptr pixmap; std::string filename; }; std::auto_ptr m_icon; }; } // end namespace FbTk #endif // FBTK_MENUITEM_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Menu.cc0000644000175000017500000000013212106662425017104 xustar000000000000000030 mtime=1360749845.891812656 30 atime=1360749876.483812461 30 ctime=1360750008.591811615 fluxbox-1.3.5/src/FbTk/Menu.cc0000644000175000017500000012073112106662425015137 0ustar00mgmg00000000000000// Menu.cc for FbTk - Fluxbox Toolkit // Copyright (c) 2001 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Basemenu.cc for blackbox - an X11 Window manager // Copyright (c) 1997 - 2000 Brad Hughes (bhughes at tcac.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. //use GNU extensions #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif // _GNU_SOURCE #include "Menu.hh" #ifdef HAVE_CONFIG_H #include "config.h" #endif //HAVE_CONFIG_H #include "MenuItem.hh" #include "MenuSeparator.hh" #include "ImageControl.hh" #include "MemFun.hh" #include "MenuTheme.hh" #include "App.hh" #include "EventManager.hh" #include "Transparent.hh" #include "SimpleCommand.hh" #include "FbPixmap.hh" #include #include #include #include #ifdef HAVE_CSTDIO #include #else #include #endif #ifdef HAVE_CSTDLIB #include #else #include #endif #ifdef HAVE_CSTRING #include #else #include #endif #ifdef DEBUG #include using std::cerr; using std::endl; #endif // DEBUG namespace { // if 'win' is given, 'pm' is used as the backGroundPixmap void renderMenuPixmap(Pixmap& pm, FbTk::FbWindow* win, int width, int height, const FbTk::Texture& tex, FbTk::ImageControl& img_ctrl) { img_ctrl.removeImage(pm); if (!tex.usePixmap()) { pm = None; if (win) win->setBackgroundColor(tex.color()); } else { pm = img_ctrl.renderImage(width, height, tex); if (win) win->setBackgroundPixmap(pm); } } } // end of anonymous namespace namespace FbTk { Menu *Menu::shown = 0; Menu *Menu::s_focused = 0; Menu::Menu(FbTk::ThemeProxy &tm, ImageControl &imgctrl): m_theme(tm), m_parent(0), m_image_ctrl(imgctrl), m_screen_x(0), m_screen_y(0), m_screen_width(DisplayWidth(FbTk::App::instance()->display(), tm->screenNum())), m_screen_height(DisplayHeight(FbTk::App::instance()->display(), tm->screenNum())), m_alignment(ALIGNDONTCARE), m_active_index(-1), m_shape(0), m_need_update(true) { // setup timers RefCount > show_cmd(new SimpleCommand(*this, &Menu::openSubmenu)); m_submenu_timer.setCommand(show_cmd); m_submenu_timer.fireOnce(true); RefCount > hide_cmd(new SimpleCommand(*this, &Menu::closeMenu)); m_hide_timer.setCommand(hide_cmd); m_hide_timer.fireOnce(true); // make sure we get updated when the theme is reloaded m_tracker.join(tm.reconfigSig(), MemFun(*this, &Menu::themeReconfigured)); m_title_vis = true; m_internal_menu = m_moving = m_closing = m_torn = m_visible = false; m_type_ahead.init(menuitems); m_x_move = m_y_move = 0; m_which_sub = -1; m_frame_pixmap = m_title_pixmap = m_hilite_pixmap = None; m_item_w = m_frame_h = theme()->titleFont().height() + theme()->bevelWidth() * 2; m_columns = m_rows_per_column = m_min_columns = 0; FbTk::EventManager &evm = *FbTk::EventManager::instance(); long event_mask = ButtonPressMask | ButtonReleaseMask | ButtonMotionMask | KeyPressMask | ExposureMask | FocusChangeMask; // create menu window m_window = FbTk::FbWindow(tm->screenNum(), 0, 0, 10, 10, event_mask, true, // override redirect true); // save_under // initialize 'shape' here AFTER we created m_window aka fbwindow() m_shape.reset(new Shape(fbwindow(), tm->shapePlaces())); evm.add(*this, m_window); // strip focus change mask from attrib, since we should only use it with main window event_mask ^= FocusChangeMask; event_mask |= EnterWindowMask | LeaveWindowMask; //create menu title m_title = FbTk::FbWindow(m_window, // parent 0, 0, width(), theme()->titleHeight(), // pos and size event_mask, // mask false, // override redirect true); // save under evm.add(*this, m_title); m_title.setRenderer(*this); event_mask |= PointerMotionMask; m_frame = FbTk::FbWindow(m_window, // parent 0, theme()->titleHeight(), // pos width(), m_frame_h ? m_frame_h : 1, // size event_mask, // mask false, // override redirect true); // save under evm.add(*this, m_frame); m_frame.setRenderer(*this); m_title.raise(); reconfigure(); } Menu::~Menu() { m_window.hide(); if (shown && shown->window() == window()) shown = 0; removeAll(); if (m_title_pixmap) m_image_ctrl.removeImage(m_title_pixmap); if (m_frame_pixmap) m_image_ctrl.removeImage(m_frame_pixmap); if (m_hilite_pixmap) m_image_ctrl.removeImage(m_hilite_pixmap); if (s_focused == this) s_focused = 0; } int Menu::insert(const FbString &label, RefCount > &cmd, int pos) { return insert(new MenuItem(label, cmd, this), pos); } int Menu::insert(const FbString &label, int pos) { return insert(new MenuItem(label, *this), pos); } int Menu::insert(const FbString &label, Menu *submenu, int pos) { return insert(new MenuItem(label, submenu, this), pos); } int Menu::insert(MenuItem *item, int pos) { if (item == 0) return menuitems.size(); if (pos == -1) { item->setIndex(menuitems.size()); menuitems.push_back(item); } else { menuitems.insert(menuitems.begin() + pos, item); fixMenuItemIndices(); if (m_active_index >= pos) m_active_index++; } m_need_update = true; // we need to redraw the menu return menuitems.size(); } void Menu::fixMenuItemIndices() { for (size_t i = 0; i < menuitems.size(); i++) menuitems[i]->setIndex(i); } int Menu::remove(unsigned int index) { if (index >= menuitems.size()) { #ifdef DEBUG cerr << __FILE__ << "(" << __LINE__ << ") Bad index (" << index << ") given to Menu::remove()" << " -- should be between 0 and " << menuitems.size()-1 << " inclusive." << endl; #endif // DEBUG return -1; } Menuitems::iterator it = menuitems.begin() + index; MenuItem *item = (*it); if (item) { if (!m_matches.empty()) resetTypeAhead(); menuitems.erase(it); // avoid O(n^2) algorithm with removeAll() if (index != menuitems.size()) fixMenuItemIndices(); if (item->submenu() != 0) { Menu *tmp = item->submenu(); // if menu is internal we should just hide it instead // if destroying it if (! tmp->m_internal_menu) { delete tmp; } // We can't internal_hide here, as the child may be deleted! // } else // tmp->internal_hide(); } delete item; } if (static_cast(m_which_sub) == index) m_which_sub = -1; else if (static_cast(m_which_sub) > index) m_which_sub--; if (static_cast(m_active_index) > index) m_active_index--; m_need_update = true; // we need to redraw the menu return menuitems.size(); } void Menu::removeAll() { while (!menuitems.empty()) remove(menuitems.size()-1); } void Menu::raise() { m_window.raise(); } void Menu::lower() { m_window.lower(); } void Menu::cycleItems(bool reverse) { Menuitems vec; if (m_type_ahead.stringSize()) vec = m_matches; else vec = menuitems; if (vec.size() < 1) return; // find the next item to select // this algorithm assumes menuitems are sorted properly int new_index = -1; bool passed = !validIndex(m_active_index); for (size_t i = 0; i < vec.size(); i++) { if (!isItemSelectable(vec[i]->getIndex()) || vec[i]->getIndex() == m_active_index) continue; // determine whether or not we've passed the active index if (!passed && vec[i]->getIndex() > m_active_index) { if (reverse && new_index != -1) break; passed = true; } // decide if we want to keep this item if (passed && !reverse) { new_index = vec[i]->getIndex(); break; } else if (reverse || new_index == -1) new_index = vec[i]->getIndex(); } if (new_index != -1) setActiveIndex(new_index); } void Menu::setActiveIndex(int new_index) { // clear the items and close any open submenus int old_active_index = m_active_index; m_active_index = new_index; if (validIndex(old_active_index) && menuitems[old_active_index] != 0) { if (menuitems[old_active_index]->submenu()) { // we need to do this explicitly on the m_window // since it might hide the parent if we use Menu::hide menuitems[old_active_index]->submenu()->internal_hide(); } clearItem(old_active_index); } clearItem(new_index); } void Menu::enterSubmenu() { if (!validIndex(m_active_index)) return; Menu *submenu = menuitems[m_active_index]->submenu(); if (submenu == 0) return; if (submenu->menuitems.empty()) return; drawSubmenu(m_active_index); submenu->grabInputFocus(); submenu->m_active_index = -1; // so we land on 0 after nextItem() submenu->cycleItems(false); } void Menu::disableTitle() { setTitleVisibility(false); } void Menu::enableTitle() { setTitleVisibility(true); } void Menu::updateMenu() { if (m_title_vis) { m_item_w = theme()->titleFont().textWidth(m_label); m_item_w += (theme()->bevelWidth() * 2); } else m_item_w = 1; if (validIndex(m_active_index) && !menuitems[m_active_index]->isEnabled()) { // find the nearest enabled menuitem and highlight it for (size_t i = 1; i < menuitems.size(); i++) { if (validIndex(m_active_index + i) && menuitems[m_active_index + i]->isEnabled()) { m_active_index += i; break; } else if (validIndex(m_active_index - i) && menuitems[m_active_index - i]->isEnabled()) { m_active_index -= i; break; } } } unsigned int ii = 0; Menuitems::iterator it = menuitems.begin(); Menuitems::iterator it_end = menuitems.end(); for (; it != it_end; ++it) { ii = (*it)->width(theme()); m_item_w = (ii > m_item_w ? ii : m_item_w); } if (m_item_w < 1) m_item_w = 1; if (!menuitems.empty()) { m_columns = 1; while (theme()->itemHeight() * (menuitems.size() + 1) / m_columns + theme()->titleHeight() + theme()->borderWidth() > m_screen_height) { m_columns++; } if (m_columns < m_min_columns) m_columns = m_min_columns; m_rows_per_column = menuitems.size() / m_columns; if (menuitems.size() % m_columns) m_rows_per_column++; } else { m_columns = 0; m_rows_per_column = 0; } int itmp = (theme()->itemHeight() * m_rows_per_column); m_frame_h = itmp < 1 ? 1 : itmp; unsigned int new_width = (m_columns * m_item_w); unsigned int new_height = m_frame_h; if (m_title_vis) new_height += theme()->titleHeight() + ((m_frame_h > 0)?m_title.borderWidth():0); if (new_width == 0) new_width = m_item_w; if (new_height < 1) new_height = 1; // must update main window size whether visible or not // the rest can wait until the end if (m_window.width() != new_width) m_need_update = true; m_window.resize(new_width, new_height); if (!isVisible()) return; if (m_frame.alpha() != alpha()) m_frame.setAlpha(alpha()); renderMenuPixmap(m_hilite_pixmap, NULL, m_item_w, theme()->itemHeight(), theme()->hiliteTexture(), m_image_ctrl); if (!theme()->selectedPixmap().pixmap().drawable()) { int hw = theme()->itemHeight() / 2; // render image, disable cache and let the theme remove the pixmap theme()->setSelectedPixmap(m_image_ctrl. renderImage(hw, hw, theme()->hiliteTexture(), ROT0, false // no cache ), false); // the theme takes care of this pixmap if (!theme()->highlightSelectedPixmap().pixmap().drawable()) { int hw = theme()->itemHeight() / 2; // render image, disable cache and let the theme remove the pixmap theme()->setHighlightSelectedPixmap(m_image_ctrl. renderImage(hw, hw, theme()->frameTexture(), ROT0, false // no cache ), false); // theme takes care of this pixmap } } if (m_title_vis) { m_title.moveResize(-m_title.borderWidth(), -m_title.borderWidth(), width() + m_title.borderWidth(), theme()->titleHeight()); } m_frame.moveResize(0, ((m_title_vis) ? m_title.y() + m_title.height() + m_title.borderWidth()*2 : 0), width(), m_frame_h); if (m_title_vis && m_need_update) { renderMenuPixmap(m_title_pixmap, &m_title, width(), theme()->titleHeight(), theme()->titleTexture(), m_image_ctrl); } if (m_need_update) { renderMenuPixmap(m_frame_pixmap, &m_frame, width(), m_frame_h, theme()->frameTexture(), m_image_ctrl); } clearWindow(); m_need_update = false; m_shape->update(); } void Menu::show() { if (isVisible() || menuitems.empty()) return; m_visible = true; if (m_need_update) updateMenu(); m_type_ahead.reset(); m_matches.clear(); m_window.showSubwindows(); m_window.show(); raise(); if (shown && shown != this) shown->hide(); shown = this; } void Menu::hide(bool force) { if (!isVisible()) return; // if parent is visible, go to first parent and hide it Menu *p = this; while (p && p->isVisible()) { Menu *tmp = p->m_parent; if (force || !p->m_torn) p->internal_hide(); else p->m_parent = 0; p = tmp; } } void Menu::grabInputFocus() { // if there's a submenu open, focus it instead if (validIndex(m_which_sub) && menuitems[m_which_sub]->submenu()->isVisible()) { menuitems[m_which_sub]->submenu()->grabInputFocus(); return; } s_focused = this; // grab input focus m_window.setInputFocus(RevertToPointerRoot, CurrentTime); } void Menu::clearWindow() { m_title.clear(); m_frame.clear(); // clear foreground bits of frame items for (size_t i = 0; i < menuitems.size(); i++) { clearItem(i, false); // no clear } m_shape->update(); } void Menu::redrawFrame(FbDrawable &drawable) { for (size_t i = 0; i < menuitems.size(); i++) { drawItem(drawable, i); } } void Menu::internal_hide(bool first) { if (validIndex(m_which_sub)) { MenuItem *tmp = menuitems[m_which_sub]; if (tmp && tmp->submenu() && tmp->submenu()->isVisible()) tmp->submenu()->internal_hide(false); } // if we have an active index we need to redraw it // as non active int old = m_active_index; m_active_index = -1; clearItem(old); // clear old area from highlight if (shown == this) { if (m_parent && m_parent->isVisible()) shown = m_parent; else shown = (Menu *) 0; } m_torn = m_visible = m_closing = false; m_which_sub = -1; if (first && m_parent && m_parent->isVisible() && s_focused && !s_focused->isVisible()) m_parent->grabInputFocus(); m_parent = 0; m_window.hide(); } void Menu::move(int x, int y) { if (x == this->x() && y == this->y()) return; m_window.move(x, y); // potentially transparent children m_title.parentMoved(); m_frame.parentMoved(); if (!isVisible()) return; if (alpha() < 255) clearWindow(); if (validIndex(m_which_sub) && menuitems[m_which_sub]->submenu()->isVisible()) drawSubmenu(m_which_sub); } void Menu::redrawTitle(FbDrawable &drawable) { const FbTk::Font &font = theme()->titleFont(); int dx = theme()->bevelWidth(); unsigned int l = font.textWidth(m_label) + theme()->bevelWidth()*2; switch (theme()->titleFontJustify()) { case FbTk::RIGHT: dx += width() - l; break; case FbTk::CENTER: dx += (width() - l) / 2; break; default: break; } // difference between height based on font, and style-set height int height_offset = theme()->titleHeight() - (font.height() + 2*theme()->bevelWidth()); font.drawText(drawable, screenNumber(), theme()->titleTextGC().gc(), m_label, dx, font.ascent() + theme()->bevelWidth() + height_offset/2); // position } void Menu::drawSubmenu(unsigned int index) { if (validIndex(m_which_sub) && static_cast(m_which_sub) != index) { MenuItem *itmp = menuitems[m_which_sub]; if (! itmp->submenu()->isTorn()) itmp->submenu()->internal_hide(); } if (index >= menuitems.size()) return; MenuItem *item = menuitems[index]; if (item->submenu() && isVisible() && (! item->submenu()->isTorn()) && item->isEnabled()) { if (item->submenu()->m_parent != this) item->submenu()->m_parent = this; item->submenu()->setScreen(m_screen_x, m_screen_y, m_screen_width, m_screen_height); // ensure we do not divide by 0 and thus cause a SIGFPE if (m_rows_per_column == 0) { #if DEBUG cerr << __FILE__ << "(" << __LINE__ << ") Error: m_rows_per_column == 0 in FbTk::Menu::drawSubmenu()\n"; #endif return; } int column = index / m_rows_per_column; int row = index - (column * m_rows_per_column); int new_x = x() + ((m_item_w * (column + 1)) + m_window.borderWidth()); int new_y; if (m_alignment == ALIGNTOP) { new_y = (y() + ((m_title_vis) ? theme()->titleHeight() + m_title.borderWidth() : 0) - ((item->submenu()->m_title_vis) ? item->submenu()->theme()->titleHeight() + m_window.borderWidth() : 0)); } else { new_y = (y() + (theme()->itemHeight() * row) + ((m_title_vis) ? theme()->titleHeight() + m_window.borderWidth() : 0) - ((item->submenu()->m_title_vis) ? item->submenu()->theme()->titleHeight() + m_window.borderWidth() : 0)); } if (m_alignment == ALIGNBOTTOM && (new_y + item->submenu()->height()) > (y() + height())) { new_y = (y() + height() - item->submenu()->height()); } int borderw = item->submenu()->fbwindow().borderWidth(); if ((new_x + item->submenu()->width()) + 2*borderw > m_screen_x + m_screen_width) { new_x = x() - item->submenu()->width() - m_window.borderWidth(); } if (new_x < m_screen_x) new_x = m_screen_x; if ((new_y + item->submenu()->height()) > m_screen_y + m_screen_height) { new_y = m_screen_y + m_screen_height - item->submenu()->height() - m_window.borderWidth() * 2; } item->submenu()->m_moving = m_moving; m_which_sub = index; if (new_y < m_screen_y) new_y = m_screen_y; item->submenu()->move(new_x, new_y); if (! m_moving) clearItem(index); if (! item->submenu()->isVisible() && item->submenu()->numberOfItems() > 0) { shown = item->submenu(); item->showSubmenu(); item->submenu()->raise(); } } else m_which_sub = -1; } int Menu::drawItem(FbDrawable &drawable, unsigned int index, bool highlight, bool exclusive_drawable) { if (index >= menuitems.size() || menuitems.empty() || m_rows_per_column == 0) return 0; MenuItem *item = menuitems[index]; if (! item) return 0; // ensure we do not divide by 0 and thus cause a SIGFPE if (m_rows_per_column == 0) { #if DEBUG cerr << __FILE__ << "(" << __LINE__ << ") Error: m_rows_per_column == 0 in FbTk::Menu::drawItem()\n"; #endif return 0; } int column = index / m_rows_per_column; int row = index - (column * m_rows_per_column); int item_x = (column * m_item_w); int item_y = (row * theme()->itemHeight()); if (exclusive_drawable) item_x = item_y = 0; item->draw(drawable, theme(), highlight, exclusive_drawable, true, // draw fg, draw bg item_x, item_y, m_item_w, theme()->itemHeight()); return item_y; } void Menu::setLabel(const FbTk::BiDiString &labelstr) { //make sure we don't send 0 to std::string m_label = labelstr; reconfigure(); } void Menu::setItemSelected(unsigned int index, bool sel) { if (index >= menuitems.size()) return; MenuItem *item = find(index); if (! item) return; item->setSelected(sel); } bool Menu::isItemSelected(unsigned int index) const{ if (index >= menuitems.size()) return false; const MenuItem *item = find(index); if (!item) return false; return item->isSelected(); } void Menu::setItemEnabled(unsigned int index, bool enable) { if (index >= menuitems.size()) return; MenuItem *item = find(index); if (! item) return; item->setEnabled(enable); } bool Menu::isItemEnabled(unsigned int index) const { if (index >= menuitems.size()) return false; const MenuItem *item = find(index); if (!item) return false; return item->isEnabled(); } bool Menu::isItemSelectable(unsigned int index) const { if (index >= menuitems.size()) return false; const MenuItem *item = find(index); return (!item || !item->isEnabled()) ? false : true; } void Menu::handleEvent(XEvent &event) { if (event.type == FocusOut) { if (s_focused == this) s_focused = 0; // I don't know why, but I get a FocusIn event when closing the menu with // the mouse over it -- probably an xorg bug, but it's easy to address here } else if (event.type == FocusIn && isVisible()) { if (s_focused != this) s_focused = this; // if there's a submenu open, focus it instead if (validIndex(m_which_sub) && menuitems[m_which_sub]->submenu()->isVisible()) menuitems[m_which_sub]->submenu()->grabInputFocus(); } } void Menu::buttonPressEvent(XButtonEvent &be) { if (be.window == m_title) { grabInputFocus(); m_closing = (be.button == 3); } else m_closing = false; if (be.window == m_frame && m_item_w != 0) { int column = (be.x / m_item_w); int i = (be.y / theme()->itemHeight()); int w = (column * m_rows_per_column) + i; if (validIndex(w) && isItemSelectable(static_cast(w))) { MenuItem *item = menuitems[w]; if (item->submenu()) { if (!item->submenu()->isVisible()) drawSubmenu(w); } } } else { m_x_move = be.x_root - x(); m_y_move = be.y_root - y(); } } void Menu::buttonReleaseEvent(XButtonEvent &re) { if (re.window == m_title) { if (m_moving) { m_moving = false; if (validIndex(m_which_sub) && menuitems[m_which_sub]->submenu()->isVisible()) drawSubmenu(m_which_sub); if (alpha() < 255) { // update these since we've (probably) moved m_title.parentMoved(); m_frame.parentMoved(); clearWindow(); } } if (re.button == 3 && m_closing) internal_hide(); } else if (re.window == m_frame) { int column = (re.x / m_item_w); int i = (re.y / theme()->itemHeight()); int ix = column * m_item_w; int iy = i * theme()->itemHeight(); int w = (column * m_rows_per_column) + i; if (validIndex(w) && isItemSelectable(static_cast(w))) { if (m_active_index == w && isItemEnabled(w) && re.x > ix && re.x < (signed) (ix + m_item_w) && re.y > iy && re.y < (signed) (iy + theme()->itemHeight())) { menuitems[w]->click(re.button, re.time, re.state); } else { int old = m_active_index; m_active_index = w; clearItem(old); } clearItem(w); } } } void Menu::motionNotifyEvent(XMotionEvent &me) { // if draging the with the titlebar: if (me.window == m_title && (me.state & Button1Mask)) { stopHide(); if (! m_moving) { // if not m_moving: start m_moving operation m_moving = m_torn = true; if (m_parent) m_parent->m_which_sub = -1; // clear current highlighted item clearItem(m_active_index); if (validIndex(m_which_sub) && menuitems[m_which_sub]->submenu()->isVisible()) drawSubmenu(m_which_sub); } else { // we dont call ::move here 'cause we dont want to update transparency // while draging the menu (which is slow) m_window.move(me.x_root - m_x_move, me.y_root - m_y_move); } } else if (!(me.state & Button1Mask) && me.window == m_frame) { stopHide(); int column = (me.x / m_item_w); int i = (me.y / theme()->itemHeight()); int w = (column * m_rows_per_column) + i; if (w == m_active_index || !validIndex(w)) return; // if another menu is focused, change focus to this one, so arrow keys // work as expected if (s_focused != this && s_focused != 0) grabInputFocus(); MenuItem *itmp = menuitems[w]; if (itmp == 0) return; if (itmp->isEnabled()) { int old = m_active_index; m_active_index = w; clearItem(w); clearItem(old); MenuItem *item = validIndex(m_which_sub) ? menuitems[m_which_sub] : 0; if (item != 0 && item->submenu() && item->submenu()->isVisible() && !item->submenu()->isTorn()) { // setup hide timer for submenu item->submenu()->startHide(); } } if (itmp->submenu()) { // start submenu open delay m_submenu_timer.setTimeout(theme()->getDelay() * FbTk::FbTime::IN_MILLISECONDS); m_submenu_timer.start(); } else if (isItemSelectable(w)){ // else normal menu item // draw highlighted m_submenu_timer.stop(); } } } void Menu::exposeEvent(XExposeEvent &ee) { // some xservers (eg: nxserver) send XExposeEvent for the unmapped menu. // this caused a SIGFPE in ::clearItem(), since m_rows_per_column is // still 0 -> division by 0. // // it is still unclear, why nxserver behaves this way if (!isVisible()) return; if (ee.window == m_title) { m_title.clearArea(ee.x, ee.y, ee.width, ee.height); } else if (ee.window == m_frame) { // find where to clear // this is a compilicated algorithm... lets do it step by step... // first... we see in which column the expose starts... and how many // items down in that column int column = (ee.x / m_item_w); int id = (ee.y / theme()->itemHeight()); // next... figure out how many sublevels over the redrawspans int column_d = ((ee.x + ee.width) / m_item_w); // then we see how many items down to redraw int id_d = ((ee.y + ee.height) / theme()->itemHeight()); if (id_d > m_rows_per_column) id_d = m_rows_per_column; // draw the columns and the number of items the exposure spans int i, ii; for (i = column; i <= column_d; i++) { // set the iterator to the first item in the column needing redrawing int index = id + i * m_rows_per_column; if (index < static_cast(menuitems.size()) && index >= 0) { Menuitems::iterator it = menuitems.begin() + index; Menuitems::iterator it_end = menuitems.end(); for (ii = id; ii <= id_d && it != it_end; ++it, ii++) { int index = ii + (i * m_rows_per_column); // redraw the item clearItem(index); } } } } } void Menu::keyPressEvent(XKeyEvent &event) { KeySym ks; char keychar[1]; XLookupString(&event, keychar, 1, &ks, 0); // a modifier key by itself doesn't do anything if (IsModifierKey(ks)) return; switch (ks) { case XK_Up: resetTypeAhead(); cycleItems(true); break; case XK_Down: resetTypeAhead(); cycleItems(false); break; case XK_Left: // enter parent if we have one resetTypeAhead(); if (m_columns > 1 && m_active_index >= m_rows_per_column) { int new_index = m_active_index - m_rows_per_column; while (new_index >= 0 && !isItemEnabled(new_index)) new_index -= m_rows_per_column; if (new_index >= 0) setActiveIndex(new_index); } else internal_hide(); break; case XK_Right: // enter submenu if we have one resetTypeAhead(); if (m_columns > 1 && validIndex(m_active_index) && validIndex(m_active_index + m_rows_per_column)) { int new_index = m_active_index + m_rows_per_column; while (validIndex(new_index) && !isItemEnabled(new_index)) new_index += m_rows_per_column; if (validIndex(new_index)) setActiveIndex(new_index); } else enterSubmenu(); break; case XK_Escape: // close menu m_type_ahead.reset(); m_torn = false; hide(true); break; case XK_BackSpace: if (m_type_ahead.stringSize() == 0) { internal_hide(); break; } m_type_ahead.putBackSpace(); drawTypeAheadItems(); break; case XK_KP_Enter: case XK_Return: resetTypeAhead(); if (validIndex(m_active_index) && isItemEnabled(m_active_index)) { // send fake button click int button = (event.state & ShiftMask) ? 3 : 1; if (menuitems[m_active_index]->submenu() != 0 && button == 1) enterSubmenu(); else { find(m_active_index)->click(button, event.time, event.state); m_need_update = true; updateMenu(); } } break; case XK_Tab: case XK_ISO_Left_Tab: if (validIndex(m_active_index) && isItemEnabled(m_active_index) && menuitems[m_active_index]->submenu() && m_matches.size() == 1) { enterSubmenu(); m_type_ahead.reset(); } else { m_type_ahead.seek(); cycleItems((bool)(event.state & ShiftMask)); } drawTypeAheadItems(); break; default: m_type_ahead.putCharacter(keychar[0]); // if current item doesn't match new search string, find the next one drawTypeAheadItems(); if (!m_matches.empty() && (!validIndex(m_active_index) || std::find(m_matches.begin(), m_matches.end(), find(m_active_index)) == m_matches.end())) cycleItems(false); break; } } void Menu::leaveNotifyEvent(XCrossingEvent &ce) { m_closing = false; // if there's a submenu open, highlight its index and stop hide if (validIndex(m_which_sub) && m_active_index != m_which_sub && menuitems[m_which_sub]->submenu()->isVisible()) { int old = m_active_index; m_active_index = m_which_sub; clearItem(m_active_index); clearItem(old); menuitems[m_which_sub]->submenu()->stopHide(); } } void Menu::reconfigure() { m_shape->setPlaces(theme()->shapePlaces()); if (FbTk::Transparent::haveComposite()) { m_window.setOpaque(alpha()); m_title.setAlpha(255); m_frame.setAlpha(255); } else { m_window.setOpaque(255); m_title.setAlpha(alpha()); m_frame.setAlpha(alpha()); } m_need_update = true; // redraw items m_window.setBorderColor(theme()->borderColor()); m_title.setBorderColor(theme()->borderColor()); m_frame.setBorderColor(theme()->borderColor()); m_window.setBorderWidth(theme()->borderWidth()); m_title.setBorderWidth(theme()->borderWidth()); updateMenu(); } void Menu::openSubmenu() { int item = m_active_index; if (!isVisible() || !validIndex(item) || !menuitems[item]->isEnabled() || (s_focused != this && s_focused && s_focused->isVisible())) return; clearItem(item); if (menuitems[item]->submenu() != 0) { // stop hide timer, so it doesnt hides the menu if we // have the same submenu as the last shown submenu // (window menu for clients inside workspacemenu for example) menuitems[item]->submenu()->m_hide_timer.stop(); drawSubmenu(item); } } void Menu::closeMenu() { if (isVisible() && !isTorn()) internal_hide(); } void Menu::startHide() { m_hide_timer.setTimeout(theme()->getDelay() * FbTk::FbTime::IN_MILLISECONDS); m_hide_timer.start(); } void Menu::stopHide() { m_hide_timer.stop(); } void Menu::themeReconfigured() { m_need_update = true; Menuitems::iterator it = menuitems.begin(); Menuitems::iterator it_end = menuitems.end(); for (; it != it_end; ++it) { (*it)->updateTheme(theme()); } reconfigure(); } void Menu::setScreen(int x, int y, int w, int h) { m_screen_x = x; m_screen_y = y; m_screen_width = w; m_screen_height = h; } // Render the foreground objects of given window onto given pixmap void Menu::renderForeground(FbWindow &win, FbDrawable &drawable) { if (&win == &m_frame) { redrawFrame(drawable); } else if (&win == &m_title) { redrawTitle(drawable); } } // clear item clears the item and draws the dynamic bits // thus sometimes it won't perform the actual clear operation // nothing in here should be rendered transparently // (unless you use a caching pixmap, which I think we should avoid) void Menu::clearItem(int index, bool clear, int search_index) { if (!validIndex(index)) return; // ensure we do not divide by 0 and thus cause a SIGFPE if (m_rows_per_column == 0) { #if DEBUG cerr << __FILE__ << "(" << __LINE__ << ") Error: m_rows_per_column == 0 in FbTk::Menu::clearItem()\n"; #endif return; } int column = index / m_rows_per_column; int row = index - (column * m_rows_per_column); unsigned int item_w = m_item_w; unsigned int item_h = theme()->itemHeight(); int item_x = (column * item_w); int item_y = (row * item_h); bool highlight = (index == m_active_index && isItemSelectable(index)); if (search_index < 0) // find if we need to underline the item search_index = std::find(m_matches.begin(), m_matches.end(), find(index)) - m_matches.begin(); // don't highlight if moving, doesn't work with alpha on if (highlight && !m_moving) { highlightItem(index); if (search_index < (int)m_matches.size()) drawLine(index, m_type_ahead.stringSize()); return; } else if (clear) m_frame.clearArea(item_x, item_y, item_w, item_h); MenuItem *item = menuitems[index]; if (! item) return; item->draw(m_frame, theme(), highlight, true, false, item_x, item_y, item_w, item_h); if (search_index < (int)m_matches.size()) drawLine(index, m_type_ahead.stringSize()); } // Area must have been cleared before calling highlight void Menu::highlightItem(int index) { // ensure we do not divide by 0 and thus cause a SIGFPE if (m_rows_per_column == 0) { #if DEBUG cerr << __FILE__ << "(" << __LINE__ << ") Error: m_rows_per_column == 0 in FbTk::Menu::highlightItem()\n"; #endif return; } int column = index / m_rows_per_column; int row = index - (column * m_rows_per_column); unsigned int item_w = m_item_w; unsigned int item_h = theme()->itemHeight(); int item_x = (column * m_item_w); int item_y = (row * item_h); FbPixmap buffer = FbPixmap(m_frame, item_w, item_h, m_frame.depth()); bool parent_rel = m_hilite_pixmap == ParentRelative; Pixmap pixmap = parent_rel ? m_frame_pixmap : m_hilite_pixmap; int pixmap_x = parent_rel ? item_x : 0, pixmap_y = parent_rel ? item_y : 0; if (pixmap) { buffer.copyArea(pixmap, theme()->hiliteGC().gc(), pixmap_x, pixmap_y, 0, 0, item_w, item_h); } else { buffer.fillRectangle(theme()->hiliteGC().gc(), 0, 0, item_w, item_h); } m_frame.updateTransparent(item_x, item_y, item_w, item_h, buffer.drawable(), true); drawItem(buffer, index, true, true); m_frame.copyArea(buffer.drawable(), theme()->hiliteGC().gc(), 0, 0, item_x, item_y, item_w, item_h); } void Menu::resetTypeAhead() { Menuitems vec = m_matches; Menuitems::iterator it = vec.begin(); m_type_ahead.reset(); m_matches.clear(); for (; it != vec.end(); ++it) clearItem((*it)->getIndex(), true, 1); } void Menu::drawTypeAheadItems() { // remove underlines from old matches for (size_t i = 0; i < m_matches.size(); i++) clearItem(m_matches[i]->getIndex(), true, m_matches.size()); m_matches = m_type_ahead.matched(); for (size_t j = 0; j < m_matches.size(); j++) clearItem(m_matches[j]->getIndex(), false, j); } // underline menuitem[index] with respect to matchstringsize size void Menu::drawLine(int index, int size){ if (!validIndex(index)) return; // ensure we do not divide by 0 and thus cause a SIGFPE if (m_rows_per_column == 0) { #if DEBUG cerr << __FILE__ << "(" << __LINE__ << ") Error: m_rows_per_column == 0 in FbTk::Menu::drawLine()\n"; #endif return; } int column = index / m_rows_per_column; int row = index - (column * m_rows_per_column); int item_x = (column * m_item_w); int item_y = (row * theme()->itemHeight()); FbTk::MenuItem *item = find(index); item->drawLine(m_frame, theme(), size, item_x, item_y, m_item_w); } void Menu::hideShownMenu() { if (shown) shown->hide(); } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Menu.hh0000644000175000017500000000013212106662425017116 xustar000000000000000030 mtime=1360749845.891812656 30 atime=1360749876.483812461 30 ctime=1360750008.591811615 fluxbox-1.3.5/src/FbTk/Menu.hh0000644000175000017500000002075512106662425015156 0ustar00mgmg00000000000000// Menu.hh for FbTk - Fluxbox Toolkit // Copyright (c) 2001 - 2004 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Basemenu.hh for Blackbox - an X11 Window manager // Copyright (c) 1997 - 2000 Brad Hughes (bhughes at tcac.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_MENU_HH #define FBTK_MENU_HH #include #include #include "FbString.hh" #include "FbWindow.hh" #include "EventHandler.hh" #include "MenuTheme.hh" #include "Timer.hh" #include "TypeAhead.hh" namespace FbTk { template class Command; class MenuItem; class ImageControl; template class RefCount; /// Base class for menus class Menu: public FbTk::EventHandler, FbTk::FbWindowRenderer { public: enum Alignment{ ALIGNDONTCARE = 1, ALIGNTOP, ALIGNBOTTOM }; enum { RIGHT = 1, LEFT }; /** Bullet type */ enum { EMPTY = 0, SQUARE, TRIANGLE, DIAMOND }; Menu(FbTk::ThemeProxy &tm, ImageControl &imgctrl); virtual ~Menu(); /** @name manipulators */ //@{ /// add a menu item with a label and a command int insert(const FbString &label, RefCount > &cmd, int pos=-1); /// add empty menu item int insert(const FbString &label, int pos=-1); /// add submenu int insert(const FbString &label, Menu *submenu, int pos= -1); /// add menu item int insert(MenuItem *item, int pos=-1); /// remove an item int remove(unsigned int item); /// remove all items void removeAll(); void setInternalMenu(bool val = true) { m_internal_menu = val; } void setAlignment(Alignment a) { m_alignment = a; } /// raise this window virtual void raise(); /// lower this window virtual void lower(); /// cycle through menuitems void cycleItems(bool reverse); /// set and highlight new active index void setActiveIndex(int new_index); void enterSubmenu(); void disableTitle(); void enableTitle(); bool isTitleVisible() const { return m_title_vis; } void setScreen(int x, int y, int w, int h); /** @name event handlers */ //@{ void handleEvent(XEvent &event); void buttonPressEvent(XButtonEvent &bp); virtual void buttonReleaseEvent(XButtonEvent &br); void motionNotifyEvent(XMotionEvent &mn); void exposeEvent(XExposeEvent &ee); void keyPressEvent(XKeyEvent &ke); void leaveNotifyEvent(XCrossingEvent &ce); //@} /// get input focus void grabInputFocus(); virtual void reconfigure(); /// set label string void setLabel(const FbTk::BiDiString &labelstr); /// move menu to x,y virtual void move(int x, int y); virtual void updateMenu(); void setItemSelected(unsigned int index, bool val); void setItemEnabled(unsigned int index, bool val); void setMinimumColumns(int columns) { m_min_columns = columns; } virtual void drawSubmenu(unsigned int index); /// show menu virtual void show(); /// hide menu virtual void hide(bool force = false); virtual void clearWindow(); /*@}*/ /** @name accessors */ //@{ bool isTorn() const { return m_torn; } bool isVisible() const { return m_visible; } bool isMoving() const { return m_moving; } int screenNumber() const { return m_window.screenNumber(); } Window window() const { return m_window.window(); } FbWindow &fbwindow() { return m_window; } const FbWindow &fbwindow() const { return m_window; } FbWindow &titleWindow() { return m_title; } FbWindow &frameWindow() { return m_frame; } const FbTk::BiDiString &label() const { return m_label; } int x() const { return m_window.x(); } int y() const { return m_window.y(); } unsigned int width() const { return m_window.width(); } unsigned int height() const { return m_window.height(); } size_t numberOfItems() const { return menuitems.size(); } int currentSubmenu() const { return m_which_sub; } bool isItemSelected(unsigned int index) const; bool isItemEnabled(unsigned int index) const; bool isItemSelectable(unsigned int index) const; FbTk::ThemeProxy &theme() { return m_theme; } const FbTk::ThemeProxy &theme() const { return m_theme; } unsigned char alpha() const { return theme()->alpha(); } static Menu *shownMenu() { return shown; } static Menu *focused() { return s_focused; } static void hideShownMenu(); /// @return menuitem at index const MenuItem *find(unsigned int index) const { return menuitems[index]; } MenuItem *find(unsigned int index) { return menuitems[index]; } //@} /// @return true if index is valid bool validIndex(int index) const { return (index < static_cast(numberOfItems()) && index >= 0); } Menu *parent() { return m_parent; } const Menu *parent() const { return m_parent; } void renderForeground(FbWindow &win, FbDrawable &drawable); protected: void themeReconfigured(); void setTitleVisibility(bool b) { m_title_vis = b; m_need_update = true; if (!b) titleWindow().lower(); else titleWindow().raise(); } // renders item onto pm int drawItem(FbDrawable &pm, unsigned int index, bool highlight = false, bool exclusive_drawable = false); void clearItem(int index, bool clear = true, int search_index = -1); void highlightItem(int index); virtual void redrawTitle(FbDrawable &pm); virtual void redrawFrame(FbDrawable &pm); virtual void internal_hide(bool first = true); private: void openSubmenu(); void closeMenu(); void startHide(); void stopHide(); FbTk::ThemeProxy &m_theme; Menu *m_parent; ImageControl &m_image_ctrl; typedef std::vector Menuitems; Menuitems menuitems; TypeAhead m_type_ahead; Menuitems m_matches; void resetTypeAhead(); void drawTypeAheadItems(); void drawLine(int index, int size); void fixMenuItemIndices(); int m_screen_x, m_screen_y; unsigned int m_screen_width, m_screen_height; bool m_moving; ///< if we're moving/draging or not bool m_closing; ///< if we're right clicking on the menu title bool m_visible; ///< menu visibility bool m_torn; ///< torn from parent bool m_internal_menu; ///< whether we should destroy this menu or if it's managed somewhere else bool m_title_vis; ///< title visibility int m_which_sub; Alignment m_alignment; // the menu window FbTk::FbWindow m_window; Pixmap m_hilite_pixmap; // the title FbTk::FbWindow m_title; Pixmap m_title_pixmap; FbTk::BiDiString m_label; // area for the menuitems FbTk::FbWindow m_frame; Pixmap m_frame_pixmap; unsigned int m_frame_h; int m_x_move; int m_y_move; int m_grab_x; int m_grab_y; // the menuitems are rendered in a grid with // 'm_columns' (a minimum of 'm_min_columns') and // a max of 'm_rows_per_column' int m_columns; int m_rows_per_column; int m_min_columns; unsigned int m_item_w; int m_active_index; ///< current highlighted index // the corners std::auto_ptr m_shape; Drawable m_root_pm; static Menu *shown; ///< used for determining if there's a menu open at all static Menu *s_focused; ///< holds current input focused menu, so one can determine if a menu is focused bool m_need_update; Timer m_submenu_timer; Timer m_hide_timer; SignalTracker m_tracker; }; } // end namespace FbTk #endif // FBTK_MENU_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/MacroCommand.cc0000644000175000017500000000013212106662425020540 xustar000000000000000030 mtime=1360749845.891812656 30 atime=1360749876.483812461 30 ctime=1360750008.591811615 fluxbox-1.3.5/src/FbTk/MacroCommand.cc0000644000175000017500000000607112106662425016573 0ustar00mgmg00000000000000// MacroCommand.cc for FbTk // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "MacroCommand.hh" #include "CommandParser.hh" #include "StringUtil.hh" #include namespace FbTk { namespace { template M *addCommands(M *macro, const std::string &args, bool trusted) { std::string remainder; std::list cmds; StringUtil::stringTokensBetween(cmds, args, remainder, '{', '}'); RefCount > cmd(0); if (remainder.length() == 0) { std::list::iterator it = cmds.begin(), it_end = cmds.end(); for (; it != it_end; ++it) { cmd.reset( CommandParser::instance().parse(*it, trusted) ); if (cmd) macro->add(cmd); } } if (macro->size() > 0) return macro; delete macro; return 0; } Command *parseMacroCmd(const std::string &command, const std::string &args, bool trusted) { if (command == "macrocmd") return addCommands(new MacroCommand, args, trusted); else if (command == "togglecmd") return addCommands(new ToggleCommand, args, trusted); return 0; } REGISTER_COMMAND_PARSER(macrocmd, parseMacroCmd, void); REGISTER_COMMAND_PARSER(togglecmd, parseMacroCmd, void); } // end anonymous namespace void MacroCommand::add(RefCount > &com) { m_commandlist.push_back(com); } size_t MacroCommand::size() const { return m_commandlist.size(); } void MacroCommand::execute() { for (size_t i=0; i < m_commandlist.size(); ++i) m_commandlist[i]->execute(); } ToggleCommand::ToggleCommand() { m_state = 0; } void ToggleCommand::add(RefCount > &com) { m_commandlist.push_back(com); } size_t ToggleCommand::size() const { return m_commandlist.size(); } void ToggleCommand::execute() { m_commandlist[m_state]->execute(); if (++m_state >= m_commandlist.size()) m_state = 0; } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/MacroCommand.hh0000644000175000017500000000013212106662425020552 xustar000000000000000030 mtime=1360749845.891812656 30 atime=1360749876.479812461 30 ctime=1360750008.591811615 fluxbox-1.3.5/src/FbTk/MacroCommand.hh0000644000175000017500000000363412106662425016607 0ustar00mgmg00000000000000// MacroCommand.hh for FbTk // Copyright (c) 2003 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_MACROCOMMAND_HH #define FBTK_MACROCOMMAND_HH #include "Command.hh" #include "RefCount.hh" #include #include // size_t namespace FbTk { /// executes a list of commands class MacroCommand:public Command { public: void add(RefCount > &com); size_t size() const; virtual void execute(); private: std::vector > > m_commandlist; }; /// executes one command at a time class ToggleCommand:public Command { public: ToggleCommand(); void add(RefCount > &com); size_t size() const; virtual void execute(); private: std::vector > > m_commandlist; size_t m_state; }; } // end namespace FbTk #endif // FBTK_MACROCOMMAND_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/LogicCommands.cc0000644000175000017500000000013212106662425020717 xustar000000000000000030 mtime=1360749845.891812656 30 atime=1360749876.479812461 30 ctime=1360750008.595811615 fluxbox-1.3.5/src/FbTk/LogicCommands.cc0000644000175000017500000001130612106662425016747 0ustar00mgmg00000000000000// LogicCommands.cc for FbTk // Copyright (c) 2007 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "LogicCommands.hh" #include "CommandParser.hh" #include "StringUtil.hh" #include using FbTk::StringUtil::removeFirstWhitespace; using FbTk::StringUtil::toLower; using std::string; namespace FbTk { namespace { template M *addCommands(M *macro, const string &args, bool trusted) { std::string blah; std::vector cmds; StringUtil::stringTokensBetween(cmds, args, blah, '{', '}'); RefCount > cmd(0); std::vector::iterator it = cmds.begin(), it_end = cmds.end(); for (; it != it_end; ++it) { cmd.reset( CommandParser::instance().parse(*it, trusted) ); if (cmd) macro->add(cmd); } if (macro->size() > 0) return macro; delete macro; return 0; } Command *parseLogicCommand(const string &command, const string &args, bool trusted) { if (command == "not") { Command *boolcmd = CommandParser::instance().parse(args, trusted); if (!boolcmd) return 0; RefCount > ref(boolcmd); return new NotCommand(ref); } else if (command == "and") return addCommands(new AndCommand(), args, trusted); else if (command == "or") return addCommands(new OrCommand(), args, trusted); else if (command == "xor") return addCommands(new XorCommand(), args, trusted); return 0; } REGISTER_COMMAND_PARSER(not, parseLogicCommand, bool); REGISTER_COMMAND_PARSER(and, parseLogicCommand, bool); REGISTER_COMMAND_PARSER(or, parseLogicCommand, bool); REGISTER_COMMAND_PARSER(xor, parseLogicCommand, bool); } // end anonymous namespace Command *IfCommand::parse(const std::string &command, const std::string &args, bool trusted) { std::string blah; std::vector cmds; RefCount > cond(0); RefCount > t(0), f(0); StringUtil::stringTokensBetween(cmds, args, blah, '{', '}'); if (cmds.size() < 2) return 0; cond.reset( CommandParser::instance().parse(cmds[0], trusted) ); if (cond == 0) return 0; t.reset( CommandParser::instance().parse(cmds[1], trusted) ); if (cmds.size() >= 3) f.reset( CommandParser::instance().parse(cmds[2], trusted) ); if (t == 0 && f == 0) return 0; return new IfCommand(cond, t, f); } REGISTER_COMMAND_PARSER(if, IfCommand::parse, void); REGISTER_COMMAND_PARSER(cond, IfCommand::parse, void); void OrCommand::add(RefCount > &com) { m_commandlist.push_back(com); } size_t OrCommand::size() const { return m_commandlist.size(); } bool OrCommand::execute() { for (size_t i=0; i < m_commandlist.size(); ++i) { if (m_commandlist[i]->execute()) return true; } return false; } void AndCommand::add(RefCount > &com) { m_commandlist.push_back(com); } size_t AndCommand::size() const { return m_commandlist.size(); } bool AndCommand::execute() { for (size_t i=0; i < m_commandlist.size(); ++i) { if (!m_commandlist[i]->execute()) return false; } return true; } void XorCommand::add(RefCount > &com) { m_commandlist.push_back(com); } size_t XorCommand::size() const { return m_commandlist.size(); } bool XorCommand::execute() { bool ret = false; for (size_t i=0; i < m_commandlist.size(); ++i) ret ^= m_commandlist[i]->execute(); return ret; } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/LogicCommands.hh0000644000175000017500000000013212106662425020731 xustar000000000000000030 mtime=1360749845.891812656 30 atime=1360749876.475812461 30 ctime=1360750008.595811615 fluxbox-1.3.5/src/FbTk/LogicCommands.hh0000644000175000017500000000604412106662425016764 0ustar00mgmg00000000000000// LogicCommands.hh for FbTk // Copyright (c) 2007 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_LOGICCOMMANDS_HH #define FBTK_LOGICCOMMANDS_HH #include "Command.hh" #include "RefCount.hh" #include #include namespace FbTk { /// executes a Command and uses the result to decide what to do class IfCommand: public Command { public: IfCommand(RefCount > &cond, RefCount > &t, RefCount > &f): m_cond(cond), m_t(t), m_f(f) { } void execute() { if (m_cond->execute()) { if (m_t) m_t->execute(); } else if (m_f) m_f->execute(); } static Command *parse(const std::string &cmd, const std::string &args, bool trusted); private: RefCount > m_cond; RefCount > m_t, m_f; }; /// executes a list of Commands until one is true class OrCommand: public Command { public: void add(RefCount > &com); size_t size() const; bool execute(); private: std::vector > > m_commandlist; }; /// executes a list of Commands until one is false class AndCommand: public Command { public: void add(RefCount > &com); size_t size() const; bool execute(); private: std::vector > > m_commandlist; }; /// executes a list of Commands, returning the parity class XorCommand: public Command { public: void add(RefCount > &com); size_t size() const; bool execute(); private: std::vector > > m_commandlist; }; /// executes a Command and returns the negation class NotCommand: public Command { public: NotCommand(RefCount > &com): m_command(com) { } bool execute() { return !m_command->execute(); } private: RefCount > m_command; }; } // end namespace FbTk #endif // FBTK_LOGICCOMMANDS_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/ImageControl.cc0000644000175000017500000000013212106662425020563 xustar000000000000000030 mtime=1360749845.891812656 30 atime=1360749876.475812461 30 ctime=1360750008.595811615 fluxbox-1.3.5/src/FbTk/ImageControl.cc0000644000175000017500000004236112106662425016620 0ustar00mgmg00000000000000// ImageControl.cc for FbTk - Fluxbox Toolkit // Copyright (c) 2001 - 2006 Henrik Kinnunen (fluxbox at users.sourceforge.net) // // Image.cc for Blackbox - an X11 Window manager // Copyright (c) 1997 - 2000 Brad Hughes (bhughes at tcac.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "ImageControl.hh" #include "TextureRender.hh" #include "Texture.hh" #include "App.hh" #include "SimpleCommand.hh" #include "I18n.hh" //use GNU extensions #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif // _GNU_SOURCE #ifdef HAVE_CONFIG_H #include "config.h" #endif // HAVE_CONFIG_H #ifdef HAVE_SYS_TYPES_H #include #endif // HAVE_SYS_TYPES_H #ifdef HAVE_CSTDLIB #include #else #include #endif #ifdef HAVE_CSTDIO #include #else #include #endif #include using std::cerr; using std::endl; using std::list; namespace FbTk { namespace { // anonymous #ifdef TIMEDCACHE bool s_timed_cache = true; #else bool s_timed_cache = false; #endif // TIMEDCACHE void initColortables(unsigned char red[256], unsigned char green[256], unsigned char blue[256], int red_bits, int green_bits, int blue_bits) { for (unsigned int i = 0; i < 256; i++) { red[i] = i / red_bits; green[i] = i / green_bits; blue[i] = i / blue_bits; } } // tries to allocate all unallocated 'colors' by finding a close color based // upon entries in the colormap. // void allocateUnallocatedColors(std::vector colors, Display* dpy, Colormap cmap, int screen_depth) { unsigned int i; bool done = true; // first run, just try to allocate the colors for (i = 0; i < colors.size(); i++) { if (colors[i].flags == 0) { if (! XAllocColor(dpy, cmap, &colors[i])) { fprintf(stderr, "couldn't alloc color %i %i %i\n", colors[i].red, colors[i].green, colors[i].blue); colors[i].flags = 0; done = false; } else colors[i].flags = DoRed|DoGreen|DoBlue; } } if (done) return; // 'icolors' will hold the first 'nr_icolors' colors of the // given (indexed) colormap. const size_t nr_icolors = std::min(256, 1 << screen_depth); std::vector icolors(nr_icolors); // give each icolor an index for (i = 0; i < nr_icolors; i++) icolors[i].pixel = i; // query the colors of the colormap and store them into 'icolors' XQueryColors(dpy, cmap, &icolors[0], nr_icolors); // try to find a close color for all not allocated colors for (i = 0; i < colors.size(); i++) { if (colors[i].flags == 0) { // color is not allocated unsigned long chk = 0xffffffff; unsigned long close = 0; // iterate over the indexed colors 'icolors' and find // a close color. // // 2 passes to improve the result of the first pass char pass = 2; while (pass--) { for (unsigned int ii = 0; ii < nr_icolors; ii++) { int r = (colors[i].red - icolors[i].red) >> 8; int g = (colors[i].green - icolors[i].green) >> 8; int b = (colors[i].blue - icolors[i].blue) >> 8; unsigned long pixel = (r * r) + (g * g) + (b * b); if (pixel < chk) { chk = pixel; close = ii; } // store the indexed color colors[i].red = icolors[close].red; colors[i].green = icolors[close].green; colors[i].blue = icolors[close].blue; // try to allocate it if (XAllocColor(dpy, cmap, &colors[i])) { colors[i].flags = DoRed|DoGreen|DoBlue; // mark it allocated break; } } } } } } } // end anonymous namespace struct ImageControl::Cache { Pixmap pixmap; Pixmap texture_pixmap; Orientation orient; unsigned int count, width, height; unsigned long pixel1, pixel2, texture; }; ImageControl::ImageControl(int screen_num, int cpc, unsigned long cache_timeout, unsigned long cmax): m_colors_per_channel(cpc), m_screen_num(screen_num) { Display *disp = FbTk::App::instance()->display(); m_screen_depth = DefaultDepth(disp, screen_num); m_visual = DefaultVisual(disp, screen_num); m_colormap = DefaultColormap(disp, screen_num); cache_max = cmax; if (cache_timeout && s_timed_cache) { m_timer.setTimeout(cache_timeout * FbTk::FbTime::IN_MILLISECONDS); RefCount > clean_cache(new SimpleCommand(*this, &ImageControl::cleanCache)); m_timer.setCommand(clean_cache); m_timer.start(); } createColorTable(); } ImageControl::~ImageControl() { Display *disp = FbTk::App::instance()->display(); if (!m_colors.empty()) { std::vector pixels(m_colors.size()); for (unsigned int i = 0; i < m_colors.size(); i++) pixels[i] = m_colors[i].pixel; XFreeColors(disp, m_colormap, &pixels[0], pixels.size(), 0); } if (!cache.empty()) { CacheList::iterator it = cache.begin(); CacheList::iterator it_end = cache.end(); for (; it != it_end; ++it) { XFreePixmap(disp, (*it)->pixmap); delete (*it); } } } Pixmap ImageControl::searchCache(unsigned int width, unsigned int height, const Texture &text, FbTk::Orientation orient) const { if (text.pixmap().drawable() != None) { // do comparsion with width/height and texture_pixmap CacheList::iterator it = cache.begin(); CacheList::iterator it_end = cache.end(); for (; it != it_end; ++it) { if ((*it)->texture_pixmap == text.pixmap().drawable() && (*it)->orient == orient && (*it)->width == width && (*it)->height == height && (*it)->texture == text.type()) { (*it)->count++; return (*it)->pixmap; } } return None; } /* Cache tmp; tmp.texture_pixmap = text.pixmap().drawable(); tmp.width = width; tmp.height = height; tmp.texture = text.type(); tmp.pixel1 = text.color().pixel(); tmp.pixel2 = text.colorTo().pixel(); */ CacheList::iterator it = cache.begin(); CacheList::iterator it_end = cache.end(); for (; it != it_end; ++it) { if (((*it)->width == width) && ((*it)->orient == orient) && ((*it)->height == height) && ((*it)->texture == text.type()) && ((*it)->pixel1 == text.color().pixel())) { if (text.type() & FbTk::Texture::GRADIENT) { if ((*it)->pixel2 == text.colorTo().pixel()) { (*it)->count++; return (*it)->pixmap; } } else { (*it)->count++; return (*it)->pixmap; } } } return None; } Pixmap ImageControl::renderImage(unsigned int width, unsigned int height, const FbTk::Texture &texture, FbTk::Orientation orient, bool use_cache ) { if (texture.type() & FbTk::Texture::PARENTRELATIVE) return ParentRelative; // If we are not suppose to cache this pixmap, just render and return it if ( ! use_cache) { TextureRender image(*this, width, height, orient); return image.render(texture); } // search cache first Pixmap pixmap = searchCache(width, height, texture, orient); if (pixmap) { return pixmap; // return cache item } // render new image TextureRender image(*this, width, height, orient); pixmap = image.render(texture); if (pixmap) { // create new cache item and add it to cache list Cache *tmp = new Cache; tmp->pixmap = pixmap; tmp->texture_pixmap = texture.pixmap().drawable(); tmp->orient = orient; tmp->width = width; tmp->height = height; tmp->count = 1; tmp->texture = texture.type(); tmp->pixel1 = texture.color().pixel(); if (texture.type() & FbTk::Texture::GRADIENT) tmp->pixel2 = texture.colorTo().pixel(); else tmp->pixel2 = 0l; cache.push_back(tmp); if (cache.size() > cache_max) cleanCache(); return pixmap; } return None; } void ImageControl::removeImage(Pixmap pixmap) { if (!pixmap) return; CacheList::iterator it = cache.begin(); CacheList::iterator it_end = cache.end(); for (; it != it_end; ++it) { if ((*it)->pixmap == pixmap) { if ((*it)->count) { (*it)->count--; if (s_timed_cache) { cleanCache(); return; } } if ((*it)->count <= 0) cleanCache(); return; } } } void ImageControl::colorTables(const unsigned char **rmt, const unsigned char **gmt, const unsigned char **bmt, int *roff, int *goff, int *boff, int *rbit, int *gbit, int *bbit) const { if (rmt) *rmt = red_color_table; if (gmt) *gmt = green_color_table; if (bmt) *bmt = blue_color_table; if (roff) *roff = red_offset; if (goff) *goff = green_offset; if (boff) *boff = blue_offset; if (rbit) *rbit = red_bits; if (gbit) *gbit = green_bits; if (bbit) *bbit = blue_bits; } void ImageControl::getGradientBuffers(unsigned int w, unsigned int h, unsigned int **xbuf, unsigned int **ybuf) { if (w > grad_xbuffer.size()) grad_xbuffer.resize(w); if (h > grad_ybuffer.size()) grad_ybuffer.resize(h); *xbuf = &grad_xbuffer[0]; *ybuf = &grad_ybuffer[0]; } void ImageControl::installRootColormap() { Display *disp = FbTk::App::instance()->display(); XGrabServer(disp); bool install = true; int i = 0, ncmap = 0; Colormap *cmaps = XListInstalledColormaps(disp, RootWindow(disp, screenNumber()), &ncmap); if (cmaps) { for (i = 0; i < ncmap; i++) { if (*(cmaps + i) == m_colormap) install = false; } if (install) XInstallColormap(disp, m_colormap); XFree(cmaps); } XUngrabServer(disp); } void ImageControl::cleanCache() { Display *disp = FbTk::App::instance()->display(); list deadlist; CacheList::iterator it = cache.begin(); CacheList::iterator it_end = cache.end(); for (; it != it_end; ++it) { Cache *tmp = (*it); if (tmp->count <= 0) { XFreePixmap(disp, tmp->pixmap); deadlist.push_back(it); delete tmp; tmp=0; } } list::iterator dead_it = deadlist.begin(); list::iterator dead_it_end = deadlist.end(); for (; dead_it != dead_it_end; ++dead_it) { cache.erase(*dead_it); } } void ImageControl::createColorTable() { Display *disp = FbTk::App::instance()->display(); int count; XPixmapFormatValues *pmv = XListPixmapFormats(disp, &count); if (pmv) { bits_per_pixel = 0; for (int i = 0; i < count; i++) { if (pmv[i].depth == m_screen_depth) { bits_per_pixel = pmv[i].bits_per_pixel; break; } } XFree(pmv); } if (bits_per_pixel == 0) bits_per_pixel = m_screen_depth; red_offset = green_offset = blue_offset = 0; switch (visual()->c_class) { case TrueColor: { unsigned long red_mask = visual()->red_mask, green_mask = visual()->green_mask, blue_mask = visual()->blue_mask; while (! (red_mask & 1)) { red_offset++; red_mask >>= 1; } while (! (green_mask & 1)) { green_offset++; green_mask >>= 1; } while (! (blue_mask & 1)) { blue_offset++; blue_mask >>= 1; } red_bits = 255 / red_mask; green_bits = 255 / green_mask; blue_bits = 255 / blue_mask; initColortables(red_color_table, green_color_table, blue_color_table, red_bits, green_bits, blue_bits); } break; case PseudoColor: case StaticColor: { size_t num_colors = m_colors_per_channel * m_colors_per_channel * m_colors_per_channel; if (num_colors > static_cast(1 << m_screen_depth)) { m_colors_per_channel = (1 << m_screen_depth) / 3; num_colors = m_colors_per_channel * m_colors_per_channel * m_colors_per_channel; } if (m_colors_per_channel < 2 || num_colors > static_cast(1 << m_screen_depth)) { fprintf(stderr, "ImageControl::ImageControl: invalid colormap size %zd " "(%d/%d/%d) - reducing", num_colors, m_colors_per_channel, m_colors_per_channel, m_colors_per_channel); m_colors_per_channel = (1 << m_screen_depth) / 3; } m_colors.resize(num_colors); int bits = 255 / (m_colors_per_channel - 1); red_bits = green_bits = blue_bits = bits; initColortables(red_color_table, green_color_table, blue_color_table, red_bits, green_bits, blue_bits); for (int r = 0, i = 0; r < m_colors_per_channel; r++) { for (int g = 0; g < m_colors_per_channel; g++) { for (int b = 0; b < m_colors_per_channel; b++, i++) { m_colors[i].red = (r * 0xffff) / (m_colors_per_channel - 1); m_colors[i].green = (g * 0xffff) / (m_colors_per_channel - 1); m_colors[i].blue = (b * 0xffff) / (m_colors_per_channel - 1); m_colors[i].flags = DoRed|DoGreen|DoBlue; } } } allocateUnallocatedColors(m_colors, disp, m_colormap, m_screen_depth); break; } case GrayScale: case StaticGray: { size_t num_colors; if (visual()->c_class == StaticGray) { num_colors = 1 << m_screen_depth; } else { num_colors = m_colors_per_channel * m_colors_per_channel * m_colors_per_channel; if (num_colors > static_cast(1 << m_screen_depth)) { m_colors_per_channel = (1 << m_screen_depth) / 3; num_colors = m_colors_per_channel * m_colors_per_channel * m_colors_per_channel; } } if (m_colors_per_channel < 2 || num_colors > static_cast(1 << m_screen_depth)) { fprintf(stderr,"FbTk::ImageControl: invalid colormap size %zd " "(%d/%d/%d) - reducing", num_colors, m_colors_per_channel, m_colors_per_channel, m_colors_per_channel); m_colors_per_channel = (1 << m_screen_depth) / 3; } m_colors.resize(num_colors); int bits = 255 / (m_colors_per_channel - 1); red_bits = green_bits = blue_bits = bits; initColortables(red_color_table, green_color_table, blue_color_table, red_bits, green_bits, blue_bits); for (unsigned int i = 0; i < num_colors; i++) { m_colors[i].red = (i * 0xffff) / (m_colors_per_channel - 1); m_colors[i].green = (i * 0xffff) / (m_colors_per_channel - 1); m_colors[i].blue = (i * 0xffff) / (m_colors_per_channel - 1); m_colors[i].flags = DoRed|DoGreen|DoBlue; } allocateUnallocatedColors(m_colors, disp, m_colormap, m_screen_depth); break; } default: _FB_USES_NLS; cerr<<"FbTk::ImageControl: "<<_FBTK_CONSOLETEXT(Error, UnsupportedVisual, "Unsupported visual", "A visual is a technical term in X")< // for Visual* etc #include #include namespace FbTk { class Texture; /// Holds screen info, color tables and caches textures class ImageControl: private NotCopyable { public: ImageControl(int screen_num, int colors_per_channel = 4, unsigned long cache_timeout = 300000l, unsigned long cache_max = 200l); virtual ~ImageControl(); int depth() const { return m_screen_depth; } int colorsPerChannel() const { return m_colors_per_channel; } size_t nrColors() const { return m_colors.size(); } const XColor* colors() const { return &m_colors[0]; } int screenNumber() const { return m_screen_num; } Visual *visual() const { return m_visual; } /** Render to pixmap @param width width of pixmap @param height height of pixmap @param src_texture texture type to render @param orient Orientation of the texture. @param use_cache whether or not to use cache @return pixmap of the rendered image, on failure None */ Pixmap renderImage(unsigned int width, unsigned int height, const FbTk::Texture &src_texture, Orientation orient = ROT0, bool use_cache = true); void installRootColormap(); void removeImage(Pixmap thepix); void colorTables(const unsigned char **, const unsigned char **, const unsigned char **, int *, int *, int *, int *, int *, int *) const; void getGradientBuffers(unsigned int, unsigned int, unsigned int **, unsigned int **); void cleanCache(); private: /** Search cache for a specific pixmap @return None if no cache was found */ Pixmap searchCache(unsigned int width, unsigned int height, const Texture &text, Orientation orient) const; void createColorTable(); bool m_dither; Timer m_timer; Colormap m_colormap; std::vector m_colors; ///< color table Visual *m_visual; int bits_per_pixel; int red_offset, green_offset, blue_offset, red_bits, green_bits, blue_bits; int m_colors_per_channel; ///< number of colors per channel int m_screen_depth; ///< bit depth of screen int m_screen_num; ///< screen number unsigned char red_color_table[256]; unsigned char green_color_table[256]; unsigned char blue_color_table[256]; // TextureRenderer uses these buffers std::vector grad_xbuffer; std::vector grad_ybuffer; struct Cache; typedef std::list CacheList; mutable CacheList cache; unsigned long cache_max; }; } // end namespace FbTk #endif // FBTK_IMAGECONTROL_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/RadioMenuItem.hh0000644000175000017500000000013212106662425020714 xustar000000000000000030 mtime=1360749845.891812656 30 atime=1360749876.471812461 30 ctime=1360750008.599811615 fluxbox-1.3.5/src/FbTk/RadioMenuItem.hh0000644000175000017500000000425212106662425016746 0ustar00mgmg00000000000000// RadioMenuItem.hh // Copyright (c) 2008 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_RADIOMENUITEM_HH #define FBTK_RADIOMENUITEM_HH #include "MenuItem.hh" namespace FbTk { class RadioMenuItem: public MenuItem { public: RadioMenuItem(): MenuItem() { setToggleItem(true); } explicit RadioMenuItem(const FbString &label): MenuItem(label) { setToggleItem(true); } RadioMenuItem(const FbString &label, Menu &host_menu): MenuItem(label, host_menu) { setToggleItem(true); } /// create a menu item with a specific command to be executed on click RadioMenuItem(const FbString &label, RefCount > &cmd, Menu *menu = 0): MenuItem(label, cmd, menu) { setToggleItem(true); } RadioMenuItem(const FbString &label, Menu *submenu, Menu *host_menu = 0): MenuItem(label, submenu, host_menu) { setToggleItem(true); } virtual ~RadioMenuItem() { } virtual bool isSelected() const = 0; bool isEnabled() const { return !isSelected(); } }; } // end namespace FbTk #endif // FBTK_RADIOMENUITEM_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/CommandParser.hh0000644000175000017500000000013212106662425020745 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.471812461 30 ctime=1360750008.599811615 fluxbox-1.3.5/src/FbTk/CommandParser.hh0000644000175000017500000001146712106662425017005 0ustar00mgmg00000000000000// CommandParser.hh for FbTk // Copyright (c) 2007 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef CommandParser_HH #define CommandParser_HH #include "StringUtil.hh" #include #include using std::string; namespace FbTk { // helper for registering a function to parse arguments #define REGISTER_COMMAND_PARSER(name, parser, type) \ static const bool p_register_command_##type_##name = FbTk::CommandParser::instance().registerCommand(#name, &parser) // include some basic Command creators template Command *CommandCreator(const string &name, const string &args, bool trusted) { return new ClassName(); } #define REGISTER_COMMAND(name, classname, type) \ static const bool p_register_##type_##name = FbTk::CommandParser::instance().registerCommand(#name, &FbTk::CommandCreator) template Command *CommandCreatorWithArgs(const string &name, const string &args, bool trusted) { return new ClassName(args); } #define REGISTER_COMMAND_WITH_ARGS(name, classname, type) \ static const bool p_register_##type_##name = FbTk::CommandParser::instance().registerCommand(#name, &FbTk::CommandCreatorWithArgs) template Command *UntrustedCommandCreator(const string &name, const string &args, bool trusted) { if (!trusted) return 0; return new ClassName(); } #define REGISTER_UNTRUSTED_COMMAND(name, classname, type) \ static const bool p_register_##type_##name = FbTk::CommandParser::instance().registerCommand(#name, &FbTk::UntrustedCommandCreator) template Command *UntrustedCommandCreatorWithArgs(const string &name, const string &args, bool trusted) { if (!trusted) return 0; return new ClassName(args); } #define REGISTER_UNTRUSTED_COMMAND_WITH_ARGS(name, classname, type) \ static const bool p_register_##type_##name = FbTk::CommandParser::instance().registerCommand(#name, &FbTk::UntrustedCommandCreatorWithArgs) template class CommandParser { public: typedef Command *(*Creator)(const string &, const string &, bool); typedef std::map CreatorMap; static CommandParser &instance() { static CommandParser s_instance; return s_instance; } Command *parse(const string &name, const string &args, bool trusted = true) const { string lc = StringUtil::toLower(name); Creator creator = lookup(lc); if (creator) return creator(lc, args, trusted); return 0; } Command *parse(const string &line, bool trusted = true) const { // separate args and command string command, args; StringUtil::getFirstWord(line, command, args); StringUtil::removeFirstWhitespace(args); StringUtil::removeTrailingWhitespace(args); // now we parse return parse(command, args, trusted); } bool registerCommand(string name, Creator creator) { name = StringUtil::toLower(name); m_creators[name] = creator; return true; } Creator lookup(const std::string &name) const { typename CreatorMap::const_iterator it = m_creators.find(name); if (it == m_creators.end()) return 0; return it->second; } const CreatorMap &creatorMap() const { return m_creators; } private: CommandParser() {} ~CommandParser() {} CreatorMap m_creators; }; } // end namespace FbTk #endif // COMMANDPARSER_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/I18n.hh0000644000175000017500000000013212106662425016731 xustar000000000000000030 mtime=1360749845.891812656 30 atime=1360749876.471812461 30 ctime=1360750008.599811615 fluxbox-1.3.5/src/FbTk/I18n.hh0000644000175000017500000000767712106662425015001 0ustar00mgmg00000000000000// i18n.hh for Fluxbox Window Manager // Copyright (c) 2001 - 2002 Henrik Kinnunen (fluxgen at fluxbox dot org) // // i18n.hh for Blackbox - an X11 Window manager // Copyright (c) 1997 - 2000 Brad Hughes (bhughes@tcac.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef I18N_HH #define I18N_HH // TODO: FIXME #include "../../nls/fluxbox-nls.hh" #include "FbString.hh" #ifdef HAVE_CONFIG_H #include "config.h" #endif // HAVE_CONFIG_H #ifdef HAVE_LOCALE_H #include #endif // HAVE_LOCALE_H #ifdef HAVE_NL_TYPES_H // this is needed for linux libc5 systems extern "C" { #include } #elif defined(__CYGWIN__) || defined(__EMX__) || defined(__APPLE__) #ifdef __cplusplus extern "C" { #endif // __cplusplus typedef int nl_catd; char *catgets(nl_catd cat, int set_number, int message_number, char *message); nl_catd catopen(char *name, int flag); void catclose(nl_catd cat); #ifdef __cplusplus } #endif // __cplusplus #endif // HAVE_NL_TYPES_H // Some defines to help out #ifdef NLS #define _FB_USES_NLS \ FbTk::I18n &i18n = *FbTk::I18n::instance() // ignore the description, it's for helping translators // Text for X #define _FB_XTEXT(msgset, msgid, default_text, description) \ i18n.getMessage(FBNLS::msgset ## Set, FBNLS::msgset ## msgid, default_text, true) // Text for console #define _FB_CONSOLETEXT(msgset, msgid, default_text, description) \ i18n.getMessage(FBNLS::msgset ## Set, FBNLS::msgset ## msgid, default_text, false) // This ensure that FbTk nls stuff is in a kind of namespace of its own #define _FBTK_XTEXT( msgset, msgid, default_text, description) \ i18n.getMessage(FBNLS::FbTk ## msgset ## Set, FBNLS::FbTk ## msgset ## msgid, default_text, true) #define _FBTK_CONSOLETEXT( msgset, msgid, default_text, description) \ i18n.getMessage(FBNLS::FbTk ## msgset ## Set, FBNLS::FbTk ## msgset ## msgid, default_text, false) #else // no NLS #define _FB_USES_NLS #define _FB_XTEXT(msgset, msgid, default_text, description) \ std::string(default_text) #define _FB_CONSOLETEXT(msgset, msgid, default_text, description) \ std::string(default_text) #define _FBTK_XTEXT(msgset, msgid, default_text, description) \ std::string(default_text) #define _FBTK_CONSOLETEXT(msgset, msgid, default_text, description) \ std::string(default_text) #endif // defined NLS namespace FbTk { class I18n { public: static I18n *instance(); const char *getLocale() const { return m_locale.c_str(); } bool multibyte() const { return m_multibyte; } const nl_catd &getCatalogFd() const { return m_catalog_fd; } FbString getMessage(int set_number, int message_number, const char *default_messsage = 0, bool translate_fb = false) const; void openCatalog(const char *catalog); private: I18n(); ~I18n(); std::string m_locale; bool m_multibyte, m_utf8_translate; nl_catd m_catalog_fd; }; void NLSInit(const char *); } // end namespace FbTk #endif // I18N_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/I18n.cc0000644000175000017500000000013212106662425016717 xustar000000000000000030 mtime=1360749845.891812656 30 atime=1360749876.467812461 30 ctime=1360750008.599811615 fluxbox-1.3.5/src/FbTk/I18n.cc0000644000175000017500000001412712106662425014753 0ustar00mgmg00000000000000// I18n.hh for Fluxbox Window Manager // Copyright (c) 2001 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // I18n.cc for Blackbox - an X11 Window manager // Copyright (c) 1997 - 2000 Brad Hughes (bhughes@tcac.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. /* Note: * A good reference for the older non-gettext style I18n * functions is the "Locale tutorial" * Written by Patrick D'Cruze (pdcruze@orac.iinet.com.au) * A copy of which is available (at the time of writing) here: * http://www.kulichki.com/moshkow/CYRILLIC/locale-tutorial-0_8.txt */ //use GNU extensions #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif // _GNU_SOURCE #include "I18n.hh" #include "FileUtil.hh" #include #ifdef HAVE_CSTDLIB #include #else #include #endif #ifdef HAVE_CSTRING #include #else #include #endif #ifdef HAVE_CSTDIO #include #else #include #endif #include using std::cerr; using std::endl; using std::string; namespace FbTk { void NLSInit(const char *catalog) { FbStringUtil::init(); I18n *i18n = I18n::instance(); i18n->openCatalog(catalog); } I18n::I18n():m_multibyte(false), m_utf8_translate(false), m_catalog_fd((nl_catd)(-1)) { #if defined(HAVE_SETLOCALE) && defined(NLS) //make sure we don't get 0 to m_locale string char *temp = setlocale(LC_MESSAGES, ""); m_locale = ( temp ? temp : ""); if (m_locale.empty()) { cerr<<"Warning: Failed to set locale, reverting to \"C\""< 1) m_multibyte = true; // truncate any encoding off the end of the locale // remove everything after @ string::size_type index = m_locale.find('@'); if (index != string::npos) m_locale.erase(index); //erase all characters starting at index // remove everything before = index = m_locale.find('='); if (index != string::npos) m_locale.erase(0,index+1); //erase all characters starting up to index } #endif // defined(HAVE_SETLOCALE) && defined(NLS) } I18n::~I18n() { #if defined(NLS) && defined(HAVE_CATCLOSE) if (m_catalog_fd != (nl_catd)-1) catclose(m_catalog_fd); #endif // HAVE_CATCLOSE } I18n *I18n::instance() { static I18n singleton; //singleton object return &singleton; } void I18n::openCatalog(const char *catalog) { #if defined(NLS) && defined(HAVE_CATOPEN) string catalog_filename = LOCALEPATH; catalog_filename += '/'; catalog_filename += m_locale; catalog_filename += '/'; catalog_filename += catalog; if (!FileUtil::isRegularFile(catalog_filename.c_str()) && m_locale != "C" && FbStringUtil::haveUTF8()) { // try the UTF-8 catalog, this also picks up situations where // the codeset somehow isn't specified // remove everything after @ string::size_type index = m_locale.find('.'); // erase all characters starting at index if (index != string::npos) m_locale.erase(index); m_locale.append(".UTF-8"); m_utf8_translate = true; catalog_filename = LOCALEPATH; catalog_filename += '/'; catalog_filename += m_locale; catalog_filename += '/'; catalog_filename += catalog; } #ifdef MCLoadBySet m_catalog_fd = catopen(catalog_filename.c_str(), MCLoadBySet); #else // !MCLoadBySet m_catalog_fd = catopen(catalog_filename.c_str(), NL_CAT_LOCALE); #endif // MCLoadBySet if (m_catalog_fd == (nl_catd)-1) { cerr<<"Warning: Failed to open file("< namespace FbTk { class FbDrawable; /** FontImp, second part of the bridge pattern for fonts pure interface class. @see Font */ class FontImp { public: virtual ~FontImp() { } virtual bool load(const std::string &name) = 0; virtual void drawText(const FbDrawable &w, int screen, GC gc, const char* text, size_t len, int x, int y, FbTk::Orientation orient) = 0; virtual unsigned int textWidth(const char* text, unsigned int len) const = 0; virtual bool validOrientation(FbTk::Orientation orient) { return orient == ROT0; } virtual int ascent() const = 0; virtual int descent() const = 0; virtual unsigned int height() const = 0; virtual bool loaded() const = 0; virtual void rotate(int angle) { } // by default, no rotate support virtual bool utf8() const { return false; }; protected: FontImp() { } }; } // end namespace FbTk #endif // FBTK_FONTIMP_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Font.hh0000644000175000017500000000013212106662425017120 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.463812461 30 ctime=1360750008.603811615 fluxbox-1.3.5/src/FbTk/Font.hh0000644000175000017500000001045212106662425015151 0ustar00mgmg00000000000000// Font.cc for FbTk // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_FONT_HH #define FBTK_FONT_HH #include #ifdef HAVE_CONFIG_H #include "config.h" #endif // HAVE_CONFIG_H #include "FbString.hh" #include "Color.hh" #include "Orientation.hh" namespace FbTk { class FontImp; class FbDrawable; /** Handles the client to fontimp bridge. */ class Font { public: static const char DEFAULT_FONT[]; /// called at FbTk::App destruction time, cleans up cache static void shutdown(); /// @return true if multibyte is enabled, else false static bool multibyte(); /// @return true if utf-8 mode is enabled, else false static bool utf8(); explicit Font(const char* name = DEFAULT_FONT); virtual ~Font(); /** Load a font @return true on success, else false and it'll fall back on the last loaded font */ bool load(const std::string &name); void setHalo(bool flag) { m_halo = flag; if (m_halo) setShadow(false); } void setHaloColor(const Color& color) { m_halo_color = color; } void setShadow(bool flag) { m_shadow = flag; if (m_shadow) setHalo(false); } void setShadowColor(const Color& color) { m_shadow_color = color; } void setShadowOffX(int offx) { m_shadow_offx = offx; } void setShadowOffY(int offy) { m_shadow_offy = offy; } /** @param text text to check size @param size length of text in bytes @return size of text in pixels */ unsigned int textWidth(const char* text, unsigned int size) const; unsigned int textWidth(const BiDiString &text) const; unsigned int height() const; int ascent() const; int descent() const; /** Returns whether we can draw this font in the given orientation. (will instantiate that orientation, so do plan to use it...) @param orient the orientation to test */ bool validOrientation(FbTk::Orientation orient); /** Draws text to drawable @param w the drawable @param screen screen number @param gc Graphic Context @param text the text buffer @param len size of text buffer @param x position @param y position @param rotate if the text should be drawn rotated (if it's rotated before) */ void drawText(const FbDrawable &w, int screen, GC gc, const char* text, size_t len, int x, int y, FbTk::Orientation orient = ROT0) const; void drawText(const FbDrawable &w, int screen, GC gc, const BiDiString &text, int x, int y, FbTk::Orientation orient = ROT0) const { drawText(w, screen, gc, text.visual().c_str(), text.visual().size(), x, y, orient); } bool hasShadow() const { return m_shadow; } bool hasHalo() const { return m_halo; } private: FbTk::FontImp* m_fontimp; ///< font implementation std::string m_fontstr; ///< font name int m_angle; ///< rotation angle bool m_shadow; ///< shadow text Color m_shadow_color; ///< shadow color int m_shadow_offx; ///< offset y for shadow int m_shadow_offy; ///< offset x for shadow bool m_halo; ///< halo text Color m_halo_color; ///< halo color }; } //end namespace FbTk #endif //FBTK_FONT_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Font.cc0000644000175000017500000000013212106662425017106 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.463812461 30 ctime=1360750008.603811615 fluxbox-1.3.5/src/FbTk/Font.cc0000644000175000017500000002105612106662425015141 0ustar00mgmg00000000000000// Font.cc // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "StringUtil.hh" #include "stringstream.hh" #include "Font.hh" #include "FontImp.hh" #include "App.hh" #ifdef HAVE_CONFIG_H #include "config.h" #endif // HAVE_CONFIG_H // for antialias #ifdef USE_XFT #include "XftFontImp.hh" #endif // USE_XFT // for multibyte support #ifdef USE_XMB #include "XmbFontImp.hh" #endif //USE_XMB // standard font system #include "XFontImp.hh" #include "GContext.hh" //use gnu extensions #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif //_GNU_SOURCE #ifndef __USE_GNU #define __USE_GNU #endif //__USE_GNU #ifdef HAVE_CSTRING #include #else #include #endif #ifdef HAVE_CSTDLIB #include #else #include #endif #include #include #include #include #include #include using std::string; using std::map; using std::list; #ifdef HAVE_SETLOCALE #include #endif //HAVE_SETLOCALE namespace { // use to map || => typedef map StringMap; typedef StringMap::iterator StringMapIt; // stores FontCache; typedef FontCache::iterator FontCacheIt; void resetEffects(FbTk::Font& font) { font.setHalo(false); font.setHaloColor(FbTk::Color("white", DefaultScreen(FbTk::App::instance()->display()))); font.setShadow(false); font.setShadowColor(FbTk::Color("black", DefaultScreen(FbTk::App::instance()->display()))); font.setShadowOffY(2); font.setShadowOffX(2); } StringMap s_lookup_map; FontCache s_font_cache; bool s_multibyte = false; // if the fontimp should be a multibyte font bool s_utf8mode = false; // should the font use utf8 font imp } // end nameless namespace namespace FbTk { const char Font::DEFAULT_FONT[] = "__DEFAULT__"; void Font::shutdown() { FontCacheIt fit; for (fit = s_font_cache.begin(); fit != s_font_cache.end(); ++fit) { FontImp* font = fit->second; if (font) { FontCacheIt it; for (it = fit; it != s_font_cache.end(); ++it) if (it->second == font) it->second = 0; delete font; } } } bool Font::multibyte() { return s_multibyte; } bool Font::utf8() { return s_utf8mode; } Font::Font(const char *name): m_fontimp(0), m_shadow(false), m_shadow_color("black", DefaultScreen(App::instance()->display())), m_shadow_offx(2), m_shadow_offy(2), m_halo(false), m_halo_color("white", DefaultScreen(App::instance()->display())) { // MB_CUR_MAX returns the size of a char in the current locale if (MB_CUR_MAX > 1) // more than one byte, then we're multibyte s_multibyte = true; char *locale_codeset = 0; // openbsd doesnt have this (yet?) #if defined(CODESET) && !defined(_WIN32) locale_codeset = nl_langinfo(CODESET); #endif // check for utf-8 mode if (locale_codeset && strcmp("UTF-8", locale_codeset) == 0) { s_utf8mode = true; } else if (locale_codeset != 0) { s_utf8mode = FbStringUtil::haveUTF8(); } if (name != 0) { load(name); } } Font::~Font() { } bool Font::load(const string &name) { if (name.empty()) return false; StringMapIt lookup_entry; FontCacheIt cache_entry; // check if one of || is already there if ((lookup_entry = s_lookup_map.find(name)) != s_lookup_map.end() && (cache_entry = s_font_cache.find(lookup_entry->second)) != s_font_cache.end()) { m_fontstr = cache_entry->first; m_fontimp = cache_entry->second; resetEffects(*this); return true; } // split up the namelist typedef list StringList; typedef StringList::iterator StringListIt; StringList names; FbTk::StringUtil::stringtok(names, name, "|"); StringListIt name_it; for (name_it = names.begin(); name_it != names.end(); ++name_it) { FbTk::StringUtil::removeTrailingWhitespace(*name_it); FbTk::StringUtil::removeFirstWhitespace(*name_it); if ((cache_entry = s_font_cache.find(*name_it)) != s_font_cache.end()) { m_fontstr = cache_entry->first; m_fontimp = cache_entry->second; s_lookup_map[name] = m_fontstr; resetEffects(*this); return true; } FontImp* tmp_font(0); // Xft and X/Xmb fonts have different defaults // (fixed doesn't really work right with Xft, especially rotated) // HOWEVER, note that if a Xft-style font is requested (not start with "-"), and // it turns out to be a bitmapped XFont, then Xft will load it, BUT it does not // currently (5jan2007) rotate bitmapped fonts (ok-ish), nor adjust the baseline for its // lack of rotation (not ok: messes up placement). I can't see a neat way around this, // other than the user re-specifying their font explicitly in XFont form so we don't use the // Xft backend. std::string realname = *name_it; #ifdef USE_XFT if ((*name_it)[0] != '-') { if (*name_it == Font::DEFAULT_FONT) realname = "monospace"; tmp_font = new XftFontImp(0, utf8()); } #endif // USE_XFT if (!tmp_font) { if (*name_it == Font::DEFAULT_FONT) realname = "fixed"; #ifdef USE_XMB if (multibyte() || utf8()) { tmp_font = new XmbFontImp(0, utf8()); } #endif // USE_XMB } if (!tmp_font) { tmp_font = new XFontImp(); } if (tmp_font && tmp_font->load(realname.c_str())) { s_lookup_map[name] = (*name_it); m_fontimp = tmp_font; s_font_cache[(*name_it)] = tmp_font; m_fontstr = name; resetEffects(*this); return true; } delete tmp_font; } return false; } unsigned int Font::textWidth(const char* text, unsigned int size) const { return m_fontimp->textWidth(text, size); } unsigned int Font::textWidth(const BiDiString &text) const { return textWidth(text.visual().c_str(), text.visual().size()); } unsigned int Font::height() const { return m_fontimp->height(); } int Font::ascent() const { return m_fontimp->ascent(); } int Font::descent() const { return m_fontimp->descent(); } bool Font::validOrientation(FbTk::Orientation orient) { return m_fontimp->validOrientation(orient); } void Font::drawText(const FbDrawable &w, int screen, GC gc, const char* text, size_t len, int x, int y, Orientation orient) const { if (!text || !*text || len == 0) return; // draw "effects" first if (m_shadow) { FbTk::GContext shadow_gc(w); shadow_gc.setForeground(m_shadow_color); m_fontimp->drawText(w, screen, shadow_gc.gc(), text, len, x + m_shadow_offx, y + m_shadow_offy, orient); } else if (m_halo) { FbTk::GContext halo_gc(w); halo_gc.setForeground(m_halo_color); m_fontimp->drawText(w, screen, halo_gc.gc(), text, len, x + 1, y + 1, orient); m_fontimp->drawText(w, screen, halo_gc.gc(), text, len, x - 1, y + 1, orient); m_fontimp->drawText(w, screen, halo_gc.gc(), text, len, x - 1, y - 1, orient); m_fontimp->drawText(w, screen, halo_gc.gc(), text, len, x + 1, y - 1, orient); } m_fontimp->drawText(w, screen, gc, text, len, x, y, orient); } } fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/FbWindow.cc0000644000175000017500000000013212106662425017717 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.463812461 30 ctime=1360750008.603811615 fluxbox-1.3.5/src/FbTk/FbWindow.cc0000644000175000017500000005415312106662425015756 0ustar00mgmg00000000000000// FbWindow.cc for FbTk - fluxbox toolkit // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "FbWindow.hh" #include "FbPixmap.hh" #include "FbString.hh" #include "EventManager.hh" #include "Color.hh" #include "App.hh" #include "Transparent.hh" #ifdef HAVE_CONFIG_H #include "config.h" #endif // HAVE_CONFIG_H #include #include #ifdef HAVE_CASSERT #include #else #include #endif #include namespace FbTk { FbWindow::FbWindow(): FbDrawable(), m_parent(0), m_screen_num(0), m_window(0), m_x(0), m_y(0), m_width(0), m_height(0), m_border_width(0), m_border_color(0), m_depth(0), m_destroy(true), m_lastbg_color_set(false), m_lastbg_color(0), m_lastbg_pm(0), m_renderer(0) { } FbWindow::FbWindow(const FbWindow& the_copy): FbDrawable(), m_parent(the_copy.parent()), m_screen_num(the_copy.screenNumber()), m_window(the_copy.window()), m_x(the_copy.x()), m_y(the_copy.y()), m_width(the_copy.width()), m_height(the_copy.height()), m_border_width(the_copy.borderWidth()), m_border_color(the_copy.borderColor()), m_depth(the_copy.depth()), m_destroy(true), m_lastbg_color_set(false), m_lastbg_color(0), m_lastbg_pm(0), m_renderer(the_copy.m_renderer) { the_copy.m_window = 0; } FbWindow::FbWindow(int screen_num, int x, int y, unsigned int width, unsigned int height, long eventmask, bool override_redirect, bool save_unders, unsigned int depth, int class_type, Visual *visual, Colormap cmap): FbDrawable(), m_parent(0), m_screen_num(screen_num), m_window(0), m_x(0), m_y(0), m_width(1), m_height(1), m_border_width(0), m_border_color(0), m_depth(0), m_destroy(true), m_lastbg_color_set(false), m_lastbg_color(0), m_lastbg_pm(0), m_renderer(0) { create(RootWindow(display(), screen_num), x, y, width, height, eventmask, override_redirect, save_unders, depth, class_type, visual, cmap); } FbWindow::FbWindow(const FbWindow &parent, int x, int y, unsigned int width, unsigned int height, long eventmask, bool override_redirect, bool save_unders, unsigned int depth, int class_type, Visual *visual, Colormap cmap): FbDrawable(), m_parent(&parent), m_screen_num(parent.screenNumber()), m_window(0), m_x(0), m_y(0), m_width(1), m_height(1), m_destroy(true), m_lastbg_color_set(false), m_lastbg_color(0), m_lastbg_pm(0), m_renderer(0) { create(parent.window(), x, y, width, height, eventmask, override_redirect, save_unders, depth, class_type, visual, cmap); } FbWindow::FbWindow(Window client): FbDrawable(), m_parent(0), m_screen_num(0), m_window(0), m_x(0), m_y(0), m_width(1), m_height(1), m_border_width(0), m_border_color(0), m_depth(0), m_destroy(false), // don't destroy this window m_lastbg_color_set(false), m_lastbg_color(0), m_lastbg_pm(0), m_renderer(0) { setNew(client); } FbWindow::~FbWindow() { // Need to free xrender pics before destroying window if (m_transparent.get() != 0) { removeAlphaWin(*this); m_transparent.reset(0); } if (m_window != 0) { // so we don't get any dangling eventhandler for this window FbTk::EventManager::instance()->remove(m_window); if (m_destroy) XDestroyWindow(display(), m_window); } } void FbWindow::setBackgroundColor(const FbTk::Color &bg_color) { if (bg_color.isAllocated()) { m_lastbg_color = bg_color.pixel(); m_lastbg_color_set = true; m_lastbg_pm = None; } else { m_lastbg_color_set = false; } updateBackground(false); } void FbWindow::setBackgroundPixmap(Pixmap bg_pixmap) { m_lastbg_pm = bg_pixmap; if (bg_pixmap != None) m_lastbg_color_set = false; updateBackground(false); } void FbWindow::invalidateBackground() { m_lastbg_pm = None; m_lastbg_color_set = false; } void FbWindow::updateBackground(bool only_if_alpha) { Pixmap newbg = m_lastbg_pm; int alpha = 255; bool free_newbg = false; if (m_lastbg_pm == None && !m_lastbg_color_set) return; if (m_transparent.get() != 0) alpha = m_transparent->alpha(); if (only_if_alpha && alpha == 255) return; // still use bg buffer pixmap if not transparent // cause it does nice caching things, assuming we have a renderer if (m_lastbg_pm != ParentRelative && (m_renderer || alpha != 255)) { // update source and destination if needed Pixmap root = FbPixmap::getRootPixmap(screenNumber()); if (alpha != 255 && m_transparent->source() != root) m_transparent->setSource(root, screenNumber()); FbPixmap newpm = FbPixmap(*this, width(), height(), depth()); free_newbg = true; // newpm gets released to newbg at end of block GC gc = XCreateGC(display(), window(), 0, 0); if (m_lastbg_pm == None && m_lastbg_color_set) { XSetForeground(display(), gc, m_lastbg_color); newpm.fillRectangle(gc, 0, 0, width(), height()); } else { // copy from window if no color and no bg... newpm.copyArea((m_lastbg_pm == None)?drawable():m_lastbg_pm, gc, 0, 0, 0, 0, width(), height()); } XFreeGC(display(), gc); if (alpha != 255) m_transparent->setDest(newpm.drawable(), screenNumber()); // get root position const FbWindow *root_parent = parent(); // our position in parent ("root") int root_x = x() + borderWidth(), root_y = y() + borderWidth(); if (root_parent != 0) { root_x += root_parent->x() + root_parent->borderWidth(); root_y += root_parent->y() + root_parent->borderWidth(); while (root_parent->parent() != 0) { root_parent = root_parent->parent(); root_x += root_parent->x() + root_parent->borderWidth(); root_y += root_parent->y() + root_parent->borderWidth(); } } // render background image from root pos to our window if (alpha != 255) m_transparent->render(root_x, root_y, 0, 0, width(), height()); // render any foreground items if (m_renderer) m_renderer->renderForeground(*this, newpm); if (alpha != 255) m_transparent->freeDest(); // it's only temporary, don't leave it hanging around newbg = newpm.release(); } if (newbg != None) XSetWindowBackgroundPixmap(display(), m_window, newbg); else if (m_lastbg_color_set) XSetWindowBackground(display(), m_window, m_lastbg_color); if (free_newbg) XFreePixmap(display(), newbg); } void FbWindow::setBorderColor(const FbTk::Color &border_color) { XSetWindowBorder(display(), m_window, border_color.pixel()); m_border_color = border_color.pixel(); } void FbWindow::setBorderWidth(unsigned int size) { XSetWindowBorderWidth(display(), m_window, size); m_border_width = size; } void FbWindow::setName(const char *name) { XStoreName(display(), m_window, name); } void FbWindow::setWindowRole(const char *windowRole) { XTextProperty tp; XStringListToTextProperty(const_cast(&windowRole), 1, &tp); XSetTextProperty(display(), m_window, &tp, XInternAtom(display(), "WM_WINDOW_ROLE", False)); XFree(tp.value); } void FbWindow::setEventMask(long mask) { XSelectInput(display(), m_window, mask); } void FbWindow::clear() { XClearWindow(display(), m_window); if (m_lastbg_pm == ParentRelative && m_renderer) m_renderer->renderForeground(*this, *this); } void FbWindow::clearArea(int x, int y, unsigned int width, unsigned int height, bool exposures) { // TODO: probably could call renderForeground here (with x,y,w,h) if (m_lastbg_pm == ParentRelative && m_renderer) FbWindow::clear(); else XClearArea(display(), window(), x, y, width, height, exposures); } // If override_is_offset, then dest_override is a pixmap located at the_x, the_y // with size the_width x the_height in the target window. void FbWindow::updateTransparent(int the_x, int the_y, unsigned int the_width, unsigned int the_height, Pixmap dest_override, bool override_is_offset) { #ifdef HAVE_XRENDER if (!m_transparent.get()) return; if (width() == 0 || height() == 0) return; if (!dest_override && ((the_width == 0 && the_height == 0) || (the_width == width() && the_height == height())) && the_x <= 0 && the_y <= 0) { // do the whole thing updateBackground(true); return; } if (!dest_override) dest_override = window(); if (the_width == 0 || the_height == 0) { the_width = width(); the_height = height(); } if (the_x < 0 || the_y < 0) { the_x = 0; the_y = 0; } // update source and destination if needed Pixmap root = FbPixmap::getRootPixmap(screenNumber()); if (m_transparent->source() != root) m_transparent->setSource(root, screenNumber()); if (m_transparent->dest() != dest_override) m_transparent->setDest(dest_override, screenNumber()); // get root position const FbWindow *root_parent = parent(); // our position in parent ("root") int root_x = x() + borderWidth(), root_y = y() + borderWidth(); if (root_parent != 0) { root_x += root_parent->x() + root_parent->borderWidth(); root_y += root_parent->y() + root_parent->borderWidth(); while (root_parent->parent() != 0) { root_parent = root_parent->parent(); root_x += root_parent->x() + root_parent->borderWidth(); root_y += root_parent->y() + root_parent->borderWidth(); } } // else toplevel window so we already have x, y set // render background image from root pos to our window m_transparent->render(root_x + the_x, root_y + the_y, override_is_offset?0:the_x, override_is_offset?0:the_y, the_width, the_height); #endif // HAVE_XRENDER } void FbWindow::setAlpha(int alpha) { #ifdef HAVE_XRENDER if (FbTk::Transparent::haveComposite()) { if (m_transparent.get() != 0) { removeAlphaWin(*this); m_transparent.reset(0); } // don't setOpaque, let controlling objects do that // since it's only needed on toplevel windows } else { if (!FbTk::Transparent::haveRender()) alpha = 255; if (m_transparent.get() == 0 && alpha < 255) { m_transparent.reset(new Transparent(FbPixmap::getRootPixmap(screenNumber()), window(), alpha, screenNumber())); addAlphaWin(*this); } else if (alpha < 255 && alpha != m_transparent->alpha()) m_transparent->setAlpha(alpha); else if (alpha == 255) { removeAlphaWin(*this); m_transparent.reset(0); // destroy transparent object } } #endif // HAVE_XRENDER } int FbWindow::alpha() const { #ifdef HAVE_XRENDER if (m_transparent.get()) return m_transparent->alpha(); #endif // HAVE_XRENDER return 255; } FbWindow &FbWindow::operator = (const FbWindow &win) { m_parent = win.parent(); m_screen_num = win.screenNumber(); m_window = win.window(); m_x = win.x(); m_y = win.y(); m_width = win.width(); m_height = win.height(); m_border_width = win.borderWidth(); m_border_color = win.borderColor(); m_depth = win.depth(); // take over this window win.m_window = 0; return *this; } FbWindow &FbWindow::operator = (Window win) { setNew(win); return *this; } void FbWindow::setNew(Window win) { if (m_window != 0 && m_destroy) XDestroyWindow(display(), m_window); m_window = win; if (m_window != 0) { updateGeometry(); XWindowAttributes attr; attr.screen = 0; //get screen number if (XGetWindowAttributes(display(), m_window, &attr) != 0 && attr.screen != 0) { m_screen_num = XScreenNumberOfScreen(attr.screen); if (attr.width <= 0) m_width = 1; else m_width = attr.width; if (attr.height <= 0) m_height = 1; else m_height = attr.height; m_x = attr.x; m_y = attr.y; m_depth = attr.depth; m_border_width = attr.border_width; } } } void FbWindow::show() { XMapWindow(display(), m_window); } void FbWindow::showSubwindows() { XMapSubwindows(display(), m_window); } void FbWindow::hide() { XUnmapWindow(display(), m_window); } void FbWindow::lower() { XLowerWindow(display(), window()); } void FbWindow::raise() { XRaiseWindow(display(), window()); } void FbWindow::setInputFocus(int revert_to, int time) { XSetInputFocus(display(), window(), revert_to, time); } void FbWindow::setCursor(Cursor cur) { XDefineCursor(display(), window(), cur); } void FbWindow::reparent(const FbWindow &parent, int x, int y, bool continuing) { XReparentWindow(display(), window(), parent.window(), x, y); m_parent = &parent; if (continuing) // we will continue managing this window after reparent updateGeometry(); } namespace { struct TextPropPtr { TextPropPtr(XTextProperty& prop):m_prop(prop) {} ~TextPropPtr() { if (m_prop.value != 0) { XFree(m_prop.value); m_prop.value = 0; } } XTextProperty& m_prop; }; } long FbWindow::cardinalProperty(Atom prop,bool*exists) const { Atom type; int format; unsigned long nitems, bytes_after; int result; long* num; long ret=0; if (exists) *exists=false; if (property(prop, 0, 1, False, XA_CARDINAL, &type, &format, &nitems, &bytes_after, reinterpret_cast(&num))) { if (type == XA_CARDINAL && nitems) { ret = *num; if (exists) *exists=true; } XFree(num); } return ret; } FbTk::FbString FbWindow::textProperty(Atom prop,bool*exists) const { XTextProperty text_prop; TextPropPtr helper(text_prop); char ** stringlist = 0; int count = 0; FbTk::FbString ret; static const Atom utf8string = XInternAtom(display(), "UTF8_STRING", False); if (exists) *exists=false; if (XGetTextProperty(display(), window(), &text_prop, prop) == 0 || text_prop.value == 0 || text_prop.nitems == 0) { return ""; } if (text_prop.encoding == XA_STRING) { if (XTextPropertyToStringList(&text_prop, &stringlist, &count) == 0 || count == 0) { return ""; } ret = FbStringUtil::XStrToFb(stringlist[0]); } else if (text_prop.encoding == utf8string && text_prop.format == 8) { #ifdef X_HAVE_UTF8_STRING Xutf8TextPropertyToTextList(display(), &text_prop, &stringlist, &count); if (count == 0 || stringlist == 0) { return ""; } #else if (XTextPropertyToStringList(&text_prop, &stringlist, &count) == 0 || count == 0 || stringlist == 0) { return ""; } #endif ret = stringlist[0]; } else { // still returns a "StringList" despite the different name XmbTextPropertyToTextList(display(), &text_prop, &stringlist, &count); if (count == 0 || stringlist == 0) { return ""; } ret = FbStringUtil::LocaleStrToFb(stringlist[0]); } // they all use stringlist if (stringlist) { XFreeStringList(stringlist); } if (exists) *exists=true; return ret; } bool FbWindow::property(Atom prop, long long_offset, long long_length, bool do_delete, Atom req_type, Atom *actual_type_return, int *actual_format_return, unsigned long *nitems_return, unsigned long *bytes_after_return, unsigned char **prop_return) const { if (XGetWindowProperty(display(), window(), prop, long_offset, long_length, do_delete, req_type, actual_type_return, actual_format_return, nitems_return, bytes_after_return, prop_return) == Success) return true; return false; } void FbWindow::changeProperty(Atom prop, Atom type, int format, int mode, unsigned char *data, int nelements) { XChangeProperty(display(), m_window, prop, type, format, mode, data, nelements); } void FbWindow::deleteProperty(Atom prop) { XDeleteProperty(display(), m_window, prop); } void FbWindow::addToSaveSet() { XAddToSaveSet(display(), m_window); } void FbWindow::removeFromSaveSet() { XRemoveFromSaveSet(display(), m_window); } int FbWindow::screenNumber() const { return m_screen_num; } long FbWindow::eventMask() const { XWindowAttributes attrib; XGetWindowAttributes(display(), window(), &attrib); return attrib.your_event_mask; } void FbWindow::setOpaque(int alpha) { #ifdef HAVE_XRENDER static const Atom alphaatom = XInternAtom(display(), "_NET_WM_WINDOW_OPACITY", False); unsigned long opacity = alpha * 0x1010101; changeProperty(alphaatom, XA_CARDINAL, 32, PropModeReplace, (unsigned char *) &opacity, 1l); #endif // HAVE_XRENDER } bool FbWindow::updateGeometry() { if (m_window == 0) return false; int old_x = m_x, old_y = m_y; unsigned int old_width = m_width, old_height = m_height; Window root; unsigned int border_width, depth; if (XGetGeometry(display(), m_window, &root, &m_x, &m_y, &m_width, &m_height, &border_width, &depth)) m_depth = depth; return (old_x != m_x || old_y != m_y || old_width != m_width || old_height != m_height); } void FbWindow::create(Window parent, int x, int y, unsigned int width, unsigned int height, long eventmask, bool override_redirect, bool save_unders, unsigned int depth, int class_type, Visual *visual, Colormap cmap) { m_border_width = 0; m_border_color = 0; long valmask = CWEventMask; XSetWindowAttributes values; values.event_mask = eventmask; if (override_redirect) { valmask |= CWOverrideRedirect; values.override_redirect = True; } if (save_unders) { valmask |= CWSaveUnder; values.save_under = True; } if (cmap != CopyFromParent) { valmask |= CWColormap | CWBackPixel | CWBorderPixel; values.colormap = cmap; values.background_pixel = XWhitePixel(display(), 0); values.border_pixel = XBlackPixel(display(), 0); } m_window = XCreateWindow(display(), parent, x, y, width, height, 0, // border width depth, // depth class_type, // class visual, // visual valmask, // create mask &values); // create atrribs assert(m_window); updateGeometry(); } void FbWindow::sendConfigureNotify(int x, int y, unsigned int width, unsigned int height, unsigned int bw) { Display *disp = FbTk::App::instance()->display(); XEvent event; event.type = ConfigureNotify; event.xconfigure.display = disp; event.xconfigure.event = window(); event.xconfigure.window = window(); event.xconfigure.x = x; event.xconfigure.y = y; event.xconfigure.width = width; event.xconfigure.height = height; event.xconfigure.border_width = bw; event.xconfigure.above = None; event.xconfigure.override_redirect = false; XSendEvent(disp, window(), False, StructureNotifyMask, &event); } FbWindow::FbWinList FbWindow::m_alpha_wins; void FbWindow::addAlphaWin(FbWindow &win) { m_alpha_wins.insert(&win); } void FbWindow::removeAlphaWin(FbWindow &win) { FbWinList::iterator it = m_alpha_wins.find(&win); if (it != m_alpha_wins.end()) m_alpha_wins.erase(it); } void FbWindow::updatedAlphaBackground(int screen) { FbWinList::iterator it = m_alpha_wins.begin(); FbWinList::iterator it_end = m_alpha_wins.end(); for (; it != it_end; ++it) { if ((*it)->screenNumber() == screen) { (*it)->updateBackground(false); (*it)->clear(); } } } bool operator == (Window win, const FbWindow &fbwin) { return win == fbwin.window(); } } fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/FbWindow.hh0000644000175000017500000000013212106662425017731 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.459812461 30 ctime=1360750008.603811615 fluxbox-1.3.5/src/FbTk/FbWindow.hh0000644000175000017500000002266012106662425015766 0ustar00mgmg00000000000000// FbWindow.hh for FbTk - fluxbox toolkit // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_FBWINDOW_HH #define FBTK_FBWINDOW_HH #include "FbDrawable.hh" #include "FbString.hh" #include #include #include #ifdef HAVE_CMATH #include #else #include #endif namespace FbTk { class Color; class Transparent; class FbPixmap; class FbWindowRenderer; /// Wrapper for X window /** * Example: * FbWindow window(0, 10, 10, 100, 100, ExposeMask | ButtonPressMask); \n * this will create a window on screen 0, position 10 10, size 100 100 \n * and with eventmask Expose and ButtonPress. \n * You need to register it to some eventhandler so you can catch events: \n * EventManager::instance()->add(your_eventhandler, window); \n * @see EventHandler * @see EventManager */ class FbWindow: public FbDrawable { public: FbWindow(); FbWindow(const FbWindow &win_copy); FbWindow(int screen_num, int x, int y, unsigned int width, unsigned int height, long eventmask, bool overrride_redirect = false, bool save_unders = false, unsigned int depth = CopyFromParent, int class_type = InputOutput, Visual *visual = CopyFromParent, Colormap cmap = CopyFromParent); FbWindow(const FbWindow &parent, int x, int y, unsigned int width, unsigned int height, long eventmask, bool overrride_redirect = false, bool save_unders = false, unsigned int depth = CopyFromParent, int class_type = InputOutput, Visual *visual = CopyFromParent, Colormap cmap = CopyFromParent); virtual ~FbWindow(); virtual void setBackgroundColor(const FbTk::Color &bg_color); virtual void setBackgroundPixmap(Pixmap bg_pixmap); // call when background is freed, and new one not ready yet virtual void invalidateBackground(); virtual void setBorderColor(const FbTk::Color &border_color); virtual void setBorderWidth(unsigned int size); /// set window name ("title") void setName(const char *name); /// set window role void setWindowRole(const char *windowRole); void setEventMask(long mask); /// clear window with background pixmap or color virtual void clear(); /// @param exposures wheter Expose event should be generated virtual void clearArea(int x, int y, unsigned int width, unsigned int height, bool exposures = false); void updateTransparent(int x = -1, int y = -1, unsigned int width = 0, unsigned int height = 0, Pixmap dest_override = None, bool override_is_offset = false); void setAlpha(int alpha); virtual FbWindow &operator = (const FbWindow &win); /// assign a new X window to this virtual FbWindow &operator = (Window win); virtual void hide(); virtual void show(); virtual void showSubwindows(); /// Notify that the parent window was moved, /// thus the absolute position of this one moved virtual void parentMoved() { updateBackground(true); } virtual void move(int x, int y) { if (x == m_x && y == m_y) return; XMoveWindow(display(), m_window, x, y); m_x = x; m_y = y; updateBackground(true); } virtual void resize(unsigned int width, unsigned int height) { if (width == m_width && height == m_height) return; XResizeWindow(display(), m_window, width, height); m_width = width; m_height = height; updateBackground(false); } virtual void moveResize(int x, int y, unsigned int width, unsigned int height) { if (x == m_x && y == m_y && width == m_width && height == m_height) return; XMoveResizeWindow(display(), m_window, x, y, width, height); m_x = x; m_y = y; m_width = width; m_height = height; updateBackground(false); } virtual void lower(); virtual void raise(); void setInputFocus(int revert_to, int time); /// defines a cursor for this window void setCursor(Cursor cur); void reparent(const FbWindow &parent, int x, int y, bool continuing = true); bool property(Atom property, long long_offset, long long_length, bool do_delete, Atom req_type, Atom *actual_type_return, int *actual_format_return, unsigned long *nitems_return, unsigned long *bytes_after_return, unsigned char **prop_return) const; void changeProperty(Atom property, Atom type, int format, int mode, unsigned char *data, int nelements); void deleteProperty(Atom property); long cardinalProperty(Atom property,bool*exists=NULL) const; FbTk::FbString textProperty(Atom property,bool*exists=NULL) const; void addToSaveSet(); void removeFromSaveSet(); /// @return parent FbWindow const FbWindow *parent() const { return m_parent; } /// @return real X window Window window() const { return m_window; } /// @return drawable (the X window) Drawable drawable() const { return window(); } int x() const { return m_x; } int y() const { return m_y; } unsigned int width() const { return m_width; } unsigned int height() const { return m_height; } unsigned int borderWidth() const { return m_border_width; } unsigned long borderColor() const { return m_border_color; } unsigned int depth() const { return m_depth; } int alpha() const; int screenNumber() const; long eventMask() const; /// compare X window bool operator == (Window win) const { return m_window == win; } bool operator != (Window win) const { return m_window != win; } /// compare two windows bool operator == (const FbWindow &win) const { return m_window == win.m_window; } bool operator != (const FbWindow &win) const { return m_window != win.m_window; } // used for composite void setOpaque(int alpha); void setRenderer(FbWindowRenderer &renderer) { m_renderer = &renderer; } void sendConfigureNotify(int x, int y, unsigned int width, unsigned int height, unsigned int bw = 0); /// forces full background change, recalcing of alpha values if necessary void updateBackground(bool only_if_alpha); static void updatedAlphaBackground(int screen); /// updates x,y, width, height and screen num from X window bool updateGeometry(); protected: /// creates a window with x window client (m_window = client) explicit FbWindow(Window client); void setDepth(unsigned int depth) { m_depth = depth; } private: /// sets new X window and destroys old void setNew(Window win); /// creates a new X window void create(Window parent, int x, int y, unsigned int width, unsigned int height, long eventmask, bool override_redirect, bool save_unders, unsigned int depth, int class_type, Visual *visual, Colormap cmap); const FbWindow *m_parent; ///< parent FbWindow int m_screen_num; ///< screen num on which this window exist mutable Window m_window; ///< the X window int m_x, m_y; ///< position of window unsigned int m_width, m_height; ///< size of window unsigned int m_border_width; ///< border size unsigned long m_border_color; ///< border color unsigned int m_depth; ///< bit depth bool m_destroy; ///< wheter the x window was created before std::auto_ptr m_transparent; bool m_lastbg_color_set; unsigned long m_lastbg_color; Pixmap m_lastbg_pm; FbWindowRenderer *m_renderer; static void addAlphaWin(FbWindow &win); static void removeAlphaWin(FbWindow &win); typedef std::set FbWinList; static FbWinList m_alpha_wins; }; bool operator == (Window win, const FbWindow &fbwin); /// Interface class to render FbWindow foregrounds. class FbWindowRenderer { public: virtual void renderForeground(FbWindow &win, FbDrawable &drawable) = 0; virtual ~FbWindowRenderer() { } }; } // end namespace FbTk #endif // FBTK_FBWINDOW_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/EventManager.cc0000644000175000017500000000013212106662425020554 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.459812461 30 ctime=1360750008.607811615 fluxbox-1.3.5/src/FbTk/EventManager.cc0000644000175000017500000001375312106662425016614 0ustar00mgmg00000000000000// EventManager.cc // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "EventManager.hh" #include "EventHandler.hh" #include "FbWindow.hh" #include "App.hh" #ifdef DEBUG #include using std::cerr; using std::endl; #endif // DEBUG namespace FbTk { EventManager *EventManager::instance() { static EventManager ev; return &ev; } EventManager::~EventManager() { #ifdef DEBUG if (m_eventhandlers.size() != 0) cerr<<"FbTk::EventManager: Warning: unregistered eventhandlers!"<display(), win, False, GrabModeAsync, GrabModeAsync, CurrentTime); return (ret == Success); } void EventManager::ungrabKeyboard() { XUngrabKeyboard(App::instance()->display(), CurrentTime); } Window EventManager::getEventWindow(XEvent &ev) { // we only have cases for events that differ from xany switch (ev.type) { case CreateNotify: // XCreateWindowEvent return ev.xcreatewindow.window; break; case DestroyNotify: // XDestroyWindowEvent return ev.xdestroywindow.window; break; case UnmapNotify: // XUnmapEvent return ev.xunmap.window; break; case MapNotify: // XMapEvent return ev.xmap.window; break; case MapRequest: // XMapRequestEvent return ev.xmaprequest.window; break; case ReparentNotify: // XReparentEvent return ev.xreparent.window; break; case ConfigureNotify: // XConfigureNotify return ev.xconfigure.window; break; case GravityNotify: // XGravityNotify return ev.xgravity.window; break; case ConfigureRequest: // XConfigureRequestEvent return ev.xconfigurerequest.window; break; case CirculateNotify: // XCirculateEvent return ev.xcirculate.window; break; case CirculateRequest: // XCirculateRequestEvent return ev.xcirculaterequest.window; break; default: return ev.xany.window; } } void EventManager::registerEventHandler(EventHandler &ev, Window win) { if (win != None) m_eventhandlers[win] = &ev; } void EventManager::unregisterEventHandler(Window win) { if (win != None) { m_eventhandlers.erase(win); m_parent.erase(win); } } void EventManager::dispatch(Window win, XEvent &ev, bool parent) { EventHandler *evhand = 0; if (parent) { EventHandlerMap::iterator it = m_parent.find(win); if (it == m_parent.end()) return; else evhand = it->second; } else { win = getEventWindow(ev); EventHandlerMap::iterator it = m_eventhandlers.find(win); if (it == m_eventhandlers.end()) return; else evhand = it->second; } if (evhand == 0) return; switch (ev.type) { case KeyPress: evhand->keyPressEvent(ev.xkey); break; case KeyRelease: evhand->keyReleaseEvent(ev.xkey); break; case ButtonPress: evhand->buttonPressEvent(ev.xbutton); break; case ButtonRelease: evhand->buttonReleaseEvent(ev.xbutton); break; case MotionNotify: evhand->motionNotifyEvent(ev.xmotion); break; case Expose: evhand->exposeEvent(ev.xexpose); break; case EnterNotify: if (ev.xcrossing.mode != NotifyGrab && ev.xcrossing.mode != NotifyUngrab) evhand->enterNotifyEvent(ev.xcrossing); break; case LeaveNotify: if (ev.xcrossing.mode != NotifyGrab && ev.xcrossing.mode != NotifyUngrab) evhand->leaveNotifyEvent(ev.xcrossing); break; default: evhand->handleEvent(ev); break; }; // find out which window is the parent and // dispatch event Window root, parent_win, *children = 0; unsigned int num_children; if (XQueryTree(FbTk::App::instance()->display(), win, &root, &parent_win, &children, &num_children) != 0) { if (children != 0) XFree(children); if (parent_win != 0 && parent_win != root) { if (m_parent[parent_win] == 0) return; // dispatch event to parent dispatch(parent_win, ev, true); } } } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/EventManager.hh0000644000175000017500000000013212106662425020566 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.459812461 30 ctime=1360750008.607811615 fluxbox-1.3.5/src/FbTk/EventManager.hh0000644000175000017500000000502712106662425016621 0ustar00mgmg00000000000000// EventManager.hh // Copyright (c) 2002 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_EVENTMANAGER_HH #define FBTK_EVENTMANAGER_HH #include #include namespace FbTk { class FbWindow; class EventHandler; /** singleton mediator for EventHandlers */ class EventManager { public: static EventManager *instance(); void handleEvent(XEvent &ev); // adds a parent to listen to the childrens events void addParent(EventHandler &ev, const FbWindow &parent); void add(EventHandler &ev, const FbWindow &win); void remove(const FbWindow &win); void add(EventHandler &ev, Window win) { registerEventHandler(ev, win); } void remove(Window win) { unregisterEventHandler(win); } bool grabKeyboard(Window win); void ungrabKeyboard(); EventHandler *find(Window win); // Some events have the parent window as the xany.window // This function always returns the actual window member of the event structure static Window getEventWindow(XEvent &ev); void registerEventHandler(EventHandler &ev, Window win); void unregisterEventHandler(Window win); private: EventManager(): m_grabbing_keyboard(0) { } ~EventManager(); void dispatch(Window win, XEvent &event, bool parent = false); typedef std::map EventHandlerMap; EventHandlerMap m_eventhandlers; EventHandlerMap m_parent; EventHandler *m_grabbing_keyboard; }; } //end namespace FbTk #endif // FBTK_EVENTMANAGER_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/EventHandler.hh0000644000175000017500000000013212106662425020571 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.455812461 30 ctime=1360750008.607811615 fluxbox-1.3.5/src/FbTk/EventHandler.hh0000644000175000017500000000455012106662425016624 0ustar00mgmg00000000000000// EventHandler.hh for Fluxbox Window Manager // Copyright (c) 2002-2003 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. /// @file EventHandler.hh holds EventHandler interface for X events #ifndef FBTK_EVENTHANDLER_HH #define FBTK_EVENTHANDLER_HH #include namespace FbTk { /// interface for X events /** * Use this class to catch events from X windows and FbWindows \n * Register instance of this class to EventManager \n * example: \n * EventManager::instance()->add(your_eventhandler, your_window); \n * Don't forget to unregister it: \n * EventManager::instance()->remove(your_window); * @see EventManager */ class EventHandler { public: virtual ~EventHandler() { } /** Events that don't have an specific event function */ virtual void handleEvent(XEvent &) { } virtual void buttonPressEvent(XButtonEvent &) { } virtual void buttonReleaseEvent(XButtonEvent &) { } virtual void exposeEvent(XExposeEvent &) { } virtual void motionNotifyEvent(XMotionEvent &) { } virtual void keyPressEvent(XKeyEvent &) { } virtual void keyReleaseEvent(XKeyEvent &) { } virtual void leaveNotifyEvent(XCrossingEvent &) { } virtual void enterNotifyEvent(XCrossingEvent &) { } virtual void grabButtons() { } }; } // end namespace FbTk #endif // FBTK_EVENTHANDLER_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/FileUtil.cc0000644000175000017500000000013212106662425017715 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.455812461 30 ctime=1360750008.607811615 fluxbox-1.3.5/src/FbTk/FileUtil.cc0000644000175000017500000000704612106662425015753 0ustar00mgmg00000000000000// FileUtil.cc // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "FileUtil.hh" #include #include #include #include using std::ifstream; using std::ofstream; using std::cerr; using std::endl; namespace FbTk { time_t FileUtil::getLastStatusChangeTimestamp(const char* filename) { struct stat buf; if (filename && !stat(filename, &buf)) { return buf.st_ctime; } else return (time_t)-1; } bool FileUtil::isDirectory(const char* filename) { struct stat buf; if (!filename || stat(filename, &buf)) return false; return S_ISDIR(buf.st_mode); } bool FileUtil::isRegularFile(const char* filename) { struct stat buf; if (!filename || stat(filename, &buf)) return false; return S_ISREG(buf.st_mode); } bool FileUtil::isExecutable(const char* filename) { struct stat buf; if (!filename || stat(filename, &buf)) return false; return buf.st_mode & S_IXUSR #ifdef S_IXGRP || buf.st_mode & S_IXGRP #endif #ifdef S_IXOTH || buf.st_mode & S_IXOTH #endif ; } bool FileUtil::copyFile(const char* from, const char* to) { ifstream from_file(from); ofstream to_file(to); if (!to_file.good()) cerr << "Can't write file '"<d_name ? ent->d_name : ""); } void Directory::close() { if (m_dir != 0) { closedir(m_dir); m_name = ""; m_dir = 0; m_num_entries = 0; } } bool Directory::open(const char *dir) { if (dir == 0) return false; if (m_dir != 0) close(); m_dir = opendir(dir); if (m_dir == 0) // successfull loading? return false; m_name= dir; // get number of entries while (read()) m_num_entries++; rewind(); // go back to start return true; } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/FileUtil.hh0000644000175000017500000000013212106662425017727 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.451812461 30 ctime=1360750008.611811615 fluxbox-1.3.5/src/FbTk/FileUtil.hh0000644000175000017500000000557312106662425015770 0ustar00mgmg00000000000000// FileUtil.hh // Copyright (c) 2002 - 2004 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_FILEUTIL_HH #define FBTK_FILEUTIL_HH #ifdef HAVE_CONFIG_H #include "config.h" #endif // HAVE_CONFIG_H #ifdef HAVE_CTIME #include #else #include #endif #include #include #include #include "NotCopyable.hh" namespace FbTk { /// Wrapper for file routines namespace FileUtil { /// @return true if file is a directory bool isDirectory(const char* filename); /// @return true if a file is a regular file bool isRegularFile(const char* filename); /// @return true if a file executable for user bool isExecutable(const char* filename); /// gets timestamp of last status change /// @return timestamp /// @return -1 (failure) time_t getLastStatusChangeTimestamp(const char* filename); /// copies file 'from' to 'to' bool copyFile(const char* from, const char* to); } // end of File namespace /// Wrapper class for DIR * routines class Directory : private FbTk::NotCopyable { public: explicit Directory(const char *dir = 0); ~Directory(); const std::string &name() const { return m_name; } /// go to start of filelist void rewind(); /// gets next dirent info struct in directory and /// jumps to next directory entry struct dirent * read(); /// reads next filename in directory std::string readFilename(); /// close directory void close(); /// open directory /// @param dir the directory name bool open(const char *dir); /// @return number of entries in the directory size_t entries() const { return m_num_entries; } private: std::string m_name; DIR *m_dir; size_t m_num_entries; ///< number of file entries in directory }; } // end namespace FbTk #endif // FBTK_FILEUTIL_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/DefaultValue.hh0000644000175000017500000000013212106662425020573 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.451812461 30 ctime=1360750008.611811615 fluxbox-1.3.5/src/FbTk/DefaultValue.hh0000644000175000017500000000403012106662425016617 0ustar00mgmg00000000000000// DefaultValue.hh // Copyright (c) 2007 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_DEFAULTVALUE_HH #define FBTK_DEFAULTVALUE_HH #include "Accessor.hh" namespace FbTk { // class for overriding default values and restoring them later // Ret = type of value that gets returned // Def = type of default value -- may be Accessor &, for example template class DefaultValue: public Accessor { public: DefaultValue(const Def def): m_default(def), m_actual(def), m_use_default(true) { } void restoreDefault() { m_use_default = true; } bool isDefault() const { return m_use_default; } DefaultValue &operator =(const Ret &val) { m_use_default = false; m_actual = val; return *this; } operator Ret() const { return m_use_default ? m_default : m_actual; } private: const Def m_default; Ret m_actual; bool m_use_default; }; } // end namespace FbTk #endif // FBTK_DEFAULTVALUE_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Accessor.hh0000644000175000017500000000013212106662425017754 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.451812461 30 ctime=1360750008.611811615 fluxbox-1.3.5/src/FbTk/Accessor.hh0000644000175000017500000000540012106662425016002 0ustar00mgmg00000000000000// Accessor.hh // Copyright (c) 2007 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_ACCESSOR_HH #define FBTK_ACCESSOR_HH namespace FbTk { // base class for objects that act like data type T template class Accessor { public: virtual Accessor &operator =(const T &val) = 0; virtual operator T() const = 0; virtual ~Accessor() {} }; // essentially just a reference template class SimpleAccessor: public Accessor { public: SimpleAccessor(T &val): m_val(val) { } Accessor &operator =(const T &val) { m_val = val; return *this; } operator T() const { return m_val; } private: T &m_val; }; // use object methods as an accessor template class ObjectAccessor: public Accessor { public: typedef T (Receiver:: *Getter)() const; typedef void (Receiver:: *Setter)(T &); ObjectAccessor(Receiver &r, Getter g, Setter s): m_receiver(r), m_getter(g), m_setter(s) { } operator T() const { return (m_receiver.*m_getter)(); } Accessor &operator =(const T &val) { (m_receiver.*m_setter)(val); return *this; } private: Receiver &m_receiver; Getter m_getter; Setter m_setter; }; // same as above but with no set method template class ConstObjectAccessor: public Accessor { public: typedef T (Receiver:: *Getter)() const; ConstObjectAccessor(const Receiver &r, Getter g): m_receiver(r), m_getter(g) { } operator T() const { return (m_receiver.*m_getter)(); } Accessor &operator =(const T &val) { return *this; } private: const Receiver &m_receiver; Getter m_getter; }; } // end namespace FbTk #endif // FBTK_ACCESSOR_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/ColorLUT.hh0000644000175000017500000000013212106662425017655 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.447812461 30 ctime=1360750008.611811615 fluxbox-1.3.5/src/FbTk/ColorLUT.hh0000644000175000017500000000303412106662425015704 0ustar00mgmg00000000000000// ColorLUT.hh for Fluxbox Window Manager // Copyright (c) 2013 - Mathias Gumz // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. namespace FbTk { namespace ColorLUT { #if 0 // unused extern const unsigned char PRE_MULTIPLY_1_5[256]; extern const unsigned char PRE_MULTIPLY_1_125[256]; #endif extern const unsigned char PRE_MULTIPLY_0_75[256]; extern const unsigned char BRIGHTER_4[256]; extern const unsigned char BRIGHTER_8[256]; #if 0 // unused extern const unsigned char BRIGHTER_16[256]; #endif } } fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/ColorLUT.cc0000644000175000017500000000013212106662425017643 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.447812461 30 ctime=1360750008.611811615 fluxbox-1.3.5/src/FbTk/ColorLUT.cc0000644000175000017500000003267312106662425015705 0ustar00mgmg00000000000000// ColorLUT.cc for Fluxbox Window Manager // Copyright (c) 2013 - Mathias Gumz // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "ColorLUT.hh" namespace FbTk { // created by: // // #include // #include // int main(int argc, char **argv) { // // double s = 1.0; // // if (argc > 1) { // s = atof(argv[1]); // } // // size_t i; unsigned char c; double v; // for (i = 0; i < 256; ++i) { // c = 255; // v = s * i; // if (v < c) // c = (unsigned char)v; // write(1, &c, 1); // } // // return 0; // } // // and then piped to 'xxd -i' // ./a.out 1.5 | xxd -i -c 8 # value + (value >> 1)) // #if 0 // unused const unsigned char ColorLUT::PRE_MULTIPLY_1_5[256] = { 0x00, 0x01, 0x03, 0x04, 0x06, 0x07, 0x09, 0x0a, 0x0c, 0x0d, 0x0f, 0x10, 0x12, 0x13, 0x15, 0x16, 0x18, 0x19, 0x1b, 0x1c, 0x1e, 0x1f, 0x21, 0x22, 0x24, 0x25, 0x27, 0x28, 0x2a, 0x2b, 0x2d, 0x2e, 0x30, 0x31, 0x33, 0x34, 0x36, 0x37, 0x39, 0x3a, 0x3c, 0x3d, 0x3f, 0x40, 0x42, 0x43, 0x45, 0x46, 0x48, 0x49, 0x4b, 0x4c, 0x4e, 0x4f, 0x51, 0x52, 0x54, 0x55, 0x57, 0x58, 0x5a, 0x5b, 0x5d, 0x5e, 0x60, 0x61, 0x63, 0x64, 0x66, 0x67, 0x69, 0x6a, 0x6c, 0x6d, 0x6f, 0x70, 0x72, 0x73, 0x75, 0x76, 0x78, 0x79, 0x7b, 0x7c, 0x7e, 0x7f, 0x81, 0x82, 0x84, 0x85, 0x87, 0x88, 0x8a, 0x8b, 0x8d, 0x8e, 0x90, 0x91, 0x93, 0x94, 0x96, 0x97, 0x99, 0x9a, 0x9c, 0x9d, 0x9f, 0xa0, 0xa2, 0xa3, 0xa5, 0xa6, 0xa8, 0xa9, 0xab, 0xac, 0xae, 0xaf, 0xb1, 0xb2, 0xb4, 0xb5, 0xb7, 0xb8, 0xba, 0xbb, 0xbd, 0xbe, 0xc0, 0xc1, 0xc3, 0xc4, 0xc6, 0xc7, 0xc9, 0xca, 0xcc, 0xcd, 0xcf, 0xd0, 0xd2, 0xd3, 0xd5, 0xd6, 0xd8, 0xd9, 0xdb, 0xdc, 0xde, 0xdf, 0xe1, 0xe2, 0xe4, 0xe5, 0xe7, 0xe8, 0xea, 0xeb, 0xed, 0xee, 0xf0, 0xf1, 0xf3, 0xf4, 0xf6, 0xf7, 0xf9, 0xfa, 0xfc, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; // ./a.out 1.125 | xxd -i -c 8 # value + (value >> 3) const unsigned char ColorLUT::PRE_MULTIPLY_1_125[256] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfc, 0xfd, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; #endif // ./a.out 0.75 | xxd -i -c 8 # (value >> 1) + (value >> 2)) const unsigned char ColorLUT::PRE_MULTIPLY_0_75[256] = { 0x00, 0x00, 0x01, 0x02, 0x03, 0x03, 0x04, 0x05, 0x06, 0x06, 0x07, 0x08, 0x09, 0x09, 0x0a, 0x0b, 0x0c, 0x0c, 0x0d, 0x0e, 0x0f, 0x0f, 0x10, 0x11, 0x12, 0x12, 0x13, 0x14, 0x15, 0x15, 0x16, 0x17, 0x18, 0x18, 0x19, 0x1a, 0x1b, 0x1b, 0x1c, 0x1d, 0x1e, 0x1e, 0x1f, 0x20, 0x21, 0x21, 0x22, 0x23, 0x24, 0x24, 0x25, 0x26, 0x27, 0x27, 0x28, 0x29, 0x2a, 0x2a, 0x2b, 0x2c, 0x2d, 0x2d, 0x2e, 0x2f, 0x30, 0x30, 0x31, 0x32, 0x33, 0x33, 0x34, 0x35, 0x36, 0x36, 0x37, 0x38, 0x39, 0x39, 0x3a, 0x3b, 0x3c, 0x3c, 0x3d, 0x3e, 0x3f, 0x3f, 0x40, 0x41, 0x42, 0x42, 0x43, 0x44, 0x45, 0x45, 0x46, 0x47, 0x48, 0x48, 0x49, 0x4a, 0x4b, 0x4b, 0x4c, 0x4d, 0x4e, 0x4e, 0x4f, 0x50, 0x51, 0x51, 0x52, 0x53, 0x54, 0x54, 0x55, 0x56, 0x57, 0x57, 0x58, 0x59, 0x5a, 0x5a, 0x5b, 0x5c, 0x5d, 0x5d, 0x5e, 0x5f, 0x60, 0x60, 0x61, 0x62, 0x63, 0x63, 0x64, 0x65, 0x66, 0x66, 0x67, 0x68, 0x69, 0x69, 0x6a, 0x6b, 0x6c, 0x6c, 0x6d, 0x6e, 0x6f, 0x6f, 0x70, 0x71, 0x72, 0x72, 0x73, 0x74, 0x75, 0x75, 0x76, 0x77, 0x78, 0x78, 0x79, 0x7a, 0x7b, 0x7b, 0x7c, 0x7d, 0x7e, 0x7e, 0x7f, 0x80, 0x81, 0x81, 0x82, 0x83, 0x84, 0x84, 0x85, 0x86, 0x87, 0x87, 0x88, 0x89, 0x8a, 0x8a, 0x8b, 0x8c, 0x8d, 0x8d, 0x8e, 0x8f, 0x90, 0x90, 0x91, 0x92, 0x93, 0x93, 0x94, 0x95, 0x96, 0x96, 0x97, 0x98, 0x99, 0x99, 0x9a, 0x9b, 0x9c, 0x9c, 0x9d, 0x9e, 0x9f, 0x9f, 0xa0, 0xa1, 0xa2, 0xa2, 0xa3, 0xa4, 0xa5, 0xa5, 0xa6, 0xa7, 0xa8, 0xa8, 0xa9, 0xaa, 0xab, 0xab, 0xac, 0xad, 0xae, 0xae, 0xaf, 0xb0, 0xb1, 0xb1, 0xb2, 0xb3, 0xb4, 0xb4, 0xb5, 0xb6, 0xb7, 0xb7, 0xb8, 0xb9, 0xba, 0xba, 0xbb, 0xbc, 0xbd, 0xbd, 0xbe, 0xbf }; // created by: // // #include // #include // #include // // int main(int argc, char const *argv[]) { // // size_t i; // unsigned char c; // unsigned int v; // unsigned int s = 4; // // if (argc > 1) { // s = atoi(argv[1]); // } // // for (i = 0; i < 256; ++i) { // v = i + ((0xff - i) / s); // c = (unsigned char)v; // write(1, &c, 1); // } // // return 0; // } // // math behind: // // rgb-color-space forms a cube. to make // something "brighter" one has to nudge a // given color towards "white" (255, 255, 255). // we use simple vector math to do this: // // (nred ) (red ) ((255) (red )) // (ngreen) = (green) + s * ((255) - (green)) // (nblue ) (blue ) ((255) (blue )) // // this approach is better than just multiplying // a given color by a factor (ColorLUT::PRE_MULTIPLY*) // example: // // brighten_via_premultiply_*(#ff0000) = #ff0000 // brighten_via_brighter_4(#ff0000) = #ffef3f // // right now the calculation of 's' is pretty // straightforward: it is just 1/nth of the length // of the vector-component. a more precise approach // would calculate the length of the vector via // sqrt(red * red + green * green + blue * blue) and // scale that value down, allthough this would // need either adhoc-computation or a more advanced // lookup-table. right now the simple approach is // sufficient. // // to make a color "darker" one has to nudge the // color towards "black" (0, 0, 0). the formula // from above changes to // // (nred) = (0) + s * ((red) - 0) // ... // // which simplifies down to (s * red) .. which is // covered by PRE_MULTIPLY_0_75 already. // ./a.out 4 | xxd -i -c 8 const unsigned char ColorLUT::BRIGHTER_4[256] = { 0x3f, 0x40, 0x41, 0x42, 0x42, 0x43, 0x44, 0x45, 0x45, 0x46, 0x47, 0x48, 0x48, 0x49, 0x4a, 0x4b, 0x4b, 0x4c, 0x4d, 0x4e, 0x4e, 0x4f, 0x50, 0x51, 0x51, 0x52, 0x53, 0x54, 0x54, 0x55, 0x56, 0x57, 0x57, 0x58, 0x59, 0x5a, 0x5a, 0x5b, 0x5c, 0x5d, 0x5d, 0x5e, 0x5f, 0x60, 0x60, 0x61, 0x62, 0x63, 0x63, 0x64, 0x65, 0x66, 0x66, 0x67, 0x68, 0x69, 0x69, 0x6a, 0x6b, 0x6c, 0x6c, 0x6d, 0x6e, 0x6f, 0x6f, 0x70, 0x71, 0x72, 0x72, 0x73, 0x74, 0x75, 0x75, 0x76, 0x77, 0x78, 0x78, 0x79, 0x7a, 0x7b, 0x7b, 0x7c, 0x7d, 0x7e, 0x7e, 0x7f, 0x80, 0x81, 0x81, 0x82, 0x83, 0x84, 0x84, 0x85, 0x86, 0x87, 0x87, 0x88, 0x89, 0x8a, 0x8a, 0x8b, 0x8c, 0x8d, 0x8d, 0x8e, 0x8f, 0x90, 0x90, 0x91, 0x92, 0x93, 0x93, 0x94, 0x95, 0x96, 0x96, 0x97, 0x98, 0x99, 0x99, 0x9a, 0x9b, 0x9c, 0x9c, 0x9d, 0x9e, 0x9f, 0x9f, 0xa0, 0xa1, 0xa2, 0xa2, 0xa3, 0xa4, 0xa5, 0xa5, 0xa6, 0xa7, 0xa8, 0xa8, 0xa9, 0xaa, 0xab, 0xab, 0xac, 0xad, 0xae, 0xae, 0xaf, 0xb0, 0xb1, 0xb1, 0xb2, 0xb3, 0xb4, 0xb4, 0xb5, 0xb6, 0xb7, 0xb7, 0xb8, 0xb9, 0xba, 0xba, 0xbb, 0xbc, 0xbd, 0xbd, 0xbe, 0xbf, 0xc0, 0xc0, 0xc1, 0xc2, 0xc3, 0xc3, 0xc4, 0xc5, 0xc6, 0xc6, 0xc7, 0xc8, 0xc9, 0xc9, 0xca, 0xcb, 0xcc, 0xcc, 0xcd, 0xce, 0xcf, 0xcf, 0xd0, 0xd1, 0xd2, 0xd2, 0xd3, 0xd4, 0xd5, 0xd5, 0xd6, 0xd7, 0xd8, 0xd8, 0xd9, 0xda, 0xdb, 0xdb, 0xdc, 0xdd, 0xde, 0xde, 0xdf, 0xe0, 0xe1, 0xe1, 0xe2, 0xe3, 0xe4, 0xe4, 0xe5, 0xe6, 0xe7, 0xe7, 0xe8, 0xe9, 0xea, 0xea, 0xeb, 0xec, 0xed, 0xed, 0xee, 0xef, 0xf0, 0xf0, 0xf1, 0xf2, 0xf3, 0xf3, 0xf4, 0xf5, 0xf6, 0xf6, 0xf7, 0xf8, 0xf9, 0xf9, 0xfa, 0xfb, 0xfc, 0xfc, 0xfd, 0xfe, 0xff }; // ./a.out 8 | xxd -i -c 8 const unsigned char ColorLUT::BRIGHTER_8[256] = { 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x57, 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff }; #if 0 // unused // ./a.out 4 | xxd -i -c 8 const unsigned char ColorLUT::BRIGHTER_16[256] = { 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff }; #endif } fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Command.hh0000644000175000017500000000013212106662425017570 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.443812461 30 ctime=1360750008.615811615 fluxbox-1.3.5/src/FbTk/Command.hh0000644000175000017500000000313312106662425015617 0ustar00mgmg00000000000000// Command.hh for FbTk - Fluxbox Toolkit // Copyright (c) 2002 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_COMMAND_HH #define FBTK_COMMAND_HH #include "Slot.hh" namespace FbTk { /** Interface class for commands * Actually, it's very similar to Slot (execute instead of operator()) and could be removed at * some point. */ template class Command: public Slot { public: virtual Ret execute() = 0; virtual Ret operator()() { return execute(); } }; } // end namespace FbTk #endif // FBTK_COMMAND_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Color.hh0000644000175000017500000000013212106662425017270 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.443812461 30 ctime=1360750008.615811615 fluxbox-1.3.5/src/FbTk/Color.hh0000644000175000017500000000552012106662425015321 0ustar00mgmg00000000000000// Color.hh for Fluxbox Window Manager // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // from Image.hh for Blackbox - an X11 Window manager // Copyright (c) 1997 - 2000 Brad Hughes (bhughes@tcac.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_COLOR_HH #define FBTK_COLOR_HH namespace FbTk { /// Allocates rgb color and pixel value class Color { public: Color(); explicit Color(unsigned long pixel); Color(const Color &col_copy); Color(unsigned short red, unsigned short green, unsigned short blue, int screen); /// parses and sets rgb and pixel value from a string Color(const char *color_string, int screen); ~Color(); /// parses and sets rgb and pixel value from a string bool setFromString(const char *color_string, int screen); /// TODO don't like this void setPixel(unsigned long pixel) { m_pixel = pixel; } Color &operator = (const Color &col_copy); bool isAllocated() const { return m_allocated; } unsigned short red() const { return m_red; } unsigned short green() const { return m_green; } unsigned short blue() const { return m_blue; } unsigned long pixel() const { return m_pixel; } /// @return true if the color name in color_string is resolved, else false static bool validColorString(const char *color_string, int screen); private: void free(); void copy(const Color &col); void allocate(unsigned short red, unsigned short green, unsigned short blue, int screen); void setAllocated(bool a) { m_allocated = a; } void setRGB(unsigned short red, unsigned short green, unsigned short blue); // stored in [0 - 255] range unsigned short m_red, m_green, m_blue; unsigned long m_pixel; bool m_allocated; int m_screen; }; } // end namespace FbTk #endif // FBTK_COLOR_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Color.cc0000644000175000017500000000013212106662425017256 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.443812461 30 ctime=1360750008.615811615 fluxbox-1.3.5/src/FbTk/Color.cc0000644000175000017500000001151312106662425015306 0ustar00mgmg00000000000000// Color.cc for Fluxbox window manager // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "Color.hh" #include "App.hh" #include "StringUtil.hh" #include "I18n.hh" #include using std::cerr; using std::endl; using std::string; namespace FbTk { Color::Color(): m_red(0), m_green(0), m_blue(0), m_pixel(0), m_allocated(false), m_screen(0) { } Color::Color(const Color &col_copy): m_red(0), m_green(0), m_blue(0), m_pixel(0), m_allocated(false), m_screen(0) { copy(col_copy); } Color::Color(unsigned short red, unsigned short green, unsigned short blue, int screen): m_red(red), m_green(green), m_blue(blue), m_pixel(0), m_allocated(false), m_screen(screen) { allocate(red, green, blue, screen); } Color::Color(const char *color_string, int screen): m_red(0), m_green(0), m_blue(0), m_pixel(0), m_allocated(false), m_screen(screen) { setFromString(color_string, screen); } Color::~Color() { free(); } bool Color::setFromString(const char *color_string, int screen) { if (color_string == 0) { free(); return false; } string color_string_tmp = color_string; StringUtil::removeFirstWhitespace(color_string_tmp); StringUtil::removeTrailingWhitespace(color_string_tmp); Display *disp = App::instance()->display(); Colormap colm = DefaultColormap(disp, screen); XColor color; if (! XParseColor(disp, colm, color_string_tmp.c_str(), &color)) return false; else if (! XAllocColor(disp, colm, &color)) return false; setPixel(color.pixel); setRGB(color.red / 256, color.green / 256, color.blue / 256); setAllocated(true); m_screen = screen; return true; } bool Color::validColorString(const char *color_string, int screen) { XColor color; Display *disp = App::instance()->display(); Colormap colm = DefaultColormap(disp, screen); // trim white space string color_string_tmp = color_string; StringUtil::removeFirstWhitespace(color_string_tmp); StringUtil::removeTrailingWhitespace(color_string_tmp); return XParseColor(disp, colm, color_string_tmp.c_str(), &color) != 0; } Color &Color::operator = (const Color &col_copy) { // check for aliasing if (this == &col_copy) return *this; copy(col_copy); return *this; } void Color::free() { if (isAllocated()) { unsigned long pixel = m_pixel; Display *disp = App::instance()->display(); XFreeColors(disp, DefaultColormap(disp, m_screen), &pixel, 1, 0); setPixel(0); setRGB(0, 0, 0); setAllocated(false); } } void Color::copy(const Color &col_copy) { if (!col_copy.isAllocated()) { free(); setRGB(col_copy.red(), col_copy.green(), col_copy.blue()); setPixel(col_copy.pixel()); return; } allocate(col_copy.red()*0x101, col_copy.green()*0x101, col_copy.blue()*0x101, col_copy.m_screen); } void Color::allocate(unsigned short red, unsigned short green, unsigned short blue, int screen) { Display *disp = App::instance()->display(); XColor color; // fill xcolor structure color.red = red; color.green = green; color.blue = blue; if (!XAllocColor(disp, DefaultColormap(disp, screen), &color)) { _FB_USES_NLS; cerr<<"FbTk::Color: "<<_FBTK_CONSOLETEXT(Error, ColorAllocation, "Allocation error.", "XAllocColor failed...")< #else #include #endif #ifdef HAVE_CSTDLIB #include #else #include #endif #include namespace FbTk { App *App::s_app = 0; App *App::instance() { if (s_app == 0) throw std::string("You must create an instance of FbTk::App first!"); return s_app; } App::App(const char *displayname):m_done(false), m_display(0) { if (s_app != 0) throw std::string("Can't create more than one instance of FbTk::App"); s_app = this; // this allows the use of std::string.c_str(), which returns // a blank string, rather than a null string, so we make them equivalent if (displayname != 0 && displayname[0] == '\0') displayname = 0; m_display = XOpenDisplay(displayname); if (!m_display) { if (displayname) { throw std::string("Couldn't connect to XServer") + displayname; } else { throw std::string("Couldn't connect to XServer passing null display"); } } FbStringUtil::init(); } App::~App() { if (m_display != 0) { Font::shutdown(); XCloseDisplay(m_display); m_display = 0; } s_app = 0; } void App::sync(bool discard) { XSync(display(), discard); } void App::eventLoop() { XEvent ev; while (!m_done) { XNextEvent(display(), &ev); EventManager::instance()->handleEvent(ev); } } void App::end() { m_done = true; //end loop in App::eventLoop } bool App::setenv(const char* key, const char* value) { if (!key || !*key) return false; static std::set stored; const size_t key_size = strlen(key); const size_t value_size = value ? strlen(value) : 0; char* newenv = new char[key_size + value_size + 2]; if (newenv) { char* oldenv = getenv(key); // oldenv points to the value .. we have to go back a bit if (oldenv && stored.find(oldenv - (key_size + 1)) != stored.end()) oldenv -= (key_size + 1); else oldenv = NULL; memset(newenv, 0, key_size + value_size + 2); strcat(newenv, key); strcat(newenv, "="); if (value_size > 0) strcat(newenv, value); if (putenv(newenv) == 0) { if (oldenv) { stored.erase(oldenv); delete[] oldenv; } stored.insert(newenv); } return true; } return false; } } // end namespace FbTk fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/App.hh0000644000175000017500000000013212106662425016732 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.439812461 30 ctime=1360750008.619811615 fluxbox-1.3.5/src/FbTk/App.hh0000644000175000017500000000444512106662425014770 0ustar00mgmg00000000000000// App.hh // Copyright (c) 2002 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBTK_APP_HH #define FBTK_APP_HH #include namespace FbTk { /// Main class for applications, every application must create an instance of this class /** * Usage: \n * App app; \n * ... \n * init some other stuff; \n * ... \n * main loop starts here: \n * app.eventLoop(); \n * * To end main loop you call App::instance()->end() */ class App { public: /// @return singleton instance of App static App *instance(); /// creates a display connection explicit App(const char *displayname=0); virtual ~App(); /// display connection Display *display() const { return m_display; } void sync(bool discard); /// starts event loop virtual void eventLoop(); /// forces an end to event loop void end(); bool done() const { return m_done; } // the setenv()-routine is not everywhere available and // putenv() doesnt manage the strings in the environment // and hence we have to do that on our own to avoid memleaking static bool setenv(const char* key, const char* value); private: static App *s_app; bool m_done; Display *m_display; }; } // end namespace FbTk #endif // FBTK_APP_HH fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662604017735 xustar000000000000000030 mtime=1360749956.499811948 30 atime=1360750002.987811651 30 ctime=1360750008.619811615 fluxbox-1.3.5/src/FbTk/Makefile.in0000644000175000017500000005547412106662604016003 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = src/FbTk DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) AR = ar ARFLAGS = cru libFbTk_a_AR = $(AR) $(ARFLAGS) libFbTk_a_LIBADD = am__libFbTk_a_SOURCES_DIST = App.hh App.cc Color.cc Color.hh \ Command.hh ColorLUT.cc ColorLUT.hh Accessor.hh DefaultValue.hh \ FileUtil.hh FileUtil.cc EventHandler.hh EventManager.hh \ EventManager.cc FbWindow.hh FbWindow.cc Font.cc Font.hh \ FontImp.hh I18n.cc I18n.hh CommandParser.hh RadioMenuItem.hh \ ImageControl.hh ImageControl.cc LogicCommands.hh \ LogicCommands.cc MacroCommand.hh MacroCommand.cc Menu.hh \ Menu.cc MenuItem.hh MenuItem.cc BoolMenuItem.hh IntMenuItem.hh \ MultiButtonMenuItem.hh MultiButtonMenuItem.cc MenuTheme.hh \ MenuTheme.cc NotCopyable.hh BorderTheme.hh BorderTheme.cc \ TextTheme.hh TextTheme.cc RefCount.hh SimpleCommand.hh \ SignalHandler.cc SignalHandler.hh TextUtils.hh TextUtils.cc \ Orientation.hh Texture.cc Texture.hh TextureRender.hh \ TextureRender.cc Shape.hh Shape.cc Theme.hh Theme.cc \ ThemeItems.cc Timer.hh Timer.cc FbTime.cc FbTime.hh \ XFontImp.cc XFontImp.hh Button.hh Button.cc TextButton.hh \ TextButton.cc Container.hh Container.cc MultLayers.cc \ MultLayers.hh Layer.cc Layer.hh LayerItem.cc LayerItem.hh \ Resource.hh Resource.cc StringUtil.hh StringUtil.cc Parser.hh \ Parser.cc RegExp.hh RegExp.cc FbString.hh FbString.cc \ AutoReloadHelper.hh AutoReloadHelper.cc Transparent.hh \ Transparent.cc FbPixmap.hh FbPixmap.cc FbDrawable.hh \ FbDrawable.cc XrmDatabaseHelper.hh Image.hh Image.cc \ PixmapWithMask.hh Compose.hh CompareEqual.hh TextBox.hh \ TextBox.cc GContext.hh GContext.cc KeyUtil.hh KeyUtil.cc \ MenuSeparator.hh MenuSeparator.cc stringstream.hh TypeAhead.hh \ SearchResult.hh SearchResult.cc ITypeAheadable.hh Select2nd.hh \ STLUtil.hh CachedPixmap.hh CachedPixmap.cc Slot.hh Signal.hh \ MemFun.hh SelectArg.hh Util.hh RelCalcHelper.hh \ RelCalcHelper.cc ImageXPM.hh ImageXPM.cc XftFontImp.hh \ XftFontImp.cc XmbFontImp.hh XmbFontImp.cc ImageImlib2.hh \ ImageImlib2.cc @XPM_TRUE@am__objects_1 = ImageXPM.$(OBJEXT) @XFT_TRUE@am__objects_2 = XftFontImp.$(OBJEXT) @MULTIBYTE_TRUE@am__objects_3 = XmbFontImp.$(OBJEXT) @IMLIB2_TRUE@am__objects_4 = ImageImlib2.$(OBJEXT) am_libFbTk_a_OBJECTS = App.$(OBJEXT) Color.$(OBJEXT) \ ColorLUT.$(OBJEXT) FileUtil.$(OBJEXT) EventManager.$(OBJEXT) \ FbWindow.$(OBJEXT) Font.$(OBJEXT) I18n.$(OBJEXT) \ ImageControl.$(OBJEXT) LogicCommands.$(OBJEXT) \ MacroCommand.$(OBJEXT) Menu.$(OBJEXT) MenuItem.$(OBJEXT) \ MultiButtonMenuItem.$(OBJEXT) MenuTheme.$(OBJEXT) \ BorderTheme.$(OBJEXT) TextTheme.$(OBJEXT) \ SignalHandler.$(OBJEXT) TextUtils.$(OBJEXT) Texture.$(OBJEXT) \ TextureRender.$(OBJEXT) Shape.$(OBJEXT) Theme.$(OBJEXT) \ ThemeItems.$(OBJEXT) Timer.$(OBJEXT) FbTime.$(OBJEXT) \ XFontImp.$(OBJEXT) Button.$(OBJEXT) TextButton.$(OBJEXT) \ Container.$(OBJEXT) MultLayers.$(OBJEXT) Layer.$(OBJEXT) \ LayerItem.$(OBJEXT) Resource.$(OBJEXT) StringUtil.$(OBJEXT) \ Parser.$(OBJEXT) RegExp.$(OBJEXT) FbString.$(OBJEXT) \ AutoReloadHelper.$(OBJEXT) Transparent.$(OBJEXT) \ FbPixmap.$(OBJEXT) FbDrawable.$(OBJEXT) Image.$(OBJEXT) \ TextBox.$(OBJEXT) GContext.$(OBJEXT) KeyUtil.$(OBJEXT) \ MenuSeparator.$(OBJEXT) SearchResult.$(OBJEXT) \ CachedPixmap.$(OBJEXT) RelCalcHelper.$(OBJEXT) \ $(am__objects_1) $(am__objects_2) $(am__objects_3) \ $(am__objects_4) libFbTk_a_OBJECTS = $(am_libFbTk_a_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libFbTk_a_SOURCES) DIST_SOURCES = $(am__libFbTk_a_SOURCES_DIST) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_LIBRARIES = libFbTk.a AM_CPPFLAGS = @CPPFLAGS@ @XFT_TRUE@xft_SOURCE = XftFontImp.hh XftFontImp.cc @MULTIBYTE_TRUE@xmb_SOURCE = XmbFontImp.hh XmbFontImp.cc @XPM_TRUE@xpm_SOURCE = ImageXPM.hh ImageXPM.cc @IMLIB2_TRUE@imlib2_SOURCE = ImageImlib2.hh ImageImlib2.cc libFbTk_a_SOURCES = App.hh App.cc \ Color.cc Color.hh Command.hh \ ColorLUT.cc ColorLUT.hh \ Accessor.hh DefaultValue.hh \ FileUtil.hh FileUtil.cc \ EventHandler.hh EventManager.hh EventManager.cc \ FbWindow.hh FbWindow.cc Font.cc Font.hh FontImp.hh \ I18n.cc I18n.hh \ CommandParser.hh \ RadioMenuItem.hh \ ImageControl.hh ImageControl.cc \ LogicCommands.hh LogicCommands.cc \ MacroCommand.hh MacroCommand.cc \ Menu.hh Menu.cc MenuItem.hh MenuItem.cc \ BoolMenuItem.hh IntMenuItem.hh \ MultiButtonMenuItem.hh MultiButtonMenuItem.cc \ MenuTheme.hh MenuTheme.cc NotCopyable.hh \ BorderTheme.hh BorderTheme.cc TextTheme.hh TextTheme.cc \ RefCount.hh SimpleCommand.hh SignalHandler.cc SignalHandler.hh \ TextUtils.hh TextUtils.cc Orientation.hh \ Texture.cc Texture.hh TextureRender.hh TextureRender.cc \ Shape.hh Shape.cc \ Theme.hh Theme.cc ThemeItems.cc Timer.hh Timer.cc \ FbTime.cc FbTime.hh \ XFontImp.cc XFontImp.hh \ Button.hh Button.cc \ TextButton.hh TextButton.cc \ Container.hh Container.cc \ MultLayers.cc MultLayers.hh \ Layer.cc Layer.hh LayerItem.cc LayerItem.hh \ Resource.hh Resource.cc \ StringUtil.hh StringUtil.cc Parser.hh Parser.cc \ RegExp.hh RegExp.cc \ FbString.hh FbString.cc \ AutoReloadHelper.hh AutoReloadHelper.cc \ Transparent.hh Transparent.cc \ FbPixmap.hh FbPixmap.cc \ FbDrawable.hh FbDrawable.cc \ XrmDatabaseHelper.hh \ Image.hh Image.cc \ PixmapWithMask.hh \ Compose.hh CompareEqual.hh \ TextBox.hh TextBox.cc \ GContext.hh GContext.cc \ KeyUtil.hh KeyUtil.cc \ MenuSeparator.hh MenuSeparator.cc \ stringstream.hh \ TypeAhead.hh SearchResult.hh SearchResult.cc ITypeAheadable.hh \ Select2nd.hh STLUtil.hh \ CachedPixmap.hh CachedPixmap.cc \ Slot.hh Signal.hh MemFun.hh SelectArg.hh \ Util.hh \ RelCalcHelper.hh RelCalcHelper.cc \ ${xpm_SOURCE} \ ${xft_SOURCE} \ ${xmb_SOURCE} \ $(imlib2_SOURCE) all: all-am .SUFFIXES: .SUFFIXES: .cc .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/FbTk/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/FbTk/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) libFbTk.a: $(libFbTk_a_OBJECTS) $(libFbTk_a_DEPENDENCIES) $(EXTRA_libFbTk_a_DEPENDENCIES) -rm -f libFbTk.a $(libFbTk_a_AR) libFbTk.a $(libFbTk_a_OBJECTS) $(libFbTk_a_LIBADD) $(RANLIB) libFbTk.a mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/App.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AutoReloadHelper.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/BorderTheme.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Button.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CachedPixmap.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Color.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ColorLUT.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Container.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/EventManager.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FbDrawable.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FbPixmap.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FbString.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FbTime.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FbWindow.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FileUtil.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Font.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GContext.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/I18n.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Image.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ImageControl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ImageImlib2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ImageXPM.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/KeyUtil.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Layer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LayerItem.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LogicCommands.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MacroCommand.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Menu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MenuItem.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MenuSeparator.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MenuTheme.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MultLayers.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MultiButtonMenuItem.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Parser.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RegExp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RelCalcHelper.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Resource.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SearchResult.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Shape.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SignalHandler.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StringUtil.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TextBox.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TextButton.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TextTheme.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TextUtils.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Texture.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TextureRender.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Theme.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ThemeItems.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Timer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Transparent.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XFontImp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XftFontImp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/XmbFontImp.Po@am__quote@ .cc.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-noinstLIBRARIES ctags distclean distclean-compile \ distclean-generic distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/src/FbTk/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425017725 xustar000000000000000030 mtime=1360749845.891812656 30 atime=1360749854.331812602 30 ctime=1360750008.619811615 fluxbox-1.3.5/src/FbTk/Makefile.am0000644000175000017500000000416412106662425015761 0ustar00mgmg00000000000000noinst_LIBRARIES = libFbTk.a AM_CPPFLAGS=@CPPFLAGS@ if XFT xft_SOURCE= XftFontImp.hh XftFontImp.cc endif if MULTIBYTE xmb_SOURCE= XmbFontImp.hh XmbFontImp.cc endif if XPM xpm_SOURCE= ImageXPM.hh ImageXPM.cc endif if IMLIB2 imlib2_SOURCE= ImageImlib2.hh ImageImlib2.cc endif libFbTk_a_SOURCES = App.hh App.cc \ Color.cc Color.hh Command.hh \ ColorLUT.cc ColorLUT.hh \ Accessor.hh DefaultValue.hh \ FileUtil.hh FileUtil.cc \ EventHandler.hh EventManager.hh EventManager.cc \ FbWindow.hh FbWindow.cc Font.cc Font.hh FontImp.hh \ I18n.cc I18n.hh \ CommandParser.hh \ RadioMenuItem.hh \ ImageControl.hh ImageControl.cc \ LogicCommands.hh LogicCommands.cc \ MacroCommand.hh MacroCommand.cc \ Menu.hh Menu.cc MenuItem.hh MenuItem.cc \ BoolMenuItem.hh IntMenuItem.hh \ MultiButtonMenuItem.hh MultiButtonMenuItem.cc \ MenuTheme.hh MenuTheme.cc NotCopyable.hh \ BorderTheme.hh BorderTheme.cc TextTheme.hh TextTheme.cc \ RefCount.hh SimpleCommand.hh SignalHandler.cc SignalHandler.hh \ TextUtils.hh TextUtils.cc Orientation.hh \ Texture.cc Texture.hh TextureRender.hh TextureRender.cc \ Shape.hh Shape.cc \ Theme.hh Theme.cc ThemeItems.cc Timer.hh Timer.cc \ FbTime.cc FbTime.hh \ XFontImp.cc XFontImp.hh \ Button.hh Button.cc \ TextButton.hh TextButton.cc \ Container.hh Container.cc \ MultLayers.cc MultLayers.hh \ Layer.cc Layer.hh LayerItem.cc LayerItem.hh \ Resource.hh Resource.cc \ StringUtil.hh StringUtil.cc Parser.hh Parser.cc \ RegExp.hh RegExp.cc \ FbString.hh FbString.cc \ AutoReloadHelper.hh AutoReloadHelper.cc \ Transparent.hh Transparent.cc \ FbPixmap.hh FbPixmap.cc \ FbDrawable.hh FbDrawable.cc \ XrmDatabaseHelper.hh \ Image.hh Image.cc \ PixmapWithMask.hh \ Compose.hh CompareEqual.hh \ TextBox.hh TextBox.cc \ GContext.hh GContext.cc \ KeyUtil.hh KeyUtil.cc \ MenuSeparator.hh MenuSeparator.cc \ stringstream.hh \ TypeAhead.hh SearchResult.hh SearchResult.cc ITypeAheadable.hh \ Select2nd.hh STLUtil.hh \ CachedPixmap.hh CachedPixmap.cc \ Slot.hh Signal.hh MemFun.hh SelectArg.hh \ Util.hh \ RelCalcHelper.hh RelCalcHelper.cc \ ${xpm_SOURCE} \ ${xft_SOURCE} \ ${xmb_SOURCE} \ $(imlib2_SOURCE) fluxbox-1.3.5/src/PaxHeaders.25974/SystemTray.cc0000644000175000017500000000013212106662425017476 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.395812461 30 ctime=1360750008.619811615 fluxbox-1.3.5/src/SystemTray.cc0000644000175000017500000004416712106662425015541 0ustar00mgmg00000000000000// SystemTray.cc // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "SystemTray.hh" #include "FbTk/EventManager.hh" #include "FbTk/ImageControl.hh" #include "FbTk/TextUtils.hh" #include "FbTk/MemFun.hh" #include "AtomHandler.hh" #include "fluxbox.hh" #include "WinClient.hh" #include "Screen.hh" #include "ButtonTheme.hh" #include "Debug.hh" #include #include #include using std::string; using std::endl; using std::hex; using std::dec; /// helper class for tray windows, so we dont call XDestroyWindow class TrayWindow: public FbTk::FbWindow { public: TrayWindow(Window win, bool using_xembed):FbTk::FbWindow(win), m_visible(false), m_xembedded(using_xembed) { setEventMask(PropertyChangeMask); } bool isVisible() { return m_visible; } bool isXEmbedded() { return m_xembedded; } void show() { if (!m_visible) { m_visible = true; FbTk::FbWindow::show(); } } void hide() { if (m_visible) { m_visible = false; FbTk::FbWindow::hide(); } } /* Flags for _XEMBED_INFO */ #define XEMBED_MAPPED (1 << 0) bool getMappedDefault() const { Atom actual_type; int actual_format; unsigned long nitems, bytes_after; unsigned long *prop; bool mapped = false; Atom embed_info = SystemTray::getXEmbedInfoAtom(); if (property(embed_info, 0l, 2l, false, embed_info, &actual_type, &actual_format, &nitems, &bytes_after, (unsigned char **) &prop) && prop != 0) { mapped = (bool)(static_cast(prop[1]) & XEMBED_MAPPED); XFree(static_cast(prop)); fbdbg<<"(SystemTray::TrayWindow::getMappedDefault(): XEMBED_MAPPED = "<screenNumber() != m_tray.window().screenNumber()) || (winclient && winclient->screenNumber() != m_tray.window().screenNumber()) ) return false; return m_tray.clientMessage(ce); } void initForScreen(BScreen &screen) { }; void setupFrame(FluxboxWindow &win) { }; void setupClient(WinClient &winclient) { // must be on the same screen if (winclient.screenNumber() != m_tray.window().screenNumber()) return; // we dont want a managed window if (winclient.fbwindow() != 0) return; // if not kde dockapp... if (!winclient.screen().isKdeDockapp(winclient.window())) return; // if not our screen... if (winclient.screenNumber() != m_tray.window().screenNumber()) return; winclient.setEventMask(StructureNotifyMask | SubstructureNotifyMask | EnterWindowMask); m_tray.addClient(winclient.window(), false); }; void updateWorkarea(BScreen &) { } void updateFocusedWindow(BScreen &, Window) { } void updateClientList(BScreen &screen) { }; void updateWorkspaceNames(BScreen &screen) { }; void updateCurrentWorkspace(BScreen &screen) { }; void updateWorkspaceCount(BScreen &screen) { }; void updateFrameClose(FluxboxWindow &win) { }; void updateClientClose(WinClient &winclient) { }; void updateWorkspace(FluxboxWindow &win) { }; void updateState(FluxboxWindow &win) { }; void updateHints(FluxboxWindow &win) { }; void updateLayer(FluxboxWindow &win) { }; virtual bool propertyNotify(WinClient &winclient, Atom the_property) { return false; } private: SystemTray &m_tray; }; SystemTray::SystemTray(const FbTk::FbWindow& parent, FbTk::ThemeProxy &theme, BScreen& screen): ToolbarItem(ToolbarItem::FIXED), m_window(parent, 0, 0, 1, 1, ExposureMask | ButtonPressMask | ButtonReleaseMask | SubstructureNotifyMask | SubstructureRedirectMask), m_theme(theme), m_screen(screen), m_pixmap(0), m_num_visible_clients(0), m_selection_owner(m_window, 0, 0, 1, 1, SubstructureNotifyMask, false, false, CopyFromParent, InputOnly) { FbTk::EventManager::instance()->add(*this, m_window); FbTk::EventManager::instance()->add(*this, m_selection_owner); // setup signals join(m_theme->reconfigSig(), FbTk::MemFun(*this, &SystemTray::update)); join(screen.bgChangeSig(), FbTk::MemFunIgnoreArgs(*this, &SystemTray::update)); Fluxbox* fluxbox = Fluxbox::instance(); Display *disp = fluxbox->display(); // get selection owner and see if it's free string atom_name = getNetSystemTrayAtom(m_window.screenNumber()); Atom tray_atom = XInternAtom(disp, atom_name.c_str(), False); Window owner = XGetSelectionOwner(disp, tray_atom); if (owner != 0) { fbdbg<<"(SystemTray(const FbTk::FbWindow)): can't set owner!"<setName(atom_name); fluxbox->addAtomHandler(m_handler.get()); // send selection owner msg Window root_window = m_screen.rootWindow().window(); XEvent ce; ce.xclient.type = ClientMessage; ce.xclient.message_type = XInternAtom(disp, "MANAGER", False); ce.xclient.display = disp; ce.xclient.window = root_window; ce.xclient.format = 32; ce.xclient.data.l[0] = CurrentTime; // timestamp ce.xclient.data.l[1] = tray_atom; // manager selection atom ce.xclient.data.l[2] = m_selection_owner.window(); // the window owning the selection ce.xclient.data.l[3] = 0l; // selection specific data ce.xclient.data.l[4] = 0l; // selection specific data XSendEvent(disp, root_window, false, StructureNotifyMask, &ce); update(); } SystemTray::~SystemTray() { // remove us, else fluxbox might delete the memory too Fluxbox* fluxbox = Fluxbox::instance(); fluxbox->removeAtomHandler(m_handler.get()); Display *disp = fluxbox->display(); // get selection owner and see if it's free string atom_name = getNetSystemTrayAtom(m_window.screenNumber()); Atom tray_atom = XInternAtom(disp, atom_name.c_str(), False); // Properly give up selection. XSetSelectionOwner(disp, tray_atom, None, CurrentTime); removeAllClients(); if (m_pixmap) m_screen.imageControl().removeImage(m_pixmap); // ~FbWindow cleans EventManager } void SystemTray::move(int x, int y) { m_window.move(x, y); } void SystemTray::resize(unsigned int width, unsigned int height) { if (width != m_window.width() || height != m_window.height()) { m_window.resize(width, height); if (m_num_visible_clients) rearrangeClients(); resizeSig().emit(); } } void SystemTray::moveResize(int x, int y, unsigned int width, unsigned int height) { if (width != m_window.width() || height != m_window.height()) { m_window.moveResize(x, y, width, height); if (m_num_visible_clients) rearrangeClients(); resizeSig().emit(); } else { move(x, y); } } void SystemTray::hide() { m_window.hide(); } void SystemTray::show() { update(); m_window.show(); } unsigned int SystemTray::width() const { if (orientation() == FbTk::ROT90 || orientation() == FbTk::ROT270) return m_window.width(); return m_num_visible_clients * (height() + 2 * m_theme->border().width()); } unsigned int SystemTray::height() const { if (orientation() == FbTk::ROT0 || orientation() == FbTk::ROT180) return m_window.height(); return m_num_visible_clients * (width() + 2 * m_theme->border().width()); } unsigned int SystemTray::borderWidth() const { return m_window.borderWidth(); } bool SystemTray::clientMessage(const XClientMessageEvent &event) { static const int SYSTEM_TRAY_REQUEST_DOCK = 0; // static const int SYSTEM_TRAY_BEGIN_MESSAGE = 1; // static const int SYSTEM_TRAY_CANCEL_MESSAGE = 2; static Atom systray_opcode_atom = XInternAtom(FbTk::App::instance()->display(), "_NET_SYSTEM_TRAY_OPCODE", False); if (event.message_type == systray_opcode_atom) { int type = event.data.l[1]; if (type == SYSTEM_TRAY_REQUEST_DOCK) { fbdbg<<"SystemTray::clientMessage(const XClientMessageEvent): SYSTEM_TRAY_REQUEST_DOCK"<window() == win) break; } return it; } void SystemTray::addClient(Window win, bool using_xembed) { if (win == 0) return; ClientList::iterator it = findClient(win); if (it != m_clients.end()) return; Display *disp = Fluxbox::instance()->display(); // make sure we have the same screen number XWindowAttributes attr; attr.screen = 0; if (XGetWindowAttributes(disp, win, &attr) != 0 && attr.screen != 0 && XScreenNumberOfScreen(attr.screen) != window().screenNumber()) { return; } TrayWindow *traywin = new TrayWindow(win, using_xembed); fbdbg<<"SystemTray::addClient(Window): 0x"<add(*this, win); traywin->reparent(m_window, 0, 0); traywin->addToSaveSet(); if (using_xembed) { static Atom xembed_atom = XInternAtom(disp, "_XEMBED", False); #define XEMBED_EMBEDDED_NOTIFY 0 // send embedded message XEvent ce; ce.xclient.type = ClientMessage; ce.xclient.message_type = xembed_atom; ce.xclient.display = disp; ce.xclient.window = win; ce.xclient.format = 32; ce.xclient.data.l[0] = CurrentTime; // timestamp ce.xclient.data.l[1] = XEMBED_EMBEDDED_NOTIFY; ce.xclient.data.l[2] = 0l; // The protocol version we support ce.xclient.data.l[3] = m_window.window(); // the window owning the selection ce.xclient.data.l[4] = 0l; // unused XSendEvent(disp, win, false, NoEventMask, &ce); } if (traywin->getMappedDefault()) showClient(traywin); } void SystemTray::removeClient(Window win, bool destroyed) { ClientList::iterator tray_it = findClient(win); if (tray_it == m_clients.end()) return; fbdbg<<"(SystemTray::removeClient(Window)): 0x"<setEventMask(NoEventMask); traywin->removeFromSaveSet(); } hideClient(traywin, destroyed); delete traywin; } void SystemTray::exposeEvent(XExposeEvent &event) { m_window.clear(); } void SystemTray::handleEvent(XEvent &event) { if (event.type == DestroyNotify) { removeClient(event.xdestroywindow.window, true); } else if (event.type == ReparentNotify && event.xreparent.parent != m_window.window()) { removeClient(event.xreparent.window, false); } else if (event.type == UnmapNotify && event.xany.send_event) { // we ignore server-generated events, which can occur // on restart. The ICCCM says that a client must send // a synthetic event for the withdrawn state ClientList::iterator it = findClient(event.xunmap.window); if (it != m_clients.end()) hideClient(*it); } else if (event.type == ConfigureNotify) { // we got configurenotify from an client // check and see if we need to update it's size // and we must reposition and resize them to fit // our toolbar ClientList::iterator it = findClient(event.xconfigure.window); if (it != m_clients.end()) { if (static_cast(event.xconfigure.width) != (*it)->width() || static_cast(event.xconfigure.height) != (*it)->height()) { // the position might differ so we update from our local // copy of position XMoveResizeWindow(FbTk::App::instance()->display(), (*it)->window(), (*it)->x(), (*it)->y(), (*it)->width(), (*it)->height()); // this was why gaim wasn't centring the icon (*it)->sendConfigureNotify(0, 0, (*it)->width(), (*it)->height()); // so toolbar know that we changed size // done inside this loop, because otherwise we can get into nasty looping resizeSig().emit(); } } } else if (event.type == PropertyNotify) { ClientList::iterator it = findClient(event.xproperty.window); if (it != m_clients.end()) { if (event.xproperty.atom == getXEmbedInfoAtom()) { if ((*it)->getMappedDefault()) showClient(*it); else hideClient(*it); } } } } void SystemTray::rearrangeClients() { unsigned int w_rot0 = width(), h_rot0 = height(); const unsigned int bw = m_theme->border().width(); FbTk::translateSize(orientation(), w_rot0, h_rot0); unsigned int trayw = m_num_visible_clients*h_rot0 + bw, trayh = h_rot0; FbTk::translateSize(orientation(), trayw, trayh); resize(trayw, trayh); update(); // move and resize clients ClientList::iterator client_it = m_clients.begin(); ClientList::iterator client_it_end = m_clients.end(); int next_x = bw; for (; client_it != client_it_end; ++client_it) { if (!(*client_it)->isVisible()) continue; int x = next_x, y = bw; next_x += h_rot0+bw; translateCoords(orientation(), x, y, w_rot0, h_rot0); translatePosition(orientation(), x, y, h_rot0, h_rot0, 0); (*client_it)->moveResize(x, y, h_rot0, h_rot0); (*client_it)->sendConfigureNotify(x, y, h_rot0, h_rot0); } } void SystemTray::removeAllClients() { BScreen *screen = Fluxbox::instance()->findScreen(window().screenNumber()); while (!m_clients.empty()) { TrayWindow * traywin = m_clients.back(); traywin->setEventMask(NoEventMask); if (traywin->isXEmbedded()) traywin->hide(); if (screen) traywin->reparent(screen->rootWindow(), 0, 0, false); traywin->removeFromSaveSet(); delete traywin; m_clients.pop_back(); } m_num_visible_clients = 0; } void SystemTray::hideClient(TrayWindow *traywin, bool destroyed) { if (!traywin || !traywin->isVisible()) return; if (!destroyed) traywin->hide(); m_num_visible_clients--; rearrangeClients(); } void SystemTray::showClient(TrayWindow *traywin) { if (!traywin || traywin->isVisible()) return; if (!m_num_visible_clients) show(); traywin->show(); m_num_visible_clients++; rearrangeClients(); } void SystemTray::update() { if (!m_theme->texture().usePixmap()) { m_window.setBackgroundColor(m_theme->texture().color()); } else { if(m_pixmap) m_screen.imageControl().removeImage(m_pixmap); m_pixmap = m_screen.imageControl().renderImage(width(), height(), m_theme->texture(), orientation()); m_window.setBackgroundPixmap(m_pixmap); } ClientList::iterator client_it = m_clients.begin(); ClientList::iterator client_it_end = m_clients.end(); for (; client_it != client_it_end; ++client_it) { // maybe not the best solution (yet), force a refresh of the // background of the client if (!(*client_it)->isVisible()) continue; (*client_it)->hide(); (*client_it)->show(); } } Atom SystemTray::getXEmbedInfoAtom() { static Atom theatom = XInternAtom(Fluxbox::instance()->display(), "_XEMBED_INFO", False); return theatom; } string SystemTray::getNetSystemTrayAtom(int screen_nr) { string atom_name("_NET_SYSTEM_TRAY_S"); atom_name += FbTk::StringUtil::number2String(screen_nr); return atom_name; } fluxbox-1.3.5/src/PaxHeaders.25974/SystemTray.hh0000644000175000017500000000013212106662425017510 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.395812461 30 ctime=1360750008.623811615 fluxbox-1.3.5/src/SystemTray.hh0000644000175000017500000000721212106662425015541 0ustar00mgmg00000000000000// SystemTray.hh // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef SYSTEMTRAY_HH #define SYSTEMTRAY_HH #include "FbTk/FbWindow.hh" #include "FbTk/EventHandler.hh" #include "FbTk/Signal.hh" #include "ToolTheme.hh" #include "ToolbarItem.hh" #include #include class BScreen; class ButtonTheme; class TrayWindow; class AtomHandler; namespace FbTk { template class ThemeProxy; } class SystemTray: public ToolbarItem, public FbTk::EventHandler, private FbTk::SignalTracker { public: explicit SystemTray(const FbTk::FbWindow &parent, FbTk::ThemeProxy &theme, BScreen& screen); virtual ~SystemTray(); void move(int x, int y); void resize(unsigned int width, unsigned int height); void moveResize(int x, int y, unsigned int width, unsigned int height); void show(); void hide(); bool active() { return !m_clients.empty(); } bool clientMessage(const XClientMessageEvent &event); void exposeEvent(XExposeEvent &event); void handleEvent(XEvent &event); void addClient(Window win, bool using_xembed); void removeClient(Window win, bool destroyed); unsigned int width() const; unsigned int height() const; unsigned int borderWidth() const; int numClients() const { return m_clients.size(); } const FbTk::FbWindow &window() const { return m_window; } void renderTheme(int alpha) { m_window.setBorderWidth(m_theme->border().width()); m_window.setBorderColor(m_theme->border().color()); m_window.setAlpha(alpha); update(); } void updateSizing() { m_window.setBorderWidth(m_theme->border().width()); } void parentMoved() { m_window.parentMoved(); } static std::string getNetSystemTrayAtom(int screen_nr); static Atom getXEmbedInfoAtom(); private: void update(); typedef std::list ClientList; ClientList::iterator findClient(Window win); void rearrangeClients(); void removeAllClients(); void hideClient(TrayWindow *traywin, bool destroyed = false); void showClient(TrayWindow *traywin); FbTk::FbWindow m_window; FbTk::ThemeProxy &m_theme; BScreen& m_screen; Pixmap m_pixmap; std::auto_ptr m_handler; ClientList m_clients; size_t m_num_visible_clients; // gaim/pidgin seems to barf if the selection is not an independent window. // I suspect it's an interacton with parent relationship and gdk window caching. FbTk::FbWindow m_selection_owner; }; #endif // SYSTEMTRAY_HH fluxbox-1.3.5/src/PaxHeaders.25974/ToolFactory.cc0000644000175000017500000000013212106662425017617 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.391812461 30 ctime=1360750008.623811615 fluxbox-1.3.5/src/ToolFactory.cc0000644000175000017500000001337012106662425015652 0ustar00mgmg00000000000000// ToolFactory.cc for Fluxbox // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "ToolFactory.hh" // Tools #include "ButtonTool.hh" #include "ClockTool.hh" #ifdef USE_SYSTRAY #include "SystemTray.hh" #endif #include "IconbarTool.hh" #include "WorkspaceNameTool.hh" #include "ArrowButton.hh" // Themes #include "WorkspaceNameTheme.hh" #include "ButtonTheme.hh" #include "FbTk/CommandParser.hh" #include "Screen.hh" #include "ScreenPlacement.hh" #include "Toolbar.hh" #include "fluxbox.hh" namespace { class ShowMenuAboveToolbar: public FbTk::Command { public: explicit ShowMenuAboveToolbar(Toolbar &tbar):m_tbar(tbar) { } void execute() { const XEvent& e= Fluxbox::instance()->lastEvent(); m_tbar.screen() .placementStrategy() .placeAndShowMenu(m_tbar.menu(), e.xbutton.x_root, e.xbutton.y_root, false); } private: Toolbar &m_tbar; }; } ToolFactory::ToolFactory(BScreen &screen):m_screen(screen), m_clock_theme(screen.screenNumber(), "toolbar.clock", "Toolbar.Clock"), m_button_theme(new ButtonTheme(screen.screenNumber(), "toolbar.button", "Toolbar.Button", "toolbar.clock", "Toolbar.Clock")), m_workspace_theme(new WorkspaceNameTheme(screen.screenNumber(), "toolbar.workspace", "Toolbar.Workspace")), m_systray_theme(new ButtonTheme(screen.screenNumber(), "toolbar.systray", "Toolbar.Systray", "toolbar.clock", "Toolbar.Clock")), m_iconbar_theme(screen.screenNumber(), "toolbar.iconbar", "Toolbar.Iconbar"), m_focused_iconbar_theme(screen.screenNumber(), "toolbar.iconbar.focused", "Toolbar.Iconbar.Focused"), m_unfocused_iconbar_theme(screen.screenNumber(), "toolbar.iconbar.unfocused", "Toolbar.Iconbar.Unfocused") { } ToolbarItem *ToolFactory::create(const std::string &name, const FbTk::FbWindow &parent, Toolbar &tbar) { ToolbarItem * item = 0; unsigned int button_size = 24; if (tbar.theme()->buttonSize() > 0) button_size = tbar.theme()->buttonSize(); if (name == "workspacename") { WorkspaceNameTool *witem = new WorkspaceNameTool(parent, *m_workspace_theme, screen()); using namespace FbTk; RefCount > showmenu(new ShowMenuAboveToolbar(tbar)); witem->button().setOnClick(showmenu); item = witem; } else if (name == "iconbar") { item = new IconbarTool(parent, m_iconbar_theme, m_focused_iconbar_theme, m_unfocused_iconbar_theme, screen(), tbar.menu()); } else if (name == "systemtray") { #ifdef USE_SYSTRAY item = new SystemTray(parent, dynamic_cast(*m_systray_theme), screen()); #endif } else if (name == "clock") { item = new ClockTool(parent, m_clock_theme, screen(), tbar.menu()); } else { std::string cmd_str = name; if (name == "prevwindow" || name == "nextwindow") { cmd_str += " (workspace=[current])"; } FbTk::RefCount > cmd(FbTk::CommandParser::instance().parse(cmd_str)); if (cmd == 0) // we need a command return 0; // TODO maybe direction of arrows should depend on toolbar layout ? FbTk::FbDrawable::TriangleType arrow_type = FbTk::FbDrawable::RIGHT; if (name.find("prev") != std::string::npos) arrow_type = FbTk::FbDrawable::LEFT; ArrowButton *win = new ArrowButton(arrow_type, parent, 0, 0, button_size, button_size); win->setOnClick(cmd); item = new ButtonTool(win, ToolbarItem::SQUARE, dynamic_cast(*m_button_theme), screen().imageControl()); } if (item) item->renderTheme(tbar.alpha()); return item; } void ToolFactory::updateThemes() { m_clock_theme.reconfigTheme(); m_focused_iconbar_theme.reconfigTheme(); m_unfocused_iconbar_theme.reconfigTheme(); m_button_theme->reconfigTheme(); m_workspace_theme->reconfigTheme(); } int ToolFactory::maxFontHeight() { unsigned int max_height = 0; if (max_height < m_clock_theme.font().height()) max_height = m_clock_theme.font().height(); if (max_height < m_focused_iconbar_theme.text().font().height()) max_height = m_focused_iconbar_theme.text().font().height(); if (max_height < m_unfocused_iconbar_theme.text().font().height()) max_height = m_unfocused_iconbar_theme.text().font().height(); if (max_height < m_workspace_theme->font().height()) max_height = m_workspace_theme->font().height(); return max_height; } fluxbox-1.3.5/src/PaxHeaders.25974/ToolFactory.hh0000644000175000017500000000013212106662425017631 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.391812461 30 ctime=1360750008.623811615 fluxbox-1.3.5/src/ToolFactory.hh0000644000175000017500000000414312106662425015662 0ustar00mgmg00000000000000// ToolFactory.hh for Fluxbox // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef TOOLFACTORY_HH #define TOOLFACTORY_HH #include "ToolTheme.hh" #include "IconbarTheme.hh" #include "FbTk/NotCopyable.hh" #include class ToolbarItem; class BScreen; class Toolbar; namespace FbTk { class FbWindow; } /// creates toolbaritems class ToolFactory:private FbTk::NotCopyable { public: explicit ToolFactory(BScreen &screen); virtual ~ToolFactory() { } ToolbarItem *create(const std::string &name, const FbTk::FbWindow &parent, Toolbar &tbar); void updateThemes(); int maxFontHeight(); const BScreen &screen() const { return m_screen; } BScreen &screen() { return m_screen; } private: BScreen &m_screen; ToolTheme m_clock_theme; std::auto_ptr m_button_theme; std::auto_ptr m_workspace_theme; std::auto_ptr m_systray_theme; IconbarTheme m_iconbar_theme, m_focused_iconbar_theme, m_unfocused_iconbar_theme; }; #endif // TOOLFACTORY_HH fluxbox-1.3.5/src/PaxHeaders.25974/ButtonTheme.cc0000644000175000017500000000013212106662425017610 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.387812461 30 ctime=1360750008.623811615 fluxbox-1.3.5/src/ButtonTheme.cc0000644000175000017500000000770612106662425015651 0ustar00mgmg00000000000000// ButtonTheme.cc // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "ButtonTheme.hh" #include "FbTk/App.hh" //!! TODO: still missing *.pressed.picColor ButtonTheme::ButtonTheme(int screen_num, const std::string &name, const std::string &alt_name, const std::string &extra_fallback, const std::string &extra_fallback_alt): ToolTheme(screen_num, name, alt_name), m_pic_color(*this, name + ".picColor", alt_name + ".PicColor"), m_pressed_texture(*this, name + ".pressed", alt_name + ".Pressed"), m_gc(RootWindow(FbTk::App::instance()->display(), screen_num)), m_scale(*this, name + ".scale", alt_name + ".Scale"), m_name(name), m_fallbackname(extra_fallback), m_altfallbackname(extra_fallback_alt) { FbTk::ThemeManager::instance().loadTheme(*this); } bool ButtonTheme::fallback(FbTk::ThemeItem_base &item) { /* Don't fallback these for theme backwards compatibility if (item.name().find(".borderWidth") != std::string::npos) { return FbTk::ThemeManager::instance().loadItem(item, "borderWidth", "BorderWidth"); } if (item.name().find(".borderColor") != std::string::npos) { return FbTk::ThemeManager::instance().loadItem(item, "borderColor", "BorderColor"); } */ if (item.name() == name()) { // default to the toolbar label style return FbTk::ThemeManager::instance().loadItem(item, m_fallbackname, m_altfallbackname); } else if (item.name().find(".picColor") != std::string::npos) { // if we've fallen back to alternate name, and it doesn't have a picColor, // try its text color instead return FbTk::ThemeManager::instance().loadItem(item, m_fallbackname + ".picColor", m_altfallbackname + ".picColor") || FbTk::ThemeManager::instance().loadItem(item, m_fallbackname + ".textColor", m_altfallbackname + ".TextColor"); } else if (item.name().find(".pressed") != std::string::npos) { // copy texture *m_pressed_texture = texture(); // invert the bevel if it has one! unsigned long type = m_pressed_texture->type(); unsigned long bevels = (FbTk::Texture::SUNKEN | FbTk::Texture::RAISED); if ((type & bevels) != 0) { type ^= bevels; m_pressed_texture->setType(type); } return true; } return ToolTheme::fallback(item); } void ButtonTheme::reconfigTheme() { m_gc.setForeground(*m_pic_color); } fluxbox-1.3.5/src/PaxHeaders.25974/ButtonTheme.hh0000644000175000017500000000013212106662425017622 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.387812461 30 ctime=1360750008.623811615 fluxbox-1.3.5/src/ButtonTheme.hh0000644000175000017500000000470412106662425015656 0ustar00mgmg00000000000000// ButtonTheme.hh // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef BUTTONTHEME_HH #define BUTTONTHEME_HH #include "ToolTheme.hh" #include "FbTk/GContext.hh" class ButtonTheme: public ToolTheme, public FbTk::ThemeProxy { public: ButtonTheme(int screen_num, const std::string &name, const std::string &alt_name, const std::string &extra_fallback, const std::string &extra_fallback_alt); virtual ~ButtonTheme() { } bool fallback(FbTk::ThemeItem_base &item); void reconfigTheme(); const FbTk::Texture &pressed() const { return *m_pressed_texture; } GC gc() const { return m_gc.gc(); } int scale() const { return *m_scale; } // scale factor for inside objects const std::string &name() { return m_name; } virtual FbTk::Signal<> &reconfigSig() { return FbTk::Theme::reconfigSig(); } virtual ButtonTheme &operator *() { return *this; } virtual const ButtonTheme &operator *() const { return *this; } private: FbTk::ThemeItem m_pic_color; FbTk::ThemeItem m_pressed_texture; FbTk::GContext m_gc; FbTk::ThemeItem m_scale; const std::string m_name; const std::string m_fallbackname; const std::string m_altfallbackname; }; #endif // BUTTONTHEME_HH fluxbox-1.3.5/src/PaxHeaders.25974/ButtonTool.cc0000644000175000017500000000013212106662425017463 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.387812461 30 ctime=1360750008.627811615 fluxbox-1.3.5/src/ButtonTool.cc0000644000175000017500000000640312106662425015515 0ustar00mgmg00000000000000// ButtonTool.cc for Fluxbox // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "ButtonTool.hh" #include "ButtonTheme.hh" #include "FbTk/Button.hh" #include "FbTk/ImageControl.hh" ButtonTool::ButtonTool(FbTk::Button *button, ToolbarItem::Type type, FbTk::ThemeProxy &theme, FbTk::ImageControl &img_ctrl): GenericTool(button, type, dynamic_cast &>(theme)), m_cache_pm(0), m_cache_pressed_pm(0), m_image_ctrl(img_ctrl) { } ButtonTool::~ButtonTool() { if (m_cache_pm) m_image_ctrl.removeImage(m_cache_pm); if (m_cache_pressed_pm) m_image_ctrl.removeImage(m_cache_pressed_pm); } void ButtonTool::updateSizing() { FbTk::Button &btn = static_cast(window()); btn.setBorderWidth(theme()->border().width()); } void ButtonTool::renderTheme(int alpha) { FbTk::Button &btn = static_cast(window()); btn.setGC(static_cast(*theme()).gc()); btn.setBorderColor(theme()->border().color()); btn.setBorderWidth(theme()->border().width()); btn.setAlpha(alpha); btn.updateTheme(*theme()); Pixmap old_pm = m_cache_pm; if (!theme()->texture().usePixmap()) { m_cache_pm = 0; btn.setBackgroundColor(theme()->texture().color()); } else { m_cache_pm = m_image_ctrl.renderImage(width(), height(), theme()->texture(), orientation()); btn.setBackgroundPixmap(m_cache_pm); } if (old_pm) m_image_ctrl.removeImage(old_pm); old_pm = m_cache_pressed_pm; if (! static_cast(*theme()).pressed().usePixmap()) { m_cache_pressed_pm = 0; btn.setPressedColor(static_cast(*theme()).pressed().color()); } else { m_cache_pressed_pm = m_image_ctrl.renderImage(width(), height(), static_cast(*theme()).pressed(), orientation()); btn.setPressedPixmap(m_cache_pressed_pm); } if (old_pm) m_image_ctrl.removeImage(old_pm); btn.clear(); } fluxbox-1.3.5/src/PaxHeaders.25974/ButtonTool.hh0000644000175000017500000000013212106662425017475 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.383812461 30 ctime=1360750008.627811615 fluxbox-1.3.5/src/ButtonTool.hh0000644000175000017500000000334312106662425015527 0ustar00mgmg00000000000000// ButtonTool.hh for Fluxbox // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef BUTTONTOOL_HH #define BUTTONTOOL_HH #include "GenericTool.hh" #include class ButtonTheme; namespace FbTk { class Button; class ImageControl; } class ButtonTool: public GenericTool { public: ButtonTool(FbTk::Button *button, ToolbarItem::Type type, FbTk::ThemeProxy &theme, FbTk::ImageControl &img_ctrl); virtual ~ButtonTool(); protected: void renderTheme(int alpha); void updateSizing(); Pixmap m_cache_pm, m_cache_pressed_pm; FbTk::ImageControl &m_image_ctrl; }; #endif // BUTTONTOOL_HH fluxbox-1.3.5/src/PaxHeaders.25974/GenericTool.cc0000644000175000017500000000013212106662425017564 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.383812461 30 ctime=1360750008.627811615 fluxbox-1.3.5/src/GenericTool.cc0000644000175000017500000000516712106662425015624 0ustar00mgmg00000000000000// GenericTool.cc for Fluxbox // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "GenericTool.hh" #include "FbTk/FbWindow.hh" #include "FbTk/MemFun.hh" #include "ToolTheme.hh" #include GenericTool::GenericTool(FbTk::FbWindow *new_window, ToolbarItem::Type type, FbTk::ThemeProxy &theme): ToolbarItem(type), m_window(new_window), m_theme(theme) { m_tracker.join(theme.reconfigSig(), FbTk::MemFun(*this, &GenericTool::themeReconfigured)); if (new_window == 0) throw std::string("GenericTool: Error! Tried to create a tool with window = 0"); } GenericTool::~GenericTool() { } void GenericTool::move(int x, int y) { m_window->move(x, y); } void GenericTool::resize(unsigned int width, unsigned int height) { m_window->resize(width, height); } void GenericTool::moveResize(int x, int y, unsigned int width, unsigned int height) { m_window->moveResize(x, y, width, height); } void GenericTool::show() { m_window->show(); } void GenericTool::hide() { m_window->hide(); } unsigned int GenericTool::width() const { return m_window->width(); } unsigned int GenericTool::height() const { return m_window->height(); } unsigned int GenericTool::borderWidth() const { return m_window->borderWidth(); } void GenericTool::renderTheme(int alpha) { m_window->setAlpha(alpha); m_window->clear(); } void GenericTool::themeReconfigured() { m_window->clear(); } void GenericTool::parentMoved() { m_window->parentMoved(); } fluxbox-1.3.5/src/PaxHeaders.25974/GenericTool.hh0000644000175000017500000000013212106662425017576 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.383812461 30 ctime=1360750008.627811615 fluxbox-1.3.5/src/GenericTool.hh0000644000175000017500000000464712106662425015640 0ustar00mgmg00000000000000// GenericTool.hh for Fluxbox // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef GENERICTOOL_HH #define GENERICTOOL_HH #include "ToolbarItem.hh" #include "FbTk/NotCopyable.hh" #include "FbTk/Signal.hh" #include class ToolTheme; namespace FbTk { class FbWindow; template class ThemeProxy; } /// helper class for simple tools, i.e buttons etc class GenericTool: public ToolbarItem, private FbTk::NotCopyable { public: GenericTool(FbTk::FbWindow *new_window, ToolbarItem::Type type, FbTk::ThemeProxy &theme); virtual ~GenericTool(); void move(int x, int y); void resize(unsigned int x, unsigned int y); void moveResize(int x, int y, unsigned int width, unsigned int height); void show(); void hide(); unsigned int width() const; unsigned int height() const; unsigned int borderWidth() const; void parentMoved(); const FbTk::ThemeProxy &theme() const { return m_theme; } FbTk::FbWindow &window() { return *m_window; } const FbTk::FbWindow &window() const { return *m_window; } protected: virtual void renderTheme(int alpha); private: void themeReconfigured(); std::auto_ptr m_window; FbTk::ThemeProxy &m_theme; FbTk::SignalTracker m_tracker; }; #endif // GENERICTOOL_HH fluxbox-1.3.5/src/PaxHeaders.25974/ToolTheme.cc0000644000175000017500000000013212106662425017252 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.379812461 30 ctime=1360750008.631811615 fluxbox-1.3.5/src/ToolTheme.cc0000644000175000017500000000461712106662425015311 0ustar00mgmg00000000000000// ToolTheme.cc // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "ToolTheme.hh" ToolTheme::ToolTheme(int screen_num, const std::string &name, const std::string &altname): FbTk::Theme(screen_num), FbTk::TextTheme(*this, name, altname), m_texture(*this, name, altname), m_border(*this, name, altname), m_alpha(255) { FbTk::ThemeManager::instance().loadTheme(*this); } ToolTheme::~ToolTheme() { } void ToolTheme::reconfigTheme() { // update text theme updateTextColor(); } bool ToolTheme::fallback(FbTk::ThemeItem_base &item) { /* Don't fallback these for theme backwards compatibility if (item.name().find(".borderWidth") != std::string::npos) { return FbTk::ThemeManager::instance().loadItem(item, "borderWidth", "BorderWidth"); } else if (item.name().find(".borderColor") != std::string::npos) { return FbTk::ThemeManager::instance().loadItem(item, "borderColor", "BorderColor"); } else */ if (item.name().find(".justify") != std::string::npos) { return FbTk::ThemeManager::instance().loadItem(item, "toolbar.justify", "Toolbar.Justify"); } return false; } fluxbox-1.3.5/src/PaxHeaders.25974/ToolTheme.hh0000644000175000017500000000013212106662425017264 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.379812461 30 ctime=1360750008.631811615 fluxbox-1.3.5/src/ToolTheme.hh0000644000175000017500000000452312106662425015317 0ustar00mgmg00000000000000// ToolTheme.hh // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef TOOLTHEME_HH #define TOOLTHEME_HH #include "FbTk/TextTheme.hh" #include "FbTk/BorderTheme.hh" #include "FbTk/Texture.hh" /// Handles toolbar item theme for text and texture class ToolTheme: public FbTk::Theme, public FbTk::TextTheme, public FbTk::ThemeProxy { public: ToolTheme(int screen_num, const std::string &name, const std::string &altname); virtual ~ToolTheme(); bool fallback(FbTk::ThemeItem_base &item); void reconfigTheme(); // textures const FbTk::Texture &texture() const { return *m_texture; } const FbTk::BorderTheme &border() const { return m_border; } int alpha() const { return m_alpha; } void setAlpha(int alpha) { m_alpha = alpha; } virtual FbTk::Signal<> &reconfigSig() { return FbTk::Theme::reconfigSig(); } virtual ToolTheme &operator *() { return *this; } virtual const ToolTheme &operator *() const { return *this; } protected: FbTk::ThemeItem &textureTheme() { return m_texture; } private: FbTk::ThemeItem m_texture; FbTk::BorderTheme m_border; int m_alpha; }; #endif // TOOLTHEME_HH fluxbox-1.3.5/src/PaxHeaders.25974/IconbarTool.cc0000644000175000017500000000013212106662425017565 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.375812461 30 ctime=1360750008.631811615 fluxbox-1.3.5/src/IconbarTool.cc0000644000175000017500000004560512106662425015626 0ustar00mgmg00000000000000// IconbarTool.cc // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "IconbarTool.hh" #include "fluxbox.hh" #include "WindowCmd.hh" #include "Screen.hh" #include "IconbarTheme.hh" #include "Window.hh" #include "IconButton.hh" #include "Workspace.hh" #include "FbMenu.hh" #include "FbTk/CommandParser.hh" #include "WinClient.hh" #include "FocusControl.hh" #include "FbCommands.hh" #include "Layer.hh" #include "Debug.hh" #include "FbTk/STLUtil.hh" #include "FbTk/I18n.hh" #include "FbTk/Menu.hh" #include "FbTk/RadioMenuItem.hh" #include "FbTk/BoolMenuItem.hh" #include "FbTk/RefCount.hh" #include "FbTk/SimpleCommand.hh" #include "FbTk/ImageControl.hh" #include "FbTk/MacroCommand.hh" #include "FbTk/MenuSeparator.hh" #include "FbTk/Util.hh" #include "FbTk/STLUtil.hh" #include "FbTk/Select2nd.hh" #include "FbTk/Compose.hh" #include #include #ifdef HAVE_CSTRING #include #else #include #endif using std::string; using std::list; using std::endl; namespace FbTk { template<> void FbTk::Resource::setDefaultValue() { m_value = FbTk::Container::RELATIVE; } template<> string FbTk::Resource::getString() const { if (m_value == FbTk::Container::LEFT) return string("Left"); if (m_value == FbTk::Container::RIGHT) return string("Right"); return string("Relative"); } template<> void FbTk::Resource::setFromString(const char *str) { if (strcasecmp(str, "Left") == 0) m_value = FbTk::Container::LEFT; else if (strcasecmp(str, "Right") == 0) m_value = FbTk::Container::RIGHT; else if (strcasecmp(str, "Relative") == 0) m_value = FbTk::Container::RELATIVE; else setDefaultValue(); } } // end namespace FbTk namespace { class ToolbarModeMenuItem : public FbTk::RadioMenuItem { public: ToolbarModeMenuItem(const FbTk::FbString &label, IconbarTool &handler, string mode, FbTk::RefCount > &cmd): FbTk::RadioMenuItem(label, cmd), m_handler(handler), m_mode(mode) { setCloseOnClick(false); } bool isSelected() const { return m_handler.mode() == m_mode; } void click(int button, int time, unsigned int mods) { m_handler.setMode(m_mode); FbTk::RadioMenuItem::click(button, time, mods); } private: IconbarTool &m_handler; string m_mode; }; class ToolbarAlignMenuItem: public FbTk::RadioMenuItem { public: ToolbarAlignMenuItem(const FbTk::FbString &label, IconbarTool &handler, FbTk::Container::Alignment mode, FbTk::RefCount > &cmd): FbTk::RadioMenuItem(label, cmd), m_handler(handler), m_mode(mode) { setCloseOnClick(false); } bool isSelected() const { return m_handler.alignment() == m_mode; } void click(int button, int time, unsigned int mods) { m_handler.setAlignment(m_mode); FbTk::RadioMenuItem::click(button, time, mods); } private: IconbarTool &m_handler; FbTk::Container::Alignment m_mode; }; void setupModeMenu(FbTk::Menu &menu, IconbarTool &handler) { using namespace FbTk; _FB_USES_NLS; menu.setLabel(_FB_XTEXT(Toolbar, IconbarMode, "Iconbar Mode", "Menu title - chooses which set of icons are shown in the iconbar")); RefCount > saverc_cmd(new FbCommands::SaveResources()); menu.insert(new ToolbarModeMenuItem(_FB_XTEXT(Toolbar, IconbarModeNone, "None", "No icons are shown in the iconbar"), handler, "none", saverc_cmd)); menu.insert(new ToolbarModeMenuItem( _FB_XTEXT(Toolbar, IconbarModeIcons, "Icons", "Iconified windows from all workspaces are shown"), handler, "{static groups} (minimized=yes)", saverc_cmd)); menu.insert(new ToolbarModeMenuItem( _FB_XTEXT(Toolbar, IconbarModeNoIcons, "NoIcons", "No iconified windows from all workspaces are shown"), handler, "{static groups} (minimized=no)", saverc_cmd)); menu.insert(new ToolbarModeMenuItem( _FB_XTEXT(Toolbar, IconbarModeWorkspaceIcons, "WorkspaceIcons", "Iconified windows from this workspace are shown"), handler, "{static groups} (minimized=yes) (workspace)", saverc_cmd)); menu.insert(new ToolbarModeMenuItem( _FB_XTEXT(Toolbar, IconbarModeWorkspaceNoIcons, "WorkspaceNoIcons", "No iconified windows from this workspace are shown"), handler, "{static groups} (minimized=no) (workspace)", saverc_cmd)); menu.insert(new ToolbarModeMenuItem( _FB_XTEXT(Toolbar, IconbarModeWorkspace, "Workspace", "Normal and iconified windows from this workspace are shown"), handler, "{static groups} (workspace)", saverc_cmd)); menu.insert(new ToolbarModeMenuItem( _FB_XTEXT(Toolbar, IconbarModeAllWindows, "All Windows", "All windows are shown"), handler, "{static groups}", saverc_cmd)); menu.insert(new FbTk::MenuSeparator()); menu.insert(new ToolbarAlignMenuItem( _FB_XTEXT(Align, Left, "Left", "Align to the left"), handler, FbTk::Container::LEFT, saverc_cmd)); menu.insert(new ToolbarAlignMenuItem( _FB_XTEXT(Align, Relative, "Relative", "Align relative to the width"), handler, FbTk::Container::RELATIVE, saverc_cmd)); menu.insert(new ToolbarAlignMenuItem( _FB_XTEXT(Align, Right, "Right", "Align to the right"), handler, FbTk::Container::RIGHT, saverc_cmd)); menu.insert(new FbTk::MenuSeparator()); menu.updateMenu(); } typedef FbTk::RefCount > RefCmd; class ShowMenu: public FbTk::Command { public: explicit ShowMenu(FluxboxWindow &win):m_win(win) { } void execute() { // get last button pos const XEvent &e = Fluxbox::instance()->lastEvent(); m_win.popupMenu(e.xbutton.x_root, e.xbutton.y_root); } private: FluxboxWindow &m_win; }; class FocusCommand: public FbTk::Command { public: explicit FocusCommand(Focusable &win): m_win(win) { } void execute() { // this needs to be a local variable, as this object could be destroyed // if the workspace is changed. FluxboxWindow *fbwin = m_win.fbwindow(); if (!fbwin) return; if (m_win.isFocused()) fbwin->iconify(); else { m_win.focus(); fbwin->raise(); } } private: Focusable &m_win; }; } // end anonymous namespace IconbarTool::IconbarTool(const FbTk::FbWindow &parent, IconbarTheme &theme, FbTk::ThemeProxy &focused_theme, FbTk::ThemeProxy &unfocused_theme, BScreen &screen, FbTk::Menu &menu): ToolbarItem(ToolbarItem::RELATIVE), m_screen(screen), m_icon_container(parent, false), m_theme(theme), m_focused_theme(focused_theme), m_unfocused_theme(unfocused_theme), m_empty_pm( screen.imageControl() ), m_winlist(new FocusableList(screen)), m_mode("none"), m_rc_mode(screen.resourceManager(), "{static groups} (workspace)", screen.name() + ".iconbar.mode", screen.altName() + ".Iconbar.Mode"), m_rc_alignment(screen.resourceManager(), FbTk::Container::RELATIVE, screen.name() + ".iconbar.alignment", screen.altName() + ".Iconbar.Alignment"), m_rc_client_width(screen.resourceManager(), 128, screen.name() + ".iconbar.iconWidth", screen.altName() + ".Iconbar.IconWidth"), m_rc_client_padding(screen.resourceManager(), 10, screen.name() + ".iconbar.iconTextPadding", screen.altName() + ".Iconbar.IconTextPadding"), m_rc_use_pixmap(screen.resourceManager(), true, screen.name() + ".iconbar.usePixmap", screen.altName() + ".Iconbar.UsePixmap"), m_menu(screen.menuTheme(), screen.imageControl(), *screen.layerManager().getLayer(ResourceLayer::MENU)), m_alpha(255) { // setup mode menu setupModeMenu(m_menu, *this); _FB_USES_NLS; using namespace FbTk; // setup use pixmap item to reconfig iconbar and save resource on click MacroCommand *save_and_reconfig = new MacroCommand(); RefCount > reconfig(new SimpleCommand(*this, &IconbarTool::renderTheme)); RefCount > save(FbTk::CommandParser::instance().parse("saverc")); save_and_reconfig->add(reconfig); save_and_reconfig->add(save); RefCount > s_and_reconfig(save_and_reconfig); m_menu.insert(new FbTk::BoolMenuItem(_FB_XTEXT(Toolbar, ShowIcons, "Show Pictures", "chooses if little icons are shown next to title in the iconbar"), m_rc_use_pixmap, s_and_reconfig)); m_menu.updateMenu(); // must be internal menu, otherwise toolbar main menu tries to delete it. m_menu.setInternalMenu(); // add iconbar menu to toolbar menu menu.insert(m_menu.label().logical(), &m_menu); // setup signals m_tracker.join(theme.reconfigSig(), FbTk::MemFun(*this, &IconbarTool::themeReconfigured)); m_tracker.join(focused_theme.reconfigSig(), FbTk::MemFun(*this, &IconbarTool::themeReconfigured)); m_tracker.join(unfocused_theme.reconfigSig(), FbTk::MemFun(*this, &IconbarTool::themeReconfigured)); themeReconfigured(); } IconbarTool::~IconbarTool() { deleteIcons(); } void IconbarTool::move(int x, int y) { m_icon_container.move(x, y); } void IconbarTool::resize(unsigned int width, unsigned int height) { m_icon_container.resize(width, height); m_icon_container.setMaxTotalSize(m_icon_container.orientation() == FbTk::ROT0 || m_icon_container.orientation() == FbTk::ROT180 ? width : height); renderTheme(); } void IconbarTool::moveResize(int x, int y, unsigned int width, unsigned int height) { m_icon_container.moveResize(x, y, width, height); m_icon_container.setMaxTotalSize(m_icon_container.orientation() == FbTk::ROT0 || m_icon_container.orientation() == FbTk::ROT180 ? width : height); renderTheme(); } void IconbarTool::show() { m_icon_container.show(); } void IconbarTool::hide() { m_icon_container.hide(); } void IconbarTool::setAlignment(FbTk::Container::Alignment align) { *m_rc_alignment = align; update(ALIGN, NULL); m_menu.reconfigure(); } void IconbarTool::setMode(string mode) { if (mode == m_mode) return; *m_rc_mode = m_mode = mode; // lock graphics update m_icon_container.setUpdateLock(true); if (mode == "none") m_winlist.reset(new FocusableList(m_screen)); else m_winlist.reset(new FocusableList(m_screen, mode + " (iconhidden=no)")); if (m_winlist.get()) { m_winlist->addSig().connect( std::bind1st(FbTk::MemFun(*this, &IconbarTool::update), LIST_ADD) ); m_winlist->removeSig().connect( std::bind1st(FbTk::MemFun(*this, &IconbarTool::update), LIST_REMOVE) ); m_winlist->addSig().connect( std::bind1st(FbTk::MemFun(*this, &IconbarTool::update), LIST_ORDER) ); m_winlist->resetSig().connect(FbTk::MemFunBind( *this, &IconbarTool::update, LIST_RESET, static_cast(0) )); } reset(); // unlock graphics update m_icon_container.setUpdateLock(false); m_icon_container.update(); m_icon_container.showSubwindows(); renderTheme(); m_menu.reconfigure(); } unsigned int IconbarTool::width() const { return m_icon_container.width(); } unsigned int IconbarTool::height() const { return m_icon_container.height(); } unsigned int IconbarTool::borderWidth() const { return m_icon_container.borderWidth(); } void IconbarTool::themeReconfigured() { setMode(*m_rc_mode); } void IconbarTool::update(UpdateReason reason, Focusable *win) { // ignore updates if we're shutting down if (m_screen.isShuttingdown()) { if (!m_icons.empty()) deleteIcons(); return; } m_icon_container.setAlignment(*m_rc_alignment); *m_rc_client_width = FbTk::Util::clamp(*m_rc_client_width, 10, 400); m_icon_container.setMaxSizePerClient(*m_rc_client_width); // lock graphic update m_icon_container.setUpdateLock(true); switch(reason) { case LIST_ADD: case LIST_ORDER: insertWindow(*win); break; case LIST_REMOVE: removeWindow(*win); break; case LIST_RESET: reset(); break; case ALIGN: break; } // unlock container and update graphics m_icon_container.setUpdateLock(false); m_icon_container.update(); m_icon_container.showSubwindows(); // another renderTheme we hopefully shouldn't need? These renders // should be done individually above // nope, we still need it (or at least I'm not bothering to fix it yet) // a new IconButton doesn't get resized properly until the // m_icon_container.update() above; then, it never runs drawText() again, // so text can end up behind program icons renderTheme(); } void IconbarTool::insertWindow(Focusable &win, int pos) { IconButton *button = 0; IconMap::iterator icon_it = m_icons.find(&win); if (icon_it != m_icons.end()) button = icon_it->second; if (button) m_icon_container.removeItem(button); else button = makeButton(win); if (!button) return; if (pos == -2) { pos = 0; list::iterator it = m_winlist->clientList().begin(), it_end = m_winlist->clientList().end(); for (; it != it_end && *it != &win; ++it) pos++; } m_icon_container.insertItem(button, pos); } void IconbarTool::reset() { deleteIcons(); updateList(); } void IconbarTool::updateSizing() { m_icon_container.setBorderWidth(m_theme.border().width()); m_icon_container.setBorderColor(m_theme.border().color()); FbTk::STLUtil::forAll(m_icons, FbTk::Compose(std::mem_fun(&IconButton::reconfigTheme), FbTk::Select2nd())); } void IconbarTool::renderTheme(int alpha) { m_alpha = alpha; renderTheme(); } void IconbarTool::renderTheme() { // update button sizes before we get max width per client! updateSizing(); // if we dont have any icons then we should render empty texture if (!m_theme.emptyTexture().usePixmap()) { m_empty_pm.reset( 0 ); m_icon_container.setBackgroundColor(m_theme.emptyTexture().color()); } else { m_empty_pm.reset(m_screen.imageControl(). renderImage(m_icon_container.width(), m_icon_container.height(), m_theme.emptyTexture(), orientation())); m_icon_container.setBackgroundPixmap(m_empty_pm); } m_icon_container.setAlpha(m_alpha); // update buttons IconMap::iterator icon_it = m_icons.begin(); const IconMap::iterator icon_it_end = m_icons.end(); for (; icon_it != icon_it_end; ++icon_it) renderButton(*icon_it->second); } void IconbarTool::renderButton(IconButton &button, bool clear) { button.setPixmap(*m_rc_use_pixmap); button.setTextPadding(*m_rc_client_padding); button.reconfigTheme(); if (clear) button.clear(); // the clear also updates transparent } void IconbarTool::deleteIcons() { m_icon_container.removeAll(); FbTk::STLUtil::destroyAndClearSecond(m_icons); } void IconbarTool::removeWindow(Focusable &win) { // got window die signal, lets find and remove the window IconMap::iterator it = m_icons.find(&win); if (it == m_icons.end()) return; fbdbg<<"IconbarTool::"<<__FUNCTION__<<"( 0x"<<&win<<" title = "<second; m_icons.erase(it); m_icon_container.removeItem(button); delete button; } IconButton *IconbarTool::makeButton(Focusable &win) { // we just want windows that have clients FluxboxWindow *fbwin = win.fbwindow(); if (!fbwin || fbwin->clientList().empty()) return 0; fbdbg<<"IconbarTool::addWindow(0x"<<&win<<" title = "<setOnClick(focus_cmd, 1); button->setOnClick(menu_cmd, 3); renderButton(*button, false); // update the attributes, but don't clear it m_icons[&win] = button; return button; } void IconbarTool::updateList() { list::iterator it = m_winlist->clientList().begin(); list::iterator it_end = m_winlist->clientList().end(); for (; it != it_end; ++it) { if ((*it)->fbwindow()) insertWindow(**it, -1); } renderTheme(); } void IconbarTool::setOrientation(FbTk::Orientation orient) { m_icon_container.setOrientation(orient); ToolbarItem::setOrientation(orient); } fluxbox-1.3.5/src/PaxHeaders.25974/IconbarTool.hh0000644000175000017500000000013212106662425017577 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.375812461 30 ctime=1360750008.631811615 fluxbox-1.3.5/src/IconbarTool.hh0000644000175000017500000001045512106662425015633 0ustar00mgmg00000000000000// IconbarTool.hh // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef ICONBARTOOL_HH #define ICONBARTOOL_HH #include "ToolbarItem.hh" #include "FbMenu.hh" #include "FbTk/Container.hh" #include "FbTk/CachedPixmap.hh" #include "FbTk/Resource.hh" #include class IconbarTheme; class BScreen; class IconButton; class Focusable; class FocusableList; class IconbarTool: public ToolbarItem { public: typedef std::map IconMap; IconbarTool(const FbTk::FbWindow &parent, IconbarTheme &theme, FbTk::ThemeProxy &focused_theme, FbTk::ThemeProxy &unfocused_theme, BScreen &screen, FbTk::Menu &menu); ~IconbarTool(); void move(int x, int y); void resize(unsigned int width, unsigned int height); void moveResize(int x, int y, unsigned int width, unsigned int height); void show(); void hide(); void setAlignment(FbTk::Container::Alignment a); void setMode(std::string mode); void parentMoved() { m_icon_container.parentMoved(); } unsigned int width() const; unsigned int height() const; unsigned int borderWidth() const; std::string mode() const { return *m_rc_mode; } void setOrientation(FbTk::Orientation orient); FbTk::Container::Alignment alignment() const { return m_icon_container.alignment(); } const BScreen &screen() const { return m_screen; } private: enum UpdateReason { LIST_ORDER, LIST_ADD, LIST_REMOVE, LIST_RESET, ALIGN }; void updateSizing(); /// render single button, and probably apply changes (clear) /// @param button the button to render /// @param clear if the window should be cleared first void renderButton(IconButton &button, bool clear = true); /// render all buttons void renderTheme(); void renderTheme(int alpha); /// destroy all icons void deleteIcons(); /// add or move a single window void insertWindow(Focusable &win, int pos = -2); /// remove a single window void removeWindow(Focusable &win); /// make a button for the window IconButton *makeButton(Focusable &win); /// remove all windows and add again void reset(); /// add icons to the list void updateList(); /// called when the list emits a signal void update(UpdateReason reason, Focusable *win); void themeReconfigured(); BScreen &m_screen; FbTk::Container m_icon_container; IconbarTheme &m_theme; FbTk::ThemeProxy &m_focused_theme, &m_unfocused_theme; FbTk::CachedPixmap m_empty_pm; ///< pixmap for empty container FbTk::SignalTracker m_tracker; std::auto_ptr m_winlist; IconMap m_icons; std::string m_mode; FbTk::Resource m_rc_mode; FbTk::Resource m_rc_alignment; ///< alignment of buttons FbTk::Resource m_rc_client_width; ///< size of client button in LEFT/RIGHT mode FbTk::Resource m_rc_client_padding; ///< padding of the text FbTk::Resource m_rc_use_pixmap; ///< if iconbar should use win pixmap or not FbMenu m_menu; int m_alpha; }; #endif // ICONBARTOOL_HH fluxbox-1.3.5/src/PaxHeaders.25974/WorkspaceNameTheme.hh0000644000175000017500000000013212106662425021106 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.375812461 30 ctime=1360750008.635811615 fluxbox-1.3.5/src/WorkspaceNameTheme.hh0000644000175000017500000000514212106662425017137 0ustar00mgmg00000000000000// WorkspaceNameTheme.hh // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef WORKSPACENAMETHEME_HH #define WORKSPACENAMETHEME_HH #include "ToolTheme.hh" class WorkspaceNameTheme: public ToolTheme, public FbTk::ThemeProxy { public: WorkspaceNameTheme(int screen_num, const std::string &name, const std::string &alt_name): ToolTheme(screen_num, name, alt_name) { FbTk::ThemeManager::instance().loadTheme(*this); } bool fallback(FbTk::ThemeItem_base &item) { if (item.name() == "toolbar.workspace.textColor") { return FbTk::ThemeManager::instance().loadItem(item, "toolbar.label.textColor", "Toolbar.Label.TextColor"); } else if (item.name() == "toolbar.workspace") { return FbTk::ThemeManager::instance().loadItem(item, "toolbar.label", "Toolbar.Label"); } return ToolTheme::fallback(item); } virtual FbTk::Signal<> &reconfigSig() { return FbTk::Theme::reconfigSig(); } virtual WorkspaceNameTheme &operator *() { return *this; } virtual const WorkspaceNameTheme &operator *() const { return *this; } }; #endif // WORKSPACENAMETHEME_HH fluxbox-1.3.5/src/PaxHeaders.25974/WorkspaceNameTool.cc0000644000175000017500000000013212106662425020747 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.371812461 30 ctime=1360750008.635811615 fluxbox-1.3.5/src/WorkspaceNameTool.cc0000644000175000017500000001215612106662425017003 0ustar00mgmg00000000000000// WorkspaceNameTool.cc // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "WorkspaceNameTool.hh" #include "ToolTheme.hh" #include "Screen.hh" #include "Workspace.hh" #include "FbTk/ImageControl.hh" #include "FbTk/MemFun.hh" #include WorkspaceNameTool::WorkspaceNameTool(const FbTk::FbWindow &parent, FbTk::ThemeProxy &theme, BScreen &screen): ToolbarItem(ToolbarItem::FIXED), m_button(parent, theme->font(), FbTk::BiDiString("a workspace name")), m_theme(theme), m_screen(screen), m_pixmap(0) { // set text m_button.setGC(m_theme->textGC()); m_button.setText(m_screen.currentWorkspace()->name()); // setup signals join(screen.currentWorkspaceSig(), FbTk::MemFunIgnoreArgs(*this, &WorkspaceNameTool::update)); join(screen.workspaceNamesSig(), FbTk::MemFunIgnoreArgs(*this, &WorkspaceNameTool::update)); join(theme.reconfigSig(), FbTk::MemFun(*this, &WorkspaceNameTool::update)); } WorkspaceNameTool::~WorkspaceNameTool() { if (m_pixmap) m_screen.imageControl().removeImage(m_pixmap); } void WorkspaceNameTool::move(int x, int y) { m_button.move(x, y); } void WorkspaceNameTool::resize(unsigned int width, unsigned int height) { m_button.resize(width, height); } void WorkspaceNameTool::moveResize(int x, int y, unsigned int width, unsigned int height) { m_button.moveResize(x, y, width, height); } void WorkspaceNameTool::update() { m_button.setText(m_screen.currentWorkspace()->name()); if (m_button.width() != width()) { resize(width(), height()); resizeSig().emit(); } reRender(); m_button.clear(); } unsigned int WorkspaceNameTool::width() const { // calculate largest size if (orientation() == FbTk::ROT90 || orientation() == FbTk::ROT270) return m_button.width(); unsigned int max_size = 0; const BScreen::Workspaces& workspaces = m_screen.getWorkspacesList(); BScreen::Workspaces::const_iterator it; for (it = workspaces.begin(); it != workspaces.end(); ++it) { max_size = std::max(m_theme->font().textWidth((*it)->name()), max_size); } // so align text dont cut the last character max_size += 2; return max_size; } unsigned int WorkspaceNameTool::height() const { if (orientation() == FbTk::ROT0 || orientation() == FbTk::ROT180) return m_button.height(); unsigned int max_size = 0; const BScreen::Workspaces& workspaces = m_screen.getWorkspacesList(); BScreen::Workspaces::const_iterator it; for (it = workspaces.begin(); it != workspaces.end(); ++it) { max_size = std::max(m_theme->font().textWidth((*it)->name()), max_size); } // so align text dont cut the last character max_size += 2; return max_size; } unsigned int WorkspaceNameTool::borderWidth() const { return m_button.borderWidth(); } void WorkspaceNameTool::show() { m_button.show(); } void WorkspaceNameTool::hide() { m_button.hide(); } void WorkspaceNameTool::updateSizing() { m_button.setBorderWidth(m_theme->border().width()); } void WorkspaceNameTool::reRender() { if (m_pixmap) m_screen.imageControl().removeImage(m_pixmap); if (m_theme->texture().usePixmap()) { m_pixmap = m_screen.imageControl().renderImage(width(), height(), m_theme->texture(), orientation()); m_button.setBackgroundPixmap(m_pixmap); } else { m_pixmap = 0; m_button.setBackgroundColor(m_theme->texture().color()); } } void WorkspaceNameTool::renderTheme(int alpha) { m_button.setJustify(m_theme->justify()); m_button.setBorderWidth(m_theme->border().width()); m_button.setBorderColor(m_theme->border().color()); m_button.setAlpha(alpha); reRender(); m_button.clear(); } void WorkspaceNameTool::setOrientation(FbTk::Orientation orient) { m_button.setOrientation(orient); ToolbarItem::setOrientation(orient); } fluxbox-1.3.5/src/PaxHeaders.25974/WorkspaceNameTool.hh0000644000175000017500000000013212106662425020761 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.371812461 30 ctime=1360750008.635811615 fluxbox-1.3.5/src/WorkspaceNameTool.hh0000644000175000017500000000471112106662425017013 0ustar00mgmg00000000000000// WorkspaceNameTool.hh // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef WORKSPACENAMETOOL_HH #define WORKSPACENAMETOOL_HH #include "ToolbarItem.hh" #include "FbTk/TextButton.hh" #include "FbTk/Signal.hh" class BScreen; class ToolTheme; namespace FbTk { template class ThemeProxy; } class WorkspaceNameTool: public ToolbarItem, private FbTk::SignalTracker { public: WorkspaceNameTool(const FbTk::FbWindow &parent, FbTk::ThemeProxy &theme, BScreen &screen); virtual ~WorkspaceNameTool(); void move(int x, int y); void resize(unsigned int width, unsigned int height); void moveResize(int x, int y, unsigned int width, unsigned int height); void show(); void hide(); unsigned int width() const; unsigned int height() const; unsigned int borderWidth() const; FbTk::Button &button() { return m_button; } const FbTk::Button &button() const { return m_button; } void setOrientation(FbTk::Orientation orient); void parentMoved() { m_button.parentMoved(); } private: void update(); void renderTheme(int alpha); void reRender(); void updateSizing(); FbTk::TextButton m_button; const FbTk::ThemeProxy &m_theme; BScreen &m_screen; Pixmap m_pixmap; }; #endif // WORKSPACENAMETOOL_HH fluxbox-1.3.5/src/PaxHeaders.25974/ClockTool.cc0000644000175000017500000000013212106662425017243 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.371812461 30 ctime=1360750008.635811615 fluxbox-1.3.5/src/ClockTool.cc0000644000175000017500000002527212106662425015302 0ustar00mgmg00000000000000// ClockTool.cc // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "ClockTool.hh" #include "ToolTheme.hh" #include "Screen.hh" #include "FbTk/CommandParser.hh" #include "CommandDialog.hh" #include "fluxbox.hh" #include "FbTk/MemFun.hh" #include "FbTk/SimpleCommand.hh" #include "FbTk/ImageControl.hh" #include "FbTk/TextUtils.hh" #include "FbTk/Menu.hh" #include "FbTk/MenuItem.hh" #include "FbTk/I18n.hh" #include "FbTk/FbTime.hh" #ifdef HAVE_CONFIG_H #include "config.h" #endif // HAVE_CONFIG_H #ifdef HAVE_CTIME #include #else #include #endif #include #include namespace { const char SWITCHES_SECONDS[] = "crsSTX+"; const char SWITCHES_12_24H[] = "lIrkHT"; const char SWITCHES_24_12H[] = "kHTlIr"; const char SWITCH_AM_PM[] = "pP"; /** * return true if clock shows seconds. If clock doesn't show seconds then * there is no need to wake up every second to redraw the clock. */ int showSeconds(const std::string& fmt_string) { return FbTk::StringUtil::findCharFromAlphabetAfterTrigger( fmt_string, '%', SWITCHES_SECONDS, sizeof(SWITCHES_SECONDS), 0) != std::string::npos; } uint64_t calcNextTimeout(const std::string& fmt_string) { uint64_t now = FbTk::FbTime::system(); uint64_t unit = FbTk::FbTime::IN_SECONDS; if (!showSeconds(fmt_string)) { // microseconds till next full minute unit *= 60L; } return FbTk::FbTime::remainingNext(now, unit); } } // end of anonymous namespace class ClockMenuItem: public FbTk::MenuItem { public: explicit ClockMenuItem(ClockTool &tool): FbTk::MenuItem(FbTk::BiDiString("")), m_tool(tool) { setClockModeLabel(); setCloseOnClick(false); } void click(int button, int time, unsigned int mods) { // does the current format string contain something with 24/12h? size_t found; size_t pos = FbTk::StringUtil::findCharFromAlphabetAfterTrigger( m_tool.timeFormat(), '%', SWITCHES_24_12H, sizeof(SWITCHES_24_12H), &found); if (pos != std::string::npos) { // if so, exchange it with 12/24h std::string newformat = m_tool.timeFormat(); newformat[pos+1] = SWITCHES_12_24H[found]; if (found < 3) { // 24h? erase %P/%p (AM|PM / am|pm) pos = FbTk::StringUtil::findCharFromAlphabetAfterTrigger( newformat, '%', SWITCH_AM_PM, sizeof(SWITCH_AM_PM), 0); if (pos != std::string::npos) { newformat.erase(pos, 2); } } m_tool.setTimeFormat(newformat); setClockModeLabel(); } // else some other strange format...so we don't do anything FbTk::MenuItem::click(button, time, mods); } private: void setClockModeLabel() { _FB_USES_NLS; if (FbTk::StringUtil::findCharFromAlphabetAfterTrigger( m_tool.timeFormat(), '%', SWITCHES_24_12H, 3, 0) != std::string::npos) { setLabel( _FB_XTEXT(Toolbar, Clock24, "Clock: 24h", "set Clockmode to 24h") ); } else { setLabel( _FB_XTEXT(Toolbar, Clock12, "Clock: 12h", "set Clockmode to 12h") ); } } ClockTool &m_tool; }; class EditClockFormatCmd: public FbTk::Command { public: void execute() { BScreen *screen = Fluxbox::instance()->mouseScreen(); if (screen == 0) return; std::string resourcename = screen->name() + ".strftimeFormat"; CommandDialog *dialog = new CommandDialog(*screen, "Edit Clock Format", "SetResourceValue " + resourcename + " "); FbTk::RefCount > cmd(FbTk::CommandParser::instance().parse("reconfigure")); dialog->setPostCommand(cmd); dialog->setText(screen->resourceManager().resourceValue(resourcename)); dialog->show(); } }; ClockTool::ClockTool(const FbTk::FbWindow &parent, FbTk::ThemeProxy &theme, BScreen &screen, FbTk::Menu &menu): ToolbarItem(ToolbarItem::FIXED), m_button(parent, theme->font(), FbTk::BiDiString("")), m_theme(theme), m_screen(screen), m_pixmap(0), m_timeformat(screen.resourceManager(), std::string("%k:%M"), screen.name() + ".strftimeFormat", screen.altName() + ".StrftimeFormat"), m_stringconvertor(FbTk::StringConvertor::ToFbString) { // attach signals m_tracker.join(theme.reconfigSig(), FbTk::MemFun(*this, &ClockTool::themeReconfigured)); std::string time_locale = setlocale(LC_TIME, NULL); size_t pos = time_locale.find('.'); if (pos != std::string::npos) time_locale = time_locale.substr(pos+1); if (!time_locale.empty()) m_stringconvertor.setSource(time_locale); _FB_USES_NLS; m_timer.setTimeout(calcNextTimeout(*m_timeformat)); FbTk::RefCount > update_graphic(new FbTk::SimpleCommand(*this, &ClockTool::updateTime)); m_timer.setCommand(update_graphic); m_timer.start(); m_button.setGC(m_theme->textGC()); // setup menu FbTk::RefCount > saverc(FbTk::CommandParser::instance().parse("saverc")); FbTk::MenuItem *item = new ClockMenuItem(*this); item->setCommand(saverc); menu.insert(item); FbTk::RefCount > editformat_cmd(new EditClockFormatCmd()); menu.insert(_FB_XTEXT(Toolbar, ClockEditFormat, "Edit Clock Format", "edit Clock Format") , editformat_cmd); themeReconfigured(); } ClockTool::~ClockTool() { // remove cached pixmap if (m_pixmap) m_screen.imageControl().removeImage(m_pixmap); } void ClockTool::move(int x, int y) { m_button.move(x, y); } void ClockTool::resize(unsigned int width, unsigned int height) { m_button.resize(width, height); reRender(); m_button.clear(); } void ClockTool::moveResize(int x, int y, unsigned int width, unsigned int height) { m_button.moveResize(x, y, width, height); reRender(); m_button.clear(); } void ClockTool::show() { m_button.show(); } void ClockTool::hide() { m_button.hide(); } void ClockTool::setTimeFormat(const std::string &format) { *m_timeformat = format; themeReconfigured(); } void ClockTool::themeReconfigured() { updateTime(); // + 2 to make the entire text fit inside // we only replace numbers with zeros because everything else should be // relatively static. If we replace all text with zeros then widths of // proportional fonts with some strftime formats will be considerably off. FbTk::FbString text(m_button.text().logical()); int textlen = text.size(); for (int i=0; i < textlen; ++i) { if (isdigit(text[i])) // don't bother replacing zeros text[i] = '0'; } text.append("00"); // pad unsigned int new_width = m_button.width(); unsigned int new_height = m_button.height(); translateSize(orientation(), new_width, new_height); new_width = m_theme->font().textWidth(text.c_str(), text.size()); translateSize(orientation(), new_width, new_height); if (new_width != m_button.width() || new_height != m_button.height()) { resize(new_width, new_height); resizeSig().emit(); } } unsigned int ClockTool::borderWidth() const { return m_button.borderWidth(); } unsigned int ClockTool::width() const { return m_button.width(); } unsigned int ClockTool::height() const { return m_button.height(); } void ClockTool::updateTime() { m_timer.setTimeout(calcNextTimeout(*m_timeformat)); time_t the_time = time(NULL); if (the_time != -1) { char time_string[255]; int time_string_len; struct tm *time_type = localtime(&the_time); if (time_type == 0) return; #ifdef HAVE_STRFTIME time_string_len = strftime(time_string, 255, m_timeformat->c_str(), time_type); if( time_string_len == 0) return; std::string text = m_stringconvertor.recode(time_string); if (m_button.text().logical() == text) return; m_button.setText(text); unsigned int new_width = m_theme->font().textWidth(time_string, time_string_len) + 2; if (new_width > m_button.width()) { resize(new_width, m_button.height()); resizeSig().emit(); } #else // dont have strftime so we have to set it to hour:minut // sprintf(time_string, "%d:%d", ); #endif // HAVE_STRFTIME } } // Just change things that affect the size void ClockTool::updateSizing() { m_button.setBorderWidth(m_theme->border().width()); // resizes if new timeformat themeReconfigured(); } void ClockTool::reRender() { if (m_pixmap) m_screen.imageControl().removeImage(m_pixmap); if (m_theme->texture().usePixmap()) { m_pixmap = m_screen.imageControl().renderImage(width(), height(), m_theme->texture(), orientation()); m_button.setBackgroundPixmap(m_pixmap); } else { m_pixmap = 0; m_button.setBackgroundColor(m_theme->texture().color()); } } void ClockTool::renderTheme(int alpha) { m_button.setAlpha(alpha); m_button.setJustify(m_theme->justify()); reRender(); m_button.setBorderWidth(m_theme->border().width()); m_button.setBorderColor(m_theme->border().color()); m_button.clear(); } void ClockTool::setOrientation(FbTk::Orientation orient) { m_button.setOrientation(orient); ToolbarItem::setOrientation(orient); } fluxbox-1.3.5/src/PaxHeaders.25974/ClockTool.hh0000644000175000017500000000013212106662425017255 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.367812461 30 ctime=1360750008.635811615 fluxbox-1.3.5/src/ClockTool.hh0000644000175000017500000000533512106662425015312 0ustar00mgmg00000000000000// ClockTool.hh // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef CLOCKTOOL_HH #define CLOCKTOOL_HH #include "ToolbarItem.hh" #include "FbTk/Signal.hh" #include "FbTk/TextButton.hh" #include "FbTk/Resource.hh" #include "FbTk/Timer.hh" #include "FbTk/FbString.hh" class ToolTheme; class BScreen; namespace FbTk { class ImageControl; class Menu; template class ThemeProxy; } class ClockTool:public ToolbarItem { public: ClockTool(const FbTk::FbWindow &parent, FbTk::ThemeProxy &theme, BScreen &screen, FbTk::Menu &menu); virtual ~ClockTool(); void move(int x, int y); void resize(unsigned int width, unsigned int height); void moveResize(int x, int y, unsigned int width, unsigned int height); void show(); void hide(); void setTimeFormat(const std::string &format); // accessors unsigned int width() const; unsigned int height() const; unsigned int borderWidth() const; const std::string &timeFormat() const { return *m_timeformat; } void setOrientation(FbTk::Orientation orient); void parentMoved() { m_button.parentMoved(); } private: void updateTime(); void themeReconfigured(); void renderTheme(int alpha); void reRender(); void updateSizing(); FbTk::TextButton m_button; const FbTk::ThemeProxy &m_theme; BScreen &m_screen; Pixmap m_pixmap; FbTk::Timer m_timer; FbTk::Resource m_timeformat; FbTk::StringConvertor m_stringconvertor; FbTk::SignalTracker m_tracker; }; #endif // CLOCKTOOL_HH fluxbox-1.3.5/src/PaxHeaders.25974/ToolbarItem.cc0000644000175000017500000000013212106662425017573 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.367812461 30 ctime=1360750008.639811615 fluxbox-1.3.5/src/ToolbarItem.cc0000644000175000017500000000254712106662425015632 0ustar00mgmg00000000000000// ToolbarItem.cc // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "ToolbarItem.hh" ToolbarItem::ToolbarItem(Type type):m_type(type), m_orientation(FbTk::ROT0) { } ToolbarItem::~ToolbarItem() { } fluxbox-1.3.5/src/PaxHeaders.25974/ToolbarItem.hh0000644000175000017500000000013212106662425017605 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.363812461 30 ctime=1360750008.639811615 fluxbox-1.3.5/src/ToolbarItem.hh0000644000175000017500000000606212106662425015640 0ustar00mgmg00000000000000// ToolbarItem.hh // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef TOOLBARITEM_HH #define TOOLBARITEM_HH #include "FbTk/Signal.hh" #include "FbTk/Orientation.hh" /// An item in the toolbar that has either fixed or relative size to the toolbar class ToolbarItem { public: /// size type in the toolbar enum Type { FIXED, ///< the size can not be changed RELATIVE, ///< the size can be changed SQUARE ///< the size is fixed relative to the parent, and in both dimensions }; explicit ToolbarItem(Type type); virtual ~ToolbarItem(); virtual void move(int x, int y) = 0; virtual void resize(unsigned int width, unsigned int height) = 0; virtual void moveResize(int x, int y, unsigned int width, unsigned int height) = 0; virtual void show() = 0; virtual void hide() = 0; virtual unsigned int width() const = 0; virtual unsigned int height() const = 0; virtual unsigned int borderWidth() const = 0; // some items might be there, but effectively empty, so shouldn't appear virtual bool active() { return true; } // Tools should NOT listen to theme changes - they'll get notified by // the toolbar instead. Otherwise there are ordering problems. virtual void renderTheme(int alpha) = 0; // insist implemented, even if blank virtual void parentMoved() = 0; // called when moved from hiding // just update theme items that affect the size virtual void updateSizing() = 0; FbTk::Signal<> &resizeSig() { return m_resize_sig; } void setType(Type type) { m_type = type; } Type type() const { return m_type; } FbTk::Orientation orientation() const { return m_orientation; } virtual void setOrientation(FbTk::Orientation orient) { m_orientation = orient; } private: Type m_type; FbTk::Orientation m_orientation; FbTk::Signal<> m_resize_sig; }; #endif // TOOLBARITEM_HH fluxbox-1.3.5/src/PaxHeaders.25974/ToolbarTheme.cc0000644000175000017500000000013212106662425017737 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.363812461 30 ctime=1360750008.639811615 fluxbox-1.3.5/src/ToolbarTheme.cc0000644000175000017500000000522612106662425015773 0ustar00mgmg00000000000000// ToolbarTheme.cc a theme class for Toolbar // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "ToolbarTheme.hh" #include "FbTk/App.hh" #include using std::string; ToolbarTheme::ToolbarTheme(int screen_num): FbTk::Theme(screen_num), m_toolbar(*this, "toolbar", "Toolbar"), m_border(*this, "toolbar", "Toolbar"), m_bevel_width(*this, "toolbar.bevelWidth", "Toolbar.BevelWidth"), m_shape(*this, "toolbar.shaped", "Toolbar.Shaped"), m_height(*this, "toolbar.height", "Toolbar.Height"), m_button_size(*this, "toolbar.button.size", "Toolbar.Button.Size") { // set default value *m_bevel_width = 0; *m_shape = false; *m_height = 0; *m_button_size = -1; FbTk::ThemeManager::instance().loadTheme(*this); } ToolbarTheme::~ToolbarTheme() { } bool ToolbarTheme::fallback(FbTk::ThemeItem_base &item) { if (item.name().find(".borderWidth") != string::npos) { return FbTk::ThemeManager::instance().loadItem(item, "borderWidth", "BorderWidth"); } else if (item.name().find(".borderColor") != string::npos) { return FbTk::ThemeManager::instance().loadItem(item, "borderColor", "BorderColor"); } else if (item.name() == "toolbar.bevelWidth") { return FbTk::ThemeManager::instance().loadItem(item, "bevelWidth", "BevelWidth"); } return false; } void ToolbarTheme::reconfigTheme() { if (*m_bevel_width > 20) *m_bevel_width = 20; if (*m_height > 100) *m_height = 100; else if (*m_height < 0) *m_height = 0; if (*m_button_size > 100) *m_button_size = 100; } fluxbox-1.3.5/src/PaxHeaders.25974/ToolbarTheme.hh0000644000175000017500000000013212106662425017751 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.363812461 30 ctime=1360750008.639811615 fluxbox-1.3.5/src/ToolbarTheme.hh0000644000175000017500000000451712106662425016007 0ustar00mgmg00000000000000// ToolbarTheme.hh a theme class for Toolbar // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef TOOLBARTHEME_HH #define TOOLBARTHEME_HH #include "FbTk/Theme.hh" #include "FbTk/Texture.hh" #include "FbTk/BorderTheme.hh" /// toolbar theme class container class ToolbarTheme: public FbTk::Theme, public FbTk::ThemeProxy { public: explicit ToolbarTheme(int screen_num); virtual ~ToolbarTheme(); void reconfigTheme(); const FbTk::BorderTheme &border() const { return m_border; } const FbTk::Texture &toolbar() const { return *m_toolbar; } bool fallback(FbTk::ThemeItem_base &item); int bevelWidth() const { return *m_bevel_width; } bool shape() const { return *m_shape; } int height() const { return *m_height; } int buttonSize() const { return *m_button_size; } virtual FbTk::Signal<> &reconfigSig() { return FbTk::Theme::reconfigSig(); } virtual ToolbarTheme &operator *() { return *this; } virtual const ToolbarTheme &operator *() const { return *this; } private: FbTk::ThemeItem m_toolbar; FbTk::BorderTheme m_border; FbTk::ThemeItem m_bevel_width; FbTk::ThemeItem m_shape; FbTk::ThemeItem m_height, m_button_size; }; #endif // TOOLBARTHEME_HH fluxbox-1.3.5/src/PaxHeaders.25974/Toolbar.cc0000644000175000017500000000013212106662425016754 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.359812461 30 ctime=1360750008.643811615 fluxbox-1.3.5/src/Toolbar.cc0000644000175000017500000011046112106662425015006 0ustar00mgmg00000000000000// Toolbar.cc for Fluxbox // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Toolbar.cc for Blackbox - an X11 Window manager // Copyright (c) 1997 - 2000 Brad Hughes (bhughes at tcac.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "Toolbar.hh" // tool #include "ToolbarItem.hh" // themes #include "ToolbarTheme.hh" #include "fluxbox.hh" #include "Keys.hh" #include "Screen.hh" #include "ScreenPlacement.hh" #include "WindowCmd.hh" #include "Strut.hh" #include "FbTk/CommandParser.hh" #include "Layer.hh" #include "FbTk/I18n.hh" #include "FbTk/ImageControl.hh" #include "FbTk/TextUtils.hh" #include "FbTk/MacroCommand.hh" #include "FbTk/EventManager.hh" #include "FbTk/SimpleCommand.hh" #include "FbTk/StringUtil.hh" #include "FbTk/Transparent.hh" #include "FbTk/BoolMenuItem.hh" #include "FbTk/IntMenuItem.hh" #include "FbTk/Shape.hh" #include "FbTk/MemFun.hh" #include "FbTk/STLUtil.hh" #include "FbTk/Util.hh" // use GNU extensions #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif // _GNU_SOURCE #ifdef HAVE_CONFIG_H #include "config.h" #endif // HAVE_CONFIG_H #include #include #ifdef HAVE_CSTRING #include #else #include #endif #include #include #include #include using std::string; using std::pair; using std::list; using FbTk::STLUtil::forAll; namespace { struct ToolbarPlacementString { Toolbar::Placement placement; const char* str; }; const ToolbarPlacementString placement_strings[] = { { Toolbar::TOPLEFT, "TopLeft" }, { Toolbar::TOPCENTER, "TopCenter" }, { Toolbar::TOPRIGHT, "TopRight" }, { Toolbar::BOTTOMLEFT, "BottomLeft" }, { Toolbar::BOTTOMCENTER, "BottomCenter" }, { Toolbar::BOTTOMRIGHT, "BottomRight" }, { Toolbar::LEFTBOTTOM, "LeftBottom" }, { Toolbar::LEFTCENTER, "LeftCenter" }, { Toolbar::LEFTTOP, "LeftTop" }, { Toolbar::RIGHTBOTTOM, "RightBottom" }, { Toolbar::RIGHTCENTER, "RightCenter" }, { Toolbar::RIGHTTOP, "RightTop" } }; } namespace FbTk { template<> string FbTk::Resource:: getString() const { size_t i = (m_value == FbTk::Util::clamp(m_value, Toolbar::TOPLEFT, Toolbar::RIGHTTOP) ? m_value : Toolbar::DEFAULT) - Toolbar::TOPLEFT; return placement_strings[i].str; } template<> void FbTk::Resource:: setFromString(const char *strval) { size_t i; for (i = 0; i < sizeof(placement_strings)/sizeof(ToolbarPlacementString); ++i) { if (strcasecmp(strval, placement_strings[i].str) == 0) { m_value = placement_strings[i].placement; return; } } setDefaultValue(); } } // end namespace FbTk namespace { class PlaceToolbarMenuItem: public FbTk::RadioMenuItem { public: PlaceToolbarMenuItem(const FbTk::FbString &label, Toolbar &toolbar, Toolbar::Placement place): FbTk::RadioMenuItem(label), m_toolbar(toolbar), m_place(place) { setCloseOnClick(false); } bool isSelected() const { return m_toolbar.placement() == m_place; } void click(int button, int time, unsigned int mods) { m_toolbar.setPlacement(m_place); m_toolbar.reconfigure(); m_toolbar.placementMenu().reconfigure(); Fluxbox::instance()->save_rc(); } private: Toolbar &m_toolbar; Toolbar::Placement m_place; }; } // end anonymous // toolbar frame Toolbar::Frame::Frame(FbTk::EventHandler &evh, int screen_num): window(screen_num, // screen (parent) 0, 0, // pos 10, 10, // size // event mask ButtonPressMask | ButtonReleaseMask | ExposureMask | EnterWindowMask | LeaveWindowMask | SubstructureNotifyMask, true) // override redirect { FbTk::EventManager &evm = *FbTk::EventManager::instance(); evm.add(evh, window); } Toolbar::Frame::~Frame() { FbTk::EventManager &evm = *FbTk::EventManager::instance(); evm.remove(window); } Toolbar::Toolbar(BScreen &scrn, FbTk::Layer &layer, size_t width): m_hidden(false), frame(*this, scrn.screenNumber()), m_window_pm(0), m_screen(scrn), m_layeritem(frame.window, layer), m_layermenu(scrn.menuTheme(), scrn.imageControl(), *scrn.layerManager().getLayer(ResourceLayer::MENU), this, true), m_placementmenu(scrn.menuTheme(), scrn.imageControl(), *scrn.layerManager().getLayer(ResourceLayer::MENU)), m_toolbarmenu(scrn.menuTheme(), scrn.imageControl(), *scrn.layerManager().getLayer(ResourceLayer::MENU)), #ifdef XINERAMA m_xineramaheadmenu(0), #endif // XINERAMA m_theme(scrn.screenNumber()), m_tool_factory(scrn), m_strut(0), // lock rcmanager here m_rc_auto_hide(scrn.resourceManager().lock(), false, scrn.name() + ".toolbar.autoHide", scrn.altName() + ".Toolbar.AutoHide"), m_rc_maximize_over(scrn.resourceManager(), false, scrn.name() + ".toolbar.maxOver", scrn.altName() + ".Toolbar.MaxOver"), m_rc_visible(scrn.resourceManager(), true, scrn.name() + ".toolbar.visible", scrn.altName() + ".Toolbar.Visible"), m_rc_width_percent(scrn.resourceManager(), 100, scrn.name() + ".toolbar.widthPercent", scrn.altName() + ".Toolbar.WidthPercent"), m_rc_alpha(scrn.resourceManager(), 255, scrn.name() + ".toolbar.alpha", scrn.altName() + ".Toolbar.Alpha"), m_rc_layernum(scrn.resourceManager(), ResourceLayer(ResourceLayer::DOCK), scrn.name() + ".toolbar.layer", scrn.altName() + ".Toolbar.Layer"), m_rc_on_head(scrn.resourceManager(), 1, scrn.name() + ".toolbar.onhead", scrn.altName() + ".Toolbar.onHead"), m_rc_placement(scrn.resourceManager(), Toolbar::BOTTOMCENTER, scrn.name() + ".toolbar.placement", scrn.altName() + ".Toolbar.Placement"), m_rc_height(scrn.resourceManager(), 0, scrn.name() + ".toolbar.height", scrn.altName() + ".Toolbar.Height"), m_rc_tools(scrn.resourceManager(), "prevworkspace, workspacename, nextworkspace, iconbar, systemtray, clock", scrn.name() + ".toolbar.tools", scrn.altName() + ".Toolbar.Tools"), m_shape(new FbTk::Shape(frame.window, 0)), m_resize_lock(false) { _FB_USES_NLS; frame.window.setWindowRole("fluxbox-toolbar"); // get this on antialias change m_signal_tracker.join(screen().reconfigureSig(), FbTk::MemFunIgnoreArgs(*this, &Toolbar::reconfigure)); // we need to get notified when the theme is reloaded m_signal_tracker.join(m_theme.reconfigSig(), FbTk::MemFun(*this, &Toolbar::reconfigure)); // listen to screen size changes m_signal_tracker.join(screen().resizeSig(), FbTk::MemFun(*this, &Toolbar::screenChanged)); moveToLayer((*m_rc_layernum).getNum()); m_layermenu.setLabel(_FB_XTEXT(Toolbar, Layer, "Toolbar Layer", "Title of toolbar layer menu")); m_placementmenu.setLabel(_FB_XTEXT(Toolbar, Placement, "Toolbar Placement", "Title of toolbar placement menu")); m_layermenu.setInternalMenu(); m_placementmenu.setInternalMenu(); m_toolbarmenu.setInternalMenu(); setupMenus(); // add menu to screen screen().addConfigMenu(_FB_XTEXT(Toolbar, Toolbar, "Toolbar", "title of toolbar menu item"), menu()); // geometry settings frame.width = width; frame.height = 10; frame.bevel_w = 1; frame.grab_x = frame.grab_y = 0; // setup hide timer m_hide_timer.setTimeout(Fluxbox::instance()->getAutoRaiseDelay() * FbTk::FbTime::IN_MILLISECONDS); FbTk::RefCount > toggle_hidden(new FbTk::SimpleCommand(*this, &Toolbar::toggleHidden)); m_hide_timer.setCommand(toggle_hidden); m_hide_timer.fireOnce(true); // show all windows frame.window.showSubwindows(); // frame.window.show(); scrn.resourceManager().unlock(); // setup to listen to child events FbTk::EventManager::instance()->addParent(*this, window()); Fluxbox::instance()->keys()->registerWindow(window().window(), *this, Keys::ON_TOOLBAR); // get everything together reconfigure(); // this gets done by the screen later as it loads } Toolbar::~Toolbar() { if (Fluxbox::instance()->keys()) Fluxbox::instance()->keys()->unregisterWindow(window().window()); FbTk::EventManager::instance()->remove(window()); // remove menu items before we delete tools so we dont end up // with dangling pointers to old submenu items (internal menus) // from the tools screen().removeConfigMenu(menu()); menu().removeAll(); deleteItems(); clearStrut(); if (m_window_pm) screen().imageControl().removeImage(m_window_pm); } void Toolbar::clearStrut() { if (m_strut) { screen().clearStrut(m_strut); m_strut = 0; } } void Toolbar::updateStrut() { bool had_strut = m_strut ? true : false; clearStrut(); // we should request space if we're in autohide mode or // if the user dont want to request space for toolbar. if (doAutoHide() || *m_rc_maximize_over || ! *m_rc_visible) { if (had_strut) screen().updateAvailableWorkspaceArea(); return; } // request area on screen int top = 0, bottom = 0, left = 0, right = 0; switch (placement()) { case TOPLEFT: case TOPCENTER: case TOPRIGHT: top = height() + 2 * theme()->border().width(); break; case BOTTOMLEFT: case BOTTOMCENTER: case BOTTOMRIGHT: bottom = height() + 2 * theme()->border().width(); break; case RIGHTTOP: case RIGHTCENTER: case RIGHTBOTTOM: right = width() + 2 * theme()->border().width(); break; case LEFTTOP: case LEFTCENTER: case LEFTBOTTOM: left = width() + 2 * theme()->border().width(); break; }; m_strut = screen().requestStrut(getOnHead(), left, right, top, bottom); screen().updateAvailableWorkspaceArea(); } bool Toolbar::isVertical() const { return (placement() == RIGHTCENTER || placement() == RIGHTTOP || placement() == RIGHTBOTTOM || placement() == LEFTCENTER || placement() == LEFTTOP || placement() == LEFTBOTTOM); } void Toolbar::raise() { m_layeritem.raise(); } void Toolbar::lower() { m_layeritem.lower(); } void Toolbar::screenChanged(BScreen &screen) { reconfigure(); } void Toolbar::reconfigure() { updateVisibleState(); if (doAutoHide() && !isHidden() && !m_hide_timer.isTiming()) m_hide_timer.start(); if (!doAutoHide() && isHidden()) toggleHidden(); m_tool_factory.updateThemes(); // parse resource tools and determine if we need to rebuild toolbar bool need_update = false; // parse and transform to lower case list tools; FbTk::StringUtil::stringtok(tools, *m_rc_tools, ", "); transform(tools.begin(), tools.end(), tools.begin(), FbTk::StringUtil::toLower); if (!tools.empty() && tools.size() == m_tools.size()) { StringList::const_iterator tool_it = tools.begin(); StringList::const_iterator current_tool_it = m_tools.begin(); StringList::const_iterator tool_it_end = tools.end(); for (; tool_it != tool_it_end; ++tool_it, ++current_tool_it) { if (*current_tool_it != *tool_it) break; } // did we find anything that wasn't in the right place or new item? if (tool_it != tool_it_end) need_update = true; } else // sizes does not match so we update need_update = true; if (need_update) { // destroy tools and rebuild them deleteItems(); // they will be readded later menu().removeAll(); setupMenus(true); // rebuild menu but skip rebuild of placement menu m_tools = tools; // copy values if (!m_tools.empty()) { // create items StringList::const_iterator item_it = m_tools.begin(); StringList::const_iterator item_it_end = m_tools.end(); for (; item_it != item_it_end; ++item_it) { ToolbarItem *item = m_tool_factory.create(*item_it, frame.window, *this); if (item == 0) continue; m_item_list.push_back(item); m_signal_tracker.join(item->resizeSig(), FbTk::MemFun(*this, &Toolbar::rearrangeItems)); } // show all items frame.window.showSubwindows(); } } else { // just update the menu menu().reconfigure(); } frame.bevel_w = theme()->bevelWidth(); // destroy shape if the theme wasn't specified with one, // or create one if (theme()->shape() == false && m_shape.get()) m_shape.reset(0); else if (theme()->shape() && m_shape.get() == 0) { m_shape.reset(new FbTk::Shape(frame.window, 0)); } // recalibrate size setPlacement(placement()); if (isHidden()) { frame.window.moveResize(frame.x_hidden, frame.y_hidden, frame.width, frame.height); } else { frame.window.moveResize(frame.x, frame.y, frame.width, frame.height); } // render frame window Pixmap tmp = m_window_pm; if (!theme()->toolbar().usePixmap()) { m_window_pm = 0; frame.window.setBackgroundColor(theme()->toolbar().color()); } else { FbTk::Orientation orient = FbTk::ROT0; Toolbar::Placement where = *m_rc_placement; if (where == LEFTCENTER || where == LEFTTOP || where == LEFTBOTTOM) orient = FbTk::ROT270; if (where == RIGHTCENTER || where == RIGHTTOP || where == RIGHTBOTTOM) orient = FbTk::ROT90; m_window_pm = screen().imageControl().renderImage( frame.window.width(), frame.window.height(), theme()->toolbar(), orient); frame.window.setBackgroundPixmap(m_window_pm); } if (tmp) screen().imageControl().removeImage(tmp); frame.window.setBorderColor(theme()->border().color()); frame.window.setBorderWidth(theme()->border().width()); bool have_composite = FbTk::Transparent::haveComposite(); // have_composite could have changed, so we need to change both if (have_composite) { frame.window.setOpaque(alpha()); frame.window.setAlpha(255); } else { frame.window.setOpaque(255); frame.window.setAlpha(alpha()); } frame.window.clear(); if (theme()->shape() && m_shape.get()) m_shape->update(); forAll(m_item_list, std::mem_fun(&ToolbarItem::updateSizing)); rearrangeItems(); forAll(m_item_list, std::bind2nd(std::mem_fun(&ToolbarItem::renderTheme), alpha())); // we're done with all resizing and stuff now we can request a new // area to be reserved on screen updateStrut(); #ifdef XINERAMA if (m_xineramaheadmenu) m_xineramaheadmenu->reloadHeads(); #endif // XINERAMA } void Toolbar::buttonPressEvent(XButtonEvent &be) { if (Fluxbox::instance()->keys()->doAction(be.type, be.state, be.button, Keys::ON_TOOLBAR, 0, be.time)) return; if (be.button == 1) raise(); if (be.button != 3) return; screen() .placementStrategy() .placeAndShowMenu(menu(), be.x_root, be.y_root, false); } void Toolbar::enterNotifyEvent(XCrossingEvent &ce) { Fluxbox::instance()->keys()->doAction(ce.type, ce.state, 0, Keys::ON_TOOLBAR); if (! doAutoHide()) { if (isHidden()) toggleHidden(); return; } if (isHidden()) { if (! m_hide_timer.isTiming()) m_hide_timer.start(); } else { if (m_hide_timer.isTiming()) m_hide_timer.stop(); } } void Toolbar::leaveNotifyEvent(XCrossingEvent &event) { // in autoHide mode we'll receive a leaveNotifyEvent when activating // the toolbar. so check if we are still inside the toolbar area. // event.subwindow gets != None if we really left the window (eg the Slit // was entered ontop of the toolbar) if (event.x_root > x() && event.x_root <= (int)(x() + width()) && event.y_root > y() && event.y_root <= (int)(y() + height()) && event.subwindow == None ) { return; } Fluxbox::instance()->keys()->doAction(event.type, event.state, 0, Keys::ON_TOOLBAR); if (! doAutoHide()) return; if (isHidden()) { if (m_hide_timer.isTiming()) m_hide_timer.stop(); } else if (! menu().isVisible() && ! m_hide_timer.isTiming()) m_hide_timer.start(); } void Toolbar::exposeEvent(XExposeEvent &ee) { if (ee.window == frame.window) { frame.window.clearArea(ee.x, ee.y, ee.width, ee.height); } } void Toolbar::handleEvent(XEvent &event) { /* Commented out by Simon 16jun04, since it causes LOTS of rearrangeItems particularly on startup. This was needed to resize when tool changes its own size, but it has too many side effects. Use the resizeSig in ToolbarItem instead. if (event.type == ConfigureNotify && event.xconfigure.window != window().window()) { rearrangeItems(); } */ } void Toolbar::setPlacement(Toolbar::Placement where) { // disable vertical toolbar *m_rc_placement = where; int head_x = 0, head_y = 0, head_w = screen().width(), head_h = screen().height(); if (screen().hasXinerama()) { int head = *m_rc_on_head; head_x = screen().getHeadX(head); head_y = screen().getHeadY(head); head_w = screen().getHeadWidth(head); head_h = screen().getHeadHeight(head); } int border_width = theme()->border().width(); frame.width = (head_w - 2*border_width) * (*m_rc_width_percent) / 100; //!! TODO: change this // max height of each toolbar items font... unsigned int max_height = m_tool_factory.maxFontHeight() + 2; if (theme()->height() > 0) max_height = theme()->height(); if (*m_rc_height > 0 && *m_rc_height < 100) max_height = *m_rc_height; frame.height = max_height; frame.height += (frame.bevel_w * 2); // should we flipp sizes? if (isVertical()) { frame.width = frame.height; frame.height = head_h * (*m_rc_width_percent) / 100; } // else horizontal toolbar // So we get at least one pixel visible in hidden mode int pixel = (border_width == 0 ? 1 : 0); FbTk::Orientation orient = FbTk::ROT0; switch (where) { case TOPLEFT: frame.x = head_x; frame.y = head_y; frame.x_hidden = head_x; frame.y_hidden = head_y - border_width - frame.height + pixel; if (m_shape.get()) m_shape->setPlaces(FbTk::Shape::BOTTOMRIGHT | FbTk::Shape::BOTTOMLEFT); break; case BOTTOMLEFT: frame.x = head_x; frame.y = head_y + head_h - frame.height - border_width*2; frame.x_hidden = head_x; frame.y_hidden = head_y + head_h - border_width - pixel; if (m_shape.get()) m_shape->setPlaces(FbTk::Shape::TOPRIGHT | FbTk::Shape::TOPLEFT); break; case TOPCENTER: frame.x = head_x + (head_w - frame.width) / 2 - border_width; frame.y = head_y; frame.x_hidden = frame.x; frame.y_hidden = head_y - border_width - frame.height + pixel; if (m_shape.get()) m_shape->setPlaces(FbTk::Shape::BOTTOMRIGHT | FbTk::Shape::BOTTOMLEFT); break; case TOPRIGHT: frame.x = head_x + head_w - frame.width - border_width*2; frame.y = head_y; frame.x_hidden = frame.x; frame.y_hidden = head_y - border_width - frame.height + pixel; if (m_shape.get()) m_shape->setPlaces(FbTk::Shape::BOTTOMRIGHT | FbTk::Shape::BOTTOMLEFT); break; case BOTTOMRIGHT: frame.x = head_x + head_w - frame.width - border_width*2; frame.y = head_y + head_h - frame.height - border_width*2; frame.x_hidden = frame.x; frame.y_hidden = head_y + head_h - border_width - pixel; if (m_shape.get()) m_shape->setPlaces(FbTk::Shape::TOPRIGHT | FbTk::Shape::TOPLEFT); break; case BOTTOMCENTER: // default is BOTTOMCENTER frame.x = head_x + (head_w - frame.width) / 2 - border_width; frame.y = head_y + head_h - frame.height - border_width*2; frame.x_hidden = frame.x; frame.y_hidden = head_y + head_h - border_width - pixel; if (m_shape.get()) m_shape->setPlaces(FbTk::Shape::TOPRIGHT | FbTk::Shape::TOPLEFT); break; case LEFTCENTER: orient = FbTk::ROT270; frame.x = head_x; frame.y = head_y + (head_h - frame.height)/2 - border_width; frame.x_hidden = frame.x - frame.width - border_width + pixel; frame.y_hidden = frame.y; if (m_shape.get()) m_shape->setPlaces(FbTk::Shape::TOPRIGHT | FbTk::Shape::BOTTOMRIGHT); break; case LEFTTOP: orient = FbTk::ROT270; frame.x = head_x; frame.y = head_y; frame.x_hidden = frame.x - frame.width - border_width + pixel; frame.y_hidden = frame.y; if (m_shape.get()) m_shape->setPlaces(FbTk::Shape::TOPRIGHT | FbTk::Shape::BOTTOMRIGHT); break; case LEFTBOTTOM: orient = FbTk::ROT270; frame.x = head_x; frame.y = head_y + head_h - frame.height - border_width*2; frame.x_hidden = frame.x - frame.width - border_width + pixel; frame.y_hidden = frame.y; if (m_shape.get()) m_shape->setPlaces(FbTk::Shape::TOPRIGHT | FbTk::Shape::BOTTOMRIGHT); break; case RIGHTCENTER: orient = FbTk::ROT90; frame.x = head_x + head_w - frame.width - border_width*2; frame.y = head_y + (head_h - frame.height)/2 - border_width; frame.x_hidden = frame.x + frame.width + border_width - pixel; frame.y_hidden = frame.y; if (m_shape.get()) m_shape->setPlaces(FbTk::Shape::TOPLEFT | FbTk::Shape::BOTTOMLEFT); break; case RIGHTTOP: orient = FbTk::ROT90; frame.x = head_x + head_w - frame.width - border_width*2; frame.y = head_y; frame.x_hidden = frame.x + frame.width + border_width - pixel; frame.y_hidden = frame.y; if (m_shape.get()) m_shape->setPlaces(FbTk::Shape::TOPLEFT | FbTk::Shape::BOTTOMLEFT); break; case RIGHTBOTTOM: orient = FbTk::ROT90; frame.x = head_x + head_w - frame.width - border_width*2; frame.y = head_y + head_h - frame.height - border_width*2; frame.x_hidden = frame.x + frame.width + border_width - pixel; frame.y_hidden = frame.y; if (m_shape.get()) m_shape->setPlaces(FbTk::Shape::TOPLEFT | FbTk::Shape::BOTTOMLEFT); break; } forAll(m_item_list, std::bind2nd(std::mem_fun(&ToolbarItem::setOrientation), orient)); } void Toolbar::updateVisibleState() { *m_rc_visible ? frame.window.show() : frame.window.hide(); } void Toolbar::toggleHidden() { // toggle hidden m_hidden = ! m_hidden; if (isHidden()) frame.window.move(frame.x_hidden, frame.y_hidden); else { frame.window.move(frame.x, frame.y); forAll(m_item_list, std::mem_fun(&ToolbarItem::parentMoved)); } } void Toolbar::moveToLayer(int layernum) { m_layeritem.moveToLayer(layernum); *m_rc_layernum = layernum; } void Toolbar::setupMenus(bool skip_new_placement) { _FB_USES_NLS; using namespace FbTk; typedef RefCount > RefCommand; typedef SimpleCommand ToolbarCommand; menu().setLabel(_FB_XTEXT(Toolbar, Toolbar, "Toolbar", "Title of Toolbar menu")); RefCommand reconfig_toolbar(new ToolbarCommand(*this, &Toolbar::reconfigure)); RefCommand save_resources(FbTk::CommandParser::instance().parse("saverc")); MacroCommand *toolbar_menuitem_macro = new MacroCommand(); toolbar_menuitem_macro->add(reconfig_toolbar); toolbar_menuitem_macro->add(save_resources); RefCommand reconfig_toolbar_and_save_resource(toolbar_menuitem_macro); MacroCommand *visible_macro = new MacroCommand(); RefCommand toggle_visible(new ToolbarCommand(*this, &Toolbar::updateVisibleState)); visible_macro->add(toggle_visible); visible_macro->add(reconfig_toolbar); visible_macro->add(save_resources); RefCommand toggle_visible_cmd(visible_macro); menu().insert(new FbTk::BoolMenuItem(_FB_XTEXT(Common, Visible, "Visible", "Whether this item is visible"), m_rc_visible, toggle_visible_cmd)); menu().insert(new FbTk::BoolMenuItem(_FB_XTEXT(Common, AutoHide, "Auto hide", "Toggle auto hide of toolbar"), m_rc_auto_hide, reconfig_toolbar_and_save_resource)); MenuItem *toolbar_menuitem = new FbTk::IntMenuItem(_FB_XTEXT(Toolbar, WidthPercent, "Toolbar width percent", "Percentage of screen width taken by toolbar"), m_rc_width_percent, 0, 100, menu()); // min/max value toolbar_menuitem->setCommand(reconfig_toolbar_and_save_resource); menu().insert(toolbar_menuitem); menu().insert(new FbTk::BoolMenuItem(_FB_XTEXT(Common, MaximizeOver, "Maximize Over", "Maximize over this thing when maximizing"), m_rc_maximize_over, reconfig_toolbar_and_save_resource)); menu().insert(_FB_XTEXT(Menu, Layer, "Layer...", "Title of Layer menu"), &layerMenu()); #ifdef XINERAMA if (screen().hasXinerama()) { menu().insert(_FB_XTEXT(Menu, OnHead, "On Head...", "Title of On Head menu"), m_xineramaheadmenu = new XineramaHeadMenu(screen().menuTheme(), screen(), screen().imageControl(), *screen().layerManager().getLayer(::ResourceLayer::MENU), *this, _FB_XTEXT(Toolbar, OnHead, "Toolbar on Head", "Title of toolbar on head menu"))); } #endif // XINERAMA // menu is 3 wide, 5 down if (!skip_new_placement) { struct PlacementP { const FbTk::FbString label; Toolbar::Placement placement; }; static const PlacementP place_menu[] = { { _FB_XTEXT(Align, TopLeft, "Top Left", "Top Left"), Toolbar::TOPLEFT}, { _FB_XTEXT(Align, LeftTop, "Left Top", "Left Top"), Toolbar::LEFTTOP}, { _FB_XTEXT(Align, LeftCenter, "Left Center", "Left Center"), Toolbar::LEFTCENTER}, { _FB_XTEXT(Align, LeftBottom, "Left Bottom", "Left Bottom"), Toolbar::LEFTBOTTOM}, { _FB_XTEXT(Align, BottomLeft, "Bottom Left", "Bottom Left"), Toolbar::BOTTOMLEFT}, { _FB_XTEXT(Align, TopCenter, "Top Center", "Top Center"), Toolbar::TOPCENTER}, { "", Toolbar::TOPLEFT}, { "", Toolbar::TOPLEFT}, { "", Toolbar::TOPLEFT}, { _FB_XTEXT(Align, BottomCenter, "Bottom Center", "Bottom Center"), Toolbar::BOTTOMCENTER}, { _FB_XTEXT(Align, TopRight, "Top Right", "Top Right"), Toolbar::TOPRIGHT}, { _FB_XTEXT(Align, RightTop, "Right Top", "Right Top"), Toolbar::RIGHTTOP}, { _FB_XTEXT(Align, RightCenter, "Right Center", "Right Center"), Toolbar::RIGHTCENTER}, { _FB_XTEXT(Align, RightBottom, "Right Bottom", "Right Bottom"), Toolbar::RIGHTBOTTOM}, { _FB_XTEXT(Align, BottomRight, "Bottom Right", "Bottom Right"), Toolbar::BOTTOMRIGHT} }; placementMenu().setMinimumColumns(3); // create items in sub menu for (size_t i=0; i< sizeof(place_menu)/sizeof(PlacementP); ++i) { const PlacementP& p = place_menu[i]; if (p.label == "") { placementMenu().insert(p.label); placementMenu().setItemEnabled(i, false); } else placementMenu().insert(new PlaceToolbarMenuItem(p.label, *this, p.placement)); } } menu().insert(_FB_XTEXT(Menu, Placement, "Placement", "Title of Placement menu"), &placementMenu()); placementMenu().updateMenu(); // this saves resources and clears the slit window to update alpha value FbTk::MenuItem *alpha_menuitem = new FbTk::IntMenuItem(_FB_XTEXT(Common, Alpha, "Alpha", "Transparency level"), m_rc_alpha, 0, 255, menu()); // setup command for alpha value MacroCommand *alpha_macrocmd = new MacroCommand(); RefCount > alpha_cmd(new SimpleCommand(*this, &Toolbar::updateAlpha)); alpha_macrocmd->add(save_resources); alpha_macrocmd->add(alpha_cmd); RefCount > set_alpha_cmd(alpha_macrocmd); alpha_menuitem->setCommand(set_alpha_cmd); menu().insert(alpha_menuitem); menu().updateMenu(); } void Toolbar::saveOnHead(int head) { m_rc_on_head = head; reconfigure(); } /* * Place items next to each other, with a bevel width between, * above and below each item. BUT, if there is no bevel width, then * borders should be merged for evenness. */ void Toolbar::rearrangeItems() { if (m_resize_lock || screen().isShuttingdown() || m_item_list.empty()) return; FbTk::Orientation orient = FbTk::ROT0; switch (placement()) { case LEFTTOP: case LEFTCENTER: case LEFTBOTTOM: orient = FbTk::ROT270; break; case RIGHTTOP: case RIGHTCENTER: case RIGHTBOTTOM: orient = FbTk::ROT90; break; default: orient = FbTk::ROT0; } // lock this m_resize_lock = true; // calculate size for fixed items ItemList::iterator item_it = m_item_list.begin(); ItemList::iterator item_it_end = m_item_list.end(); int bevel_width = theme()->bevelWidth(); int fixed_width = bevel_width; // combined size of all fixed items int relative_items = 0; int last_bw = 0; // we show the largest border of adjoining items bool first = true; unsigned int width = this->width(), height = this->height(); unsigned int tmpw, tmph; FbTk::translateSize(orient, width, height); for (; item_it != item_it_end; ++item_it) { if (!(*item_it)->active()) continue; int borderW = (*item_it)->borderWidth(); if (bevel_width > 0) { // the bevel and border are fixed whether relative or not fixed_width += bevel_width + 2*borderW; } else { if (!first) { if (borderW > last_bw) fixed_width += borderW; else fixed_width += last_bw; } else { first = false; } } last_bw = borderW; tmpw = (*item_it)->width(); tmph = (*item_it)->height(); FbTk::translateSize(orient, tmpw, tmph); if ((*item_it)->type() == ToolbarItem::FIXED) { fixed_width += tmpw; } else if ((*item_it)->type() == ToolbarItem::SQUARE) { fixed_width += height; if (bevel_width) fixed_width -= 2*(borderW + bevel_width); } else { relative_items++; } } // calculate what's going to be left over to the relative sized items int relative_width = 0; int rounding_error = 0; if (relative_items == 0) relative_width = 0; else { // size left after fixed items / number of relative items relative_width = (width - fixed_width) / relative_items; rounding_error = width - fixed_width - relative_items * relative_width; } // now move and resize the items // borderWidth added back on straight away int next_x = -m_item_list.front()->borderWidth(); // list isn't empty if (bevel_width != 0) next_x = 0; last_bw = 0; for (item_it = m_item_list.begin(); item_it != item_it_end; ++item_it) { int borderW = (*item_it)->borderWidth(); if (!(*item_it)->active()) { (*item_it)->hide(); // make sure it still gets told the toolbar height tmpw = 1; tmph = height - 2*(bevel_width+borderW); if (tmph >= (1<<30)) tmph = 1; FbTk::translateSize(orient, tmpw, tmph); (*item_it)->resize(tmpw, tmph); // width of 0 changes to 1 anyway continue; } int offset = bevel_width; int size_offset = 2*(borderW + bevel_width); if (bevel_width == 0) { offset = -borderW; size_offset = 0; if (borderW > last_bw) next_x += borderW; else next_x += last_bw; } last_bw = borderW; int tmpx = next_x + offset, tmpy = offset; if ((*item_it)->type() == ToolbarItem::RELATIVE) { int extra = 0; if (rounding_error != 0) { // distribute rounding error over all relatives extra = 1; --rounding_error; } tmpw = extra + relative_width; tmph = height - size_offset; } else if ((*item_it)->type() == ToolbarItem::SQUARE) { tmpw = tmph = height - size_offset; } else { // fixed size unsigned int itemw = (*item_it)->width(), itemh = (*item_it)->height(); FbTk::translateSize(orient, itemw, itemh); tmpw = itemw; tmph = height - size_offset; } if (tmpw >= (1<<30)) tmpw = 1; if (tmph >= (1<<30)) tmph = 1; next_x += tmpw + bevel_width; if (bevel_width != 0) next_x += 2*borderW; FbTk::translateCoords(orient, tmpx, tmpy, width, height); FbTk::translatePosition(orient, tmpx, tmpy, tmpw, tmph, borderW); FbTk::translateSize(orient, tmpw, tmph); (*item_it)->moveResize(tmpx, tmpy, tmpw, tmph); (*item_it)->show(); } // unlock m_resize_lock = false; frame.window.clear(); } void Toolbar::deleteItems() { while (!m_item_list.empty()) { delete m_item_list.back(); m_item_list.pop_back(); } m_tools.clear(); } void Toolbar::updateAlpha() { // called when the alpha resource is changed if (FbTk::Transparent::haveComposite()) { frame.window.setOpaque(*m_rc_alpha); } else { frame.window.setAlpha(*m_rc_alpha); frame.window.updateBackground(false); frame.window.clear(); ItemList::iterator item_it = m_item_list.begin(); ItemList::iterator item_it_end = m_item_list.end(); for (item_it = m_item_list.begin(); item_it != item_it_end; ++item_it) { (*item_it)->renderTheme(alpha()); } } } fluxbox-1.3.5/src/PaxHeaders.25974/Toolbar.hh0000644000175000017500000000013212106662425016766 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.359812461 30 ctime=1360750008.643811615 fluxbox-1.3.5/src/Toolbar.hh0000644000175000017500000001425512106662425015024 0ustar00mgmg00000000000000// Toolbar.hh for Fluxbox // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Toolbar.hh for Blackbox - an X11 Window manager // Copyright (c) 1997 - 2000 Brad Hughes (bhughes@tcac.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef TOOLBAR_HH #define TOOLBAR_HH #include "ToolbarTheme.hh" #include "LayerMenu.hh" #include "ToolFactory.hh" #include "ToolTheme.hh" #include "Layer.hh" #ifdef XINERAMA #include "Xinerama.hh" #endif // XINERAMA #include "FbTk/Timer.hh" #include "FbTk/Resource.hh" #include "FbTk/Layer.hh" #include "FbTk/LayerItem.hh" #include "FbTk/EventHandler.hh" #include "FbTk/FbWindow.hh" #include "FbTk/Signal.hh" #include class BScreen; class Strut; class FbMenu; class ToolbarItem; namespace FbTk { class ImageControl; class Shape; } /// The toolbar. /// Handles iconbar, workspace name view and clock view class Toolbar: public FbTk::EventHandler, public LayerObject { public: /// Toolbar placement on the screen enum Placement { // top and bottom placement TOPLEFT = 1, TOPCENTER, TOPRIGHT, BOTTOMLEFT, BOTTOMCENTER, BOTTOMRIGHT, // left and right placement LEFTBOTTOM, LEFTCENTER, LEFTTOP, RIGHTBOTTOM, RIGHTCENTER, RIGHTTOP, DEFAULT = BOTTOMRIGHT }; /// Create a toolbar on the screen with specific width Toolbar(BScreen &screen, FbTk::Layer &layer, size_t width = 200); virtual ~Toolbar(); void raise(); void lower(); void updateVisibleState(); void toggleHidden(); void moveToLayer(int layernum); void saveOnHead(int head); /** @name eventhandlers */ //@{ void buttonPressEvent(XButtonEvent &be); void enterNotifyEvent(XCrossingEvent &ce); void leaveNotifyEvent(XCrossingEvent &ce); void exposeEvent(XExposeEvent &ee); void handleEvent(XEvent &event); //@} void reconfigure(); void setPlacement(Placement where); int layerNumber() const { return const_cast(m_layeritem).getLayerNum(); } const FbTk::Menu &menu() const { return m_toolbarmenu; } FbTk::Menu &menu() { return m_toolbarmenu; } FbTk::Menu &placementMenu() { return m_placementmenu; } const FbTk::Menu &placementMenu() const { return m_placementmenu; } FbTk::Menu &layerMenu() { return m_layermenu; } const FbTk::Menu &layerMenu() const { return m_layermenu; } /// are we hidden? bool isHidden() const { return m_hidden; } /// do we auto hide the toolbar? bool doAutoHide() const { return *m_rc_auto_hide; } /// @return X window of the toolbar const FbTk::FbWindow &window() const { return frame.window; } BScreen &screen() { return m_screen; } const BScreen &screen() const { return m_screen; } unsigned int width() const { return frame.window.width(); } unsigned int height() const { return frame.window.height(); } int x() const { return isHidden() ? frame.x_hidden : frame.x; } int y() const { return isHidden() ? frame.y_hidden : frame.y; } Placement placement() const { return *m_rc_placement; } /// @return pointer to iconbar if it got one, else 0 const FbTk::ThemeProxy &theme() const { return m_theme; } FbTk::ThemeProxy &theme() { return m_theme; } bool isVertical() const; int getOnHead() const { return *m_rc_on_head; } unsigned char alpha() const { return *m_rc_alpha; } private: void rearrangeItems(); void deleteItems(); void setupMenus(bool skip_new_placement=false); void clearStrut(); void updateStrut(); void updateAlpha(); /// Called when the screen changed property. void screenChanged(BScreen &screen); bool m_hidden; ///< hidden state /// Toolbar frame struct Frame { Frame(FbTk::EventHandler &evh, int screen_num); ~Frame(); FbTk::FbWindow window; int x, y, x_hidden, y_hidden, grab_x, grab_y; unsigned int width, height, bevel_w; } frame; // background pixmap Pixmap m_window_pm; BScreen &m_screen; ///< screen connection FbTk::Timer m_hide_timer; ///< timer to for auto hide toolbar FbTk::LayerItem m_layeritem; ///< layer item, must be declared before layermenu LayerMenu m_layermenu; FbMenu m_placementmenu, m_toolbarmenu; #ifdef XINERAMA XineramaHeadMenu *m_xineramaheadmenu; #endif // XINERAMA // themes ToolbarTheme m_theme; typedef std::list ItemList; ItemList m_item_list; ToolFactory m_tool_factory; Strut *m_strut; ///< created and destroyed by BScreen // resources FbTk::Resource m_rc_auto_hide, m_rc_maximize_over, m_rc_visible; FbTk::Resource m_rc_width_percent; FbTk::Resource m_rc_alpha; FbTk::Resource m_rc_layernum; FbTk::Resource m_rc_on_head; FbTk::Resource m_rc_placement; FbTk::Resource m_rc_height; FbTk::Resource m_rc_tools; std::auto_ptr m_shape; typedef std::list StringList; StringList m_tools; bool m_resize_lock; ///< to lock rearrangeItems or not FbTk::SignalTracker m_signal_tracker; }; #endif // TOOLBAR_HH fluxbox-1.3.5/src/PaxHeaders.25974/SlitClient.cc0000644000175000017500000000013212106662425017424 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.355812461 30 ctime=1360750008.643811615 fluxbox-1.3.5/src/SlitClient.cc0000644000175000017500000000534412106662425015461 0ustar00mgmg00000000000000// SlitClient.cc for fluxbox // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "SlitClient.hh" #include "Screen.hh" #include "Xutil.hh" #include "FbTk/App.hh" #include #include SlitClient::SlitClient(BScreen *screen, Window win) { initialize(screen, win); } SlitClient::SlitClient(const char *name) : m_match_name(FbTk::BiDiString(!name ? "" : name)) { initialize(); } void SlitClient::initialize(BScreen *screen, Window win) { // Now we pre-initialize a list of slit clients with names for // comparison with incoming client windows. This allows the slit // to maintain a sorted order based on a saved window name list. // Incoming windows not found in the list are appended. Matching // duplicates are inserted after the last found instance of the // matching name. m_client_window = win; m_window = m_icon_window = None; move(0, 0); resize(0, 0); if (matchName().logical().empty()) m_match_name.setLogical(Xutil::getWMClassName(clientWindow())); m_visible = true; } void SlitClient::disableEvents() { if (window() == 0) return; Display *disp = FbTk::App::instance()->display(); XSelectInput(disp, window(), NoEventMask); } void SlitClient::enableEvents() { if (window() == 0) return; Display *disp = FbTk::App::instance()->display(); XSelectInput(disp, window(), StructureNotifyMask | SubstructureNotifyMask | EnterWindowMask); } void SlitClient::hide() { XUnmapWindow(FbTk::App::instance()->display(), window()); } void SlitClient::show() { XMapWindow(FbTk::App::instance()->display(), window()); } fluxbox-1.3.5/src/PaxHeaders.25974/SlitClient.hh0000644000175000017500000000013212106662425017436 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.355812461 30 ctime=1360750008.643811615 fluxbox-1.3.5/src/SlitClient.hh0000644000175000017500000000545212106662425015473 0ustar00mgmg00000000000000// SlitClient.hh for fluxbox // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef SLITCLIENT_HH #define SLITCLIENT_HH #include "FbTk/FbString.hh" #include "FbTk/NotCopyable.hh" #include class BScreen; /// holds slit client info class SlitClient: private FbTk::NotCopyable { public: /// For adding an actual window SlitClient(BScreen *screen, Window win); /// For adding a placeholder explicit SlitClient(const char *name); const FbTk::BiDiString &matchName() const { return m_match_name; } Window window() const { return m_window; } Window clientWindow() const { return m_client_window; } Window iconWindow() const { return m_icon_window; } int x() const { return m_x; } int y() const { return m_y; } unsigned int width() const { return m_width; } unsigned int height() const { return m_height; } bool visible() const { return m_visible; } void setIconWindow(Window win) { m_icon_window = win; } void setWindow(Window win) { m_window = win; } void move(int x, int y) { m_x = x; m_y = y; } void resize(unsigned int width, unsigned int height) { m_width = width; m_height = height; } void moveResize(int x, int y, unsigned int width, unsigned int height) { m_x = x; m_y = y; m_width = width; m_height = height; } void hide(); void show(); void setVisible(bool value) { m_visible = value; } void initialize(BScreen *screen = 0, Window win= None); void disableEvents(); void enableEvents(); private: FbTk::BiDiString m_match_name; Window m_window, m_client_window, m_icon_window; int m_x, m_y; unsigned int m_width, m_height; bool m_visible; ///< whether the client should be visible or not }; #endif // SLITCLIENT_HH fluxbox-1.3.5/src/PaxHeaders.25974/SlitTheme.cc0000644000175000017500000000013212106662425017250 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.355812461 30 ctime=1360750008.647811615 fluxbox-1.3.5/src/SlitTheme.cc0000644000175000017500000000535612106662425015310 0ustar00mgmg00000000000000// SlitTheme.cc for fluxbox // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "SlitTheme.hh" SlitTheme::SlitTheme(int screen_num):FbTk::Theme(screen_num), m_texture(*this, "slit", "Slit"), m_border_width(*this, "slit.borderWidth", "Slit.borderWidth"), m_bevel_width(*this, "slit.bevelWidth", "slit.bevelWidth"), m_border_color(*this, "slit.borderColor", "Slit.BorderColor") { m_texture.setDefaultValue(); m_border_width.setDefaultValue(); m_bevel_width.setDefaultValue(); m_border_color.setDefaultValue(); // default texture type m_texture->setType(FbTk::Texture::SOLID); FbTk::ThemeManager::instance().loadTheme(*this); } void SlitTheme::reconfigTheme() { } bool SlitTheme::fallback(FbTk::ThemeItem_base &item) { if (&item == &m_texture) { return FbTk::ThemeManager::instance().loadItem(item, "toolbar", "Toolbar"); } else if (item.name().find(".borderWidth") != std::string::npos) { return FbTk::ThemeManager::instance().loadItem(item, "borderWidth", "BorderWidth"); } else if (item.name().find(".borderColor") != std::string::npos) { return FbTk::ThemeManager::instance().loadItem(item, "borderColor", "BorderColor"); } return false; } fluxbox-1.3.5/src/PaxHeaders.25974/SlitTheme.hh0000644000175000017500000000013212106662425017262 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.351812461 30 ctime=1360750008.647811615 fluxbox-1.3.5/src/SlitTheme.hh0000644000175000017500000000412412106662425015312 0ustar00mgmg00000000000000// SlitTheme.hh for fluxbox // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef SLITTHEME_HH #define SLITTHEME_HH #include "FbTk/Theme.hh" #include "FbTk/Texture.hh" #include "FbTk/Color.hh" class SlitTheme: public FbTk::Theme, public FbTk::ThemeProxy { public: explicit SlitTheme(int screen_num); void reconfigTheme(); bool fallback(FbTk::ThemeItem_base &item); const FbTk::Texture &texture() const { return *m_texture; } const FbTk::Color &borderColor() const { return *m_border_color; } int borderWidth() const { return *m_border_width; } int bevelWidth() const { return *m_bevel_width; } virtual FbTk::Signal<> &reconfigSig() { return FbTk::Theme::reconfigSig(); } virtual SlitTheme &operator *() { return *this; } virtual const SlitTheme &operator *() const { return *this; } private: FbTk::ThemeItem m_texture; FbTk::ThemeItem m_border_width, m_bevel_width; FbTk::ThemeItem m_border_color; }; #endif // SLITTHEME_HH fluxbox-1.3.5/src/PaxHeaders.25974/Slit.hh0000644000175000017500000000013212106662425016277 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.351812461 30 ctime=1360750008.647811615 fluxbox-1.3.5/src/Slit.hh0000644000175000017500000001412612106662425014332 0ustar00mgmg00000000000000// Slit.hh for Fluxbox // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Slit.hh for Blackbox - an X11 Window manager // Copyright (c) 1997 - 2000 Brad Hughes (bhughes at tcac.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef SLIT_HH #define SLIT_HH #include "SlitTheme.hh" #include "LayerMenu.hh" #include "Layer.hh" #ifdef XINERAMA #include "Xinerama.hh" #endif // XINERAMA #include "FbTk/Menu.hh" #include "FbTk/FbWindow.hh" #include "FbTk/Timer.hh" #include "FbTk/Resource.hh" #include "FbTk/LayerItem.hh" #include "FbTk/Signal.hh" #include #include #include class SlitClient; class BScreen; class FbMenu; class Strut; class Layer; /// Handles dock apps class Slit: public FbTk::EventHandler, public LayerObject, private FbTk::SignalTracker { public: typedef std::list SlitClients; /** Placement on screen */ enum Placement { // top and bottom placement TOPLEFT = 1, TOPCENTER, TOPRIGHT, BOTTOMLEFT, BOTTOMCENTER, BOTTOMRIGHT, // left and right placement LEFTBOTTOM, LEFTCENTER, LEFTTOP, RIGHTBOTTOM, RIGHTCENTER, RIGHTTOP }; Slit(BScreen &screen, FbTk::Layer &layer, const char *filename = 0); virtual ~Slit(); void show() { frame.window.show(); m_visible = true; } void hide() { frame.window.hide(); m_visible = false; } void setPlacement(Placement place); void addClient(Window clientwin); void removeClient(Window clientwin, bool remap = true); void reconfigure(); void reposition(); void shutdown(); /// save clients name in a file void saveClientList(); /// move client one position up void clientUp(SlitClient*); /// move client one position down void clientDown(SlitClient*); /// cycle slit clients up one step void cycleClientsUp(); /// cycle slit clients down one step void cycleClientsDown(); /** @name eventhandlers */ //@{ void handleEvent(XEvent &event); void buttonPressEvent(XButtonEvent &event); void enterNotifyEvent(XCrossingEvent &event); void leaveNotifyEvent(XCrossingEvent &event); void configureRequestEvent(XConfigureRequestEvent &event); void exposeEvent(XExposeEvent &event); //@} void moveToLayer(int layernum); void toggleHidden(); BScreen &screen() { return m_screen; } const BScreen &screen() const { return m_screen; } FbTk::ThemeProxy &theme() { return *m_slit_theme.get(); } const FbTk::ThemeProxy &theme() const { return *m_slit_theme.get(); } int layerNumber() const { return m_layeritem->getLayerNum(); } bool isHidden() const { return m_hidden; } bool acceptKdeDockapp() const { return *m_rc_kde_dockapp; } bool doAutoHide() const { return *m_rc_auto_hide; } Placement placement() const { return *m_rc_placement; } int getOnHead() const { return *m_rc_on_head; } void saveOnHead(int head); FbTk::Menu &menu() { return m_slitmenu; } const FbTk::FbWindow &window() const { return frame.window; } int x() const { return (m_hidden ? frame.x_hidden : frame.x); } int y() const { return (m_hidden ? frame.y_hidden : frame.y); } unsigned int width() const { return frame.width; } unsigned int height() const { return frame.height; } const SlitClients &clients() const { return m_client_list; } SlitClients &clients() { return m_client_list; } private: /// Called when screen has changed void screenSizeChanged(BScreen &screen); void updateAlpha(); void clearWindow(); void setupMenu(); void removeClient(SlitClient *client, bool remap, bool destroy); void loadClientList(const char *filename); void updateClientmenu(); void clearStrut(); void updateStrut(); // m_hidden is for autohide, m_visible is the FbWindow state bool m_hidden, m_visible; BScreen &m_screen; FbTk::Timer m_timer; SlitClients m_client_list; std::auto_ptr m_layermenu; FbMenu m_clientlist_menu, m_slitmenu; #ifdef XINERAMA XineramaHeadMenu *m_xineramaheadmenu; #endif // XINERAMA std::string m_filename; struct frame { frame(const FbTk::FbWindow &parent): window(parent, 0, 0, 10, 10, SubstructureRedirectMask | ButtonPressMask | EnterWindowMask | LeaveWindowMask | ExposureMask, true), // override redirect x(0), y(0), x_hidden(0), y_hidden(0), width(10), height(10) {} Pixmap pixmap; FbTk::FbWindow window; int x, y, x_hidden, y_hidden; unsigned int width, height; } frame; // for KDE Atom m_kwm1_dockwindow, m_kwm2_dockwindow; std::auto_ptr m_layeritem; std::auto_ptr m_slit_theme; static unsigned int s_eventmask; Strut *m_strut; FbTk::Resource m_rc_kde_dockapp, m_rc_auto_hide, m_rc_maximize_over; FbTk::Resource m_rc_placement; FbTk::Resource m_rc_alpha, m_rc_on_head; FbTk::Resource m_rc_layernum; }; #endif // SLIT_HH fluxbox-1.3.5/src/PaxHeaders.25974/Slit.cc0000644000175000017500000000013212106662425016265 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.351812461 30 ctime=1360750008.647811615 fluxbox-1.3.5/src/Slit.cc0000644000175000017500000012117012106662425014316 0ustar00mgmg00000000000000// Slit.cc for fluxbox // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Slit.cc for Blackbox - an X11 Window manager // Copyright (c) 1997 - 2000 Brad Hughes (bhughes at tcac.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "Slit.hh" //use GNU extensions #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif // _GNU_SOURCE #ifdef HAVE_CONFIG_H #include "config.h" #endif // HAVE_CONFIG_H #include "Screen.hh" #include "ScreenPlacement.hh" #include "FbTk/ImageControl.hh" #include "FbTk/RefCount.hh" #include "FbTk/EventManager.hh" #include "FbTk/SimpleCommand.hh" #include "FbTk/Theme.hh" #include "FbTk/Transparent.hh" #include "FbTk/MacroCommand.hh" #include "FbTk/MemFun.hh" #include "FbCommands.hh" #include "Layer.hh" #include "LayerMenu.hh" #include "FbTk/Layer.hh" #include "RootTheme.hh" #include "FbMenu.hh" #include "SlitTheme.hh" #include "SlitClient.hh" #include "Xutil.hh" #include "Debug.hh" #include "FbTk/App.hh" #include "FbTk/MenuSeparator.hh" #include "FbTk/StringUtil.hh" #include "FbTk/I18n.hh" #include "FbTk/BoolMenuItem.hh" #include "FbTk/IntMenuItem.hh" #include "FbTk/RadioMenuItem.hh" #ifdef HAVE_SYS_STAT_H #include #include #endif // HAVE_SYS_STAT_H #include #include #include #ifdef HAVE_CSTRING #include #else #include #endif using std::string; using std::pair; using std::list; using std::ifstream; using std::ofstream; using std::endl; using std::hex; using std::dec; namespace FbTk { template<> string FbTk::Resource::getString() const { switch (m_value) { case Slit::TOPLEFT: return string("TopLeft"); break; case Slit::LEFTCENTER: return string("LeftCenter"); break; case Slit::BOTTOMLEFT: return string("BottomLeft"); break; case Slit::TOPCENTER: return string("TopCenter"); break; case Slit::BOTTOMCENTER: return string("BottomCenter"); break; case Slit::TOPRIGHT: return string("TopRight"); break; case Slit::RIGHTCENTER: return string("RightCenter"); break; case Slit::BOTTOMRIGHT: return string("BottomRight"); break; case Slit::LEFTTOP: return string("LeftTop"); break; case Slit::RIGHTTOP: return string("RightTop"); break; case Slit::LEFTBOTTOM: return string("LeftBottom"); break; case Slit::RIGHTBOTTOM: return string("RightBottom"); break; } //default string return string("RightBottom"); } template<> void FbTk::Resource::setFromString(const char *strval) { if (strcasecmp(strval, "TopLeft")==0) m_value = Slit::TOPLEFT; else if (strcasecmp(strval, "LeftCenter")==0) m_value = Slit::LEFTCENTER; else if (strcasecmp(strval, "BottomLeft")==0) m_value = Slit::BOTTOMLEFT; else if (strcasecmp(strval, "TopCenter")==0) m_value = Slit::TOPCENTER; else if (strcasecmp(strval, "BottomCenter")==0) m_value = Slit::BOTTOMCENTER; else if (strcasecmp(strval, "TopRight")==0) m_value = Slit::TOPRIGHT; else if (strcasecmp(strval, "RightCenter")==0) m_value = Slit::RIGHTCENTER; else if (strcasecmp(strval, "BottomRight")==0) m_value = Slit::BOTTOMRIGHT; else if (strcasecmp(strval, "LeftTop")==0) m_value = Slit::LEFTTOP; else if (strcasecmp(strval, "LeftBottom")==0) m_value = Slit::LEFTBOTTOM; else if (strcasecmp(strval, "RightTop")==0) m_value = Slit::RIGHTTOP; else if (strcasecmp(strval, "RightBottom")==0) m_value = Slit::RIGHTBOTTOM; else setDefaultValue(); } } // end namespace FbTk namespace { class SlitClientMenuItem: public FbTk::MenuItem{ public: explicit SlitClientMenuItem(Slit& slit, SlitClient &client, FbTk::RefCount > &cmd): FbTk::MenuItem(client.matchName(), cmd), m_slit(slit), m_client(client) { setCommand(cmd); FbTk::MenuItem::setSelected(client.visible()); setToggleItem(true); setCloseOnClick(false); } const FbTk::BiDiString &label() const { return m_client.matchName(); } bool isSelected() const { return m_client.visible(); } void click(int button, int time, unsigned int mods) { if (button == 4 || button == 2) { // wheel up m_slit.clientUp(&m_client); } else if (button == 5 || button == 3) { // wheel down m_slit.clientDown(&m_client); } else { m_client.setVisible(!m_client.visible()); FbTk::MenuItem::setSelected(m_client.visible()); FbTk::MenuItem::click(button, time, mods); } } private: Slit& m_slit; SlitClient &m_client; }; class PlaceSlitMenuItem: public FbTk::RadioMenuItem { public: PlaceSlitMenuItem(const FbTk::FbString &label, Slit &slit, Slit::Placement place, FbTk::RefCount > &cmd): FbTk::RadioMenuItem(label, cmd), m_slit(slit), m_place(place) { setCloseOnClick(false); } bool isSelected() const { return m_slit.placement() == m_place; } void click(int button, int time, unsigned int mods) { m_slit.setPlacement(m_place); FbTk::RadioMenuItem::click(button, time, mods); } private: Slit &m_slit; Slit::Placement m_place; }; } // End anonymous namespace unsigned int Slit::s_eventmask = SubstructureRedirectMask | ButtonPressMask | EnterWindowMask | LeaveWindowMask | ExposureMask; Slit::Slit(BScreen &scr, FbTk::Layer &layer, const char *filename) : m_hidden(false), m_visible(false), m_screen(scr), m_clientlist_menu(scr.menuTheme(), scr.imageControl(), *scr.layerManager().getLayer(ResourceLayer::MENU)), m_slitmenu(scr.menuTheme(), scr.imageControl(), *scr.layerManager().getLayer(ResourceLayer::MENU)), #ifdef XINERAMA m_xineramaheadmenu(0), #endif // XINERAMA frame(scr.rootWindow()), //For KDE dock applets m_kwm1_dockwindow(XInternAtom(FbTk::App::instance()->display(), "KWM_DOCKWINDOW", False)), //KDE v1.x m_kwm2_dockwindow(XInternAtom(FbTk::App::instance()->display(), "_KDE_NET_WM_SYSTEM_TRAY_WINDOW_FOR", False)), //KDE v2.x m_layeritem(0), m_slit_theme(new SlitTheme(scr.rootWindow().screenNumber())), m_strut(0), // resources // lock in first resource m_rc_kde_dockapp(scr.resourceManager(), true, scr.name() + ".slit.acceptKdeDockapps", scr.altName() + ".Slit.AcceptKdeDockapps"), m_rc_auto_hide(scr.resourceManager().lock(), false, scr.name() + ".slit.autoHide", scr.altName() + ".Slit.AutoHide"), // TODO: this resource name must change m_rc_maximize_over(scr.resourceManager(), false, scr.name() + ".slit.maxOver", scr.altName() + ".Slit.MaxOver"), m_rc_placement(scr.resourceManager(), RIGHTBOTTOM, scr.name() + ".slit.placement", scr.altName() + ".Slit.Placement"), m_rc_alpha(scr.resourceManager(), 255, scr.name() + ".slit.alpha", scr.altName() + ".Slit.Alpha"), m_rc_on_head(scr.resourceManager(), 0, scr.name() + ".slit.onhead", scr.altName() + ".Slit.onHead"), m_rc_layernum(scr.resourceManager(), ResourceLayer(ResourceLayer::DOCK), scr.name() + ".slit.layer", scr.altName() + ".Slit.Layer") { _FB_USES_NLS; frame.window.setWindowRole("fluxbox-slit"); // attach to theme and root window change signal join(theme().reconfigSig(), FbTk::MemFun(*this, &Slit::reconfigure)); join(scr.resizeSig(), FbTk::MemFun(*this, &Slit::screenSizeChanged)); join(scr.bgChangeSig(), FbTk::MemFunIgnoreArgs(*this, &Slit::reconfigure)); join(scr.reconfigureSig(), FbTk::MemFunIgnoreArgs(*this, &Slit::reconfigure)); scr.addConfigMenu(_FB_XTEXT(Slit, Slit, "Slit", "The Slit"), m_slitmenu); frame.pixmap = None; // move the frame out of sight for a moment frame.window.move(-frame.window.width(), -frame.window.height()); // setup timer m_timer.setTimeout(200L * FbTk::FbTime::IN_MILLISECONDS); // default timeout m_timer.fireOnce(true); FbTk::RefCount > toggle_hidden(new FbTk::SimpleCommand(*this, &Slit::toggleHidden)); m_timer.setCommand(toggle_hidden); FbTk::EventManager::instance()->add(*this, frame.window); if (FbTk::Transparent::haveComposite()) { frame.window.setOpaque(*m_rc_alpha); } else { frame.window.setAlpha(*m_rc_alpha); } m_layeritem.reset(new FbTk::LayerItem(frame.window, layer)); m_layermenu.reset(new LayerMenu(scr.menuTheme(), scr.imageControl(), *scr.layerManager(). getLayer(ResourceLayer::MENU), this, true)); m_layermenu->setLabel(_FB_XTEXT(Slit, Layer, "Slit Layer", "Title of Slit Layer Menu")); moveToLayer((*m_rc_layernum).getNum()); // Get client list for sorting purposes loadClientList(filename); setupMenu(); scr.resourceManager().unlock(); } Slit::~Slit() { clearStrut(); if (frame.pixmap != 0) screen().imageControl().removeImage(frame.pixmap); // otherwise it will try to access it on deletion screen().removeConfigMenu(m_slitmenu); shutdown(); } void Slit::clearStrut() { if (m_strut != 0) { screen().clearStrut(m_strut); m_strut = 0; } } void Slit::updateStrut() { bool had_strut = m_strut ? true : false; clearStrut(); // no need for area if we're autohiding or set maximize over // or if we dont have any clients if (doAutoHide() || *m_rc_maximize_over || !m_visible) { // update screen area if we had a strut before if (had_strut) screen().updateAvailableWorkspaceArea(); return; } const unsigned int bw = m_slit_theme->borderWidth() * 2; int left = 0, right = 0, top = 0, bottom = 0; switch (placement()) { case TOPLEFT: top = height() + bw; break; case LEFTTOP: left = width() + bw; break; case TOPCENTER: top = height() + bw; break; case TOPRIGHT: top = height() + bw; break; case RIGHTTOP: right = width() + bw; break; case BOTTOMLEFT: bottom = height() + bw; break; case LEFTBOTTOM: left = width() + bw; break; case BOTTOMCENTER: bottom = height() + bw; break; case BOTTOMRIGHT: bottom = height() + bw; break; case RIGHTBOTTOM: right = width() + bw; break; case LEFTCENTER: left = width() + bw; break; case RIGHTCENTER: right = width() + bw; break; } m_strut = screen().requestStrut(getOnHead(), left, right, top, bottom); screen().updateAvailableWorkspaceArea(); } void Slit::addClient(Window w) { fbdbg<<"addClient(w = 0x"<matchName().logical() == match_name) { // Use the slot if no window is assigned if ((*it)->window() == None) { client = (*it); client->initialize(&screen(), w); break; } // Otherwise keep looking for an unused match or a non-match found_match = true; // Possibly redundant } else if (found_match) { // Insert before first non-match after a previously found match? client = new SlitClient(&screen(), w); m_client_list.insert(it, client); break; } } // Append to client list? if (client == 0) { client = new SlitClient(&screen(), w); m_client_list.push_back(client); } Display *disp = FbTk::App::instance()->display(); XWMHints *wmhints = XGetWMHints(disp, w); if (wmhints != 0) { if ((wmhints->flags & IconWindowHint) && (wmhints->icon_window != None)) { XMoveWindow(disp, client->clientWindow(), -100, -100); XMapWindow(disp, client->clientWindow()); client->setIconWindow(wmhints->icon_window); client->setWindow(client->iconWindow()); } else { client->setIconWindow(None); client->setWindow(client->clientWindow()); } XFree((void *) wmhints); } else { client->setIconWindow(None); client->setWindow(client->clientWindow()); } Atom *proto = 0; int num_return = 0; if (XGetWMProtocols(disp, w, &proto, &num_return)) { XFree((void *) proto); } else { fbdbg<<"Warning: Failed to read WM Protocols. "<resize(24, 24); else if (XGetWindowAttributes(disp, client->window(), &attrib)) client->resize(attrib.width, attrib.height); else // set default size if we failed to get window attributes client->resize(64, 64); // disable border for client window XSetWindowBorderWidth(disp, client->window(), 0); // disable events to frame.window frame.window.setEventMask(NoEventMask); client->disableEvents(); XReparentWindow(disp, client->window(), frame.window.window(), 0, 0); XMapRaised(disp, client->window()); XChangeSaveSet(disp, client->window(), SetModeInsert); // reactivate events for frame.window frame.window.setEventMask(s_eventmask); // setup event for slit client window client->enableEvents(); // flush events // XFlush(disp); // add slit client to eventmanager FbTk::EventManager::instance()->add(*this, client->clientWindow()); FbTk::EventManager::instance()->add(*this, client->iconWindow()); // frame.window.show(); clearWindow(); reconfigure(); updateClientmenu(); saveClientList(); } void Slit::setPlacement(Placement place) { *m_rc_placement = place; reconfigure(); } void Slit::removeClient(SlitClient *client, bool remap, bool destroy) { if (client == 0) return; // remove from event manager if (client->clientWindow() != 0) FbTk::EventManager::instance()->remove(client->clientWindow()); if (client->iconWindow() != 0) FbTk::EventManager::instance()->remove(client->iconWindow()); // Destructive removal? if (destroy) m_client_list.remove(client); else // Clear the window info, but keep around to help future sorting? client->initialize(); if (remap && client->window() != 0) { Display *disp = FbTk::App::instance()->display(); if (!client->visible()) client->show(); client->disableEvents(); // stop events to frame.window temporarly frame.window.setEventMask(NoEventMask); XReparentWindow(disp, client->window(), screen().rootWindow().window(), client->x(), client->y()); XChangeSaveSet(disp, client->window(), SetModeDelete); // reactivate events to frame.window frame.window.setEventMask(s_eventmask); XFlush(disp); } // Destructive removal? if (destroy) delete client; updateClientmenu(); } void Slit::removeClient(Window w, bool remap) { if (w == frame.window) return; bool reconf = false; SlitClients::iterator it = m_client_list.begin(); SlitClients::iterator it_end = m_client_list.end(); for (; it != it_end; ++it) { if ((*it)->window() == w) { removeClient((*it), remap, false); reconf = true; break; } } if (reconf) reconfigure(); } void Slit::reconfigure() { frame.width = 0; frame.height = 0; // Need to count windows because not all client list entries // actually correspond to mapped windows. int num_windows = 0; const int bevel_width = theme()->bevelWidth(); // determine width or height increase bool height_inc = false; switch (placement()) { case LEFTTOP: case RIGHTTOP: case LEFTCENTER: case RIGHTCENTER: case LEFTBOTTOM: case RIGHTBOTTOM: height_inc = true; default: break; } SlitClients::iterator client_it = m_client_list.begin(); SlitClients::iterator client_it_end = m_client_list.end(); for (; client_it != client_it_end; ++client_it) { // client created window? if ((*client_it)->window() != None && (*client_it)->visible()) { num_windows++; // get the dockapps to update their backgrounds if (screen().isKdeDockapp((*client_it)->window())) { (*client_it)->hide(); (*client_it)->show(); } if (height_inc) { // increase height of slit for each client (VERTICAL mode) frame.height += (*client_it)->height() + bevel_width; // the slit should always have the width of the largest client if (frame.width < (*client_it)->width()) frame.width = (*client_it)->width(); } else { // increase width of slit for each client (HORIZONTAL mode) frame.width += (*client_it)->width() + bevel_width; // the slit should always have the width of the largest client if (frame.height < (*client_it)->height()) frame.height = (*client_it)->height(); } } } if (frame.width < 1) frame.width = 1; else frame.width += bevel_width; if (frame.height < 1) frame.height = 1; else frame.height += bevel_width*2; Display *disp = FbTk::App::instance()->display(); frame.window.setBorderWidth(theme()->borderWidth()); frame.window.setBorderColor(theme()->borderColor()); Pixmap tmp = frame.pixmap; FbTk::ImageControl &image_ctrl = screen().imageControl(); const FbTk::Texture &texture = m_slit_theme->texture(); if (!texture.usePixmap()) { frame.pixmap = 0; frame.window.setBackgroundColor(texture.color()); } else { frame.pixmap = image_ctrl.renderImage(frame.width, frame.height, texture); if (frame.pixmap == 0) frame.window.setBackgroundColor(texture.color()); else frame.window.setBackgroundPixmap(frame.pixmap); } if (tmp) image_ctrl.removeImage(tmp); // could have changed types, so we must set both if (FbTk::Transparent::haveComposite()) { frame.window.setAlpha(255); frame.window.setOpaque(*m_rc_alpha); } else { frame.window.setAlpha(*m_rc_alpha); frame.window.setOpaque(255); } // reposition clears the bg reposition(); // did we actually use slit slots if (num_windows == 0) hide(); else show(); int x = 0, y = 0; if (height_inc) y = bevel_width; else x = bevel_width; client_it = m_client_list.begin(); for (; client_it != client_it_end; ++client_it) { if ((*client_it)->window() == None) continue; //client created window? if ((*client_it)->visible()) (*client_it)->show(); else { (*client_it)->disableEvents(); (*client_it)->hide(); (*client_it)->enableEvents(); continue; } if (height_inc) x = (frame.width - (*client_it)->width()) / 2; else y = (frame.height - (*client_it)->height()) / 2; XMoveResizeWindow(disp, (*client_it)->window(), x, y, (*client_it)->width(), (*client_it)->height()); // for ICCCM compliance (*client_it)->move(x, y); XEvent event; event.type = ConfigureNotify; event.xconfigure.display = disp; event.xconfigure.event = (*client_it)->window(); event.xconfigure.window = (*client_it)->window(); event.xconfigure.x = (*client_it)->x(); event.xconfigure.y = (*client_it)->y(); event.xconfigure.width = (*client_it)->width(); event.xconfigure.height = (*client_it)->height(); event.xconfigure.border_width = 0; event.xconfigure.above = frame.window.window(); event.xconfigure.override_redirect = False; XSendEvent(disp, (*client_it)->window(), False, StructureNotifyMask, &event); if (height_inc) y += (*client_it)->height() + bevel_width; else x += (*client_it)->width() + bevel_width; } // end for if (doAutoHide() && !isHidden() && !m_timer.isTiming()) m_timer.start(); else if (!doAutoHide() && isHidden()) toggleHidden(); // restore visible m_slitmenu.reconfigure(); updateClientmenu(); updateStrut(); } void Slit::reposition() { int head_x = 0, head_y = 0, head_w, head_h; if (screen().hasXinerama()) { int head = *m_rc_on_head; head_x = screen().getHeadX(head); head_y = screen().getHeadY(head); head_w = screen().getHeadWidth(head); head_h = screen().getHeadHeight(head); } else { head_w = screen().width(); head_h = screen().height(); } int border_width = theme()->borderWidth(); int pixel = (border_width == 0 ? 1 : 0); // place the slit in the appropriate place switch (placement()) { case TOPLEFT: frame.x = head_x; frame.y = head_y; frame.x_hidden = head_x; frame.y_hidden = head_y + pixel - border_width - frame.height; break; case LEFTTOP: frame.x = head_x; frame.y = head_y; frame.x_hidden = head_x + pixel - border_width - frame.width; frame.y_hidden = head_y; break; case LEFTCENTER: frame.x = head_x; frame.y = head_y + (head_h - frame.height) / 2; frame.x_hidden = head_x + pixel - border_width - frame.width; frame.y_hidden = frame.y; break; case BOTTOMLEFT: frame.x = head_x; frame.y = head_y + head_h - frame.height - border_width*2; frame.x_hidden = head_x; frame.y_hidden = head_y + head_h - pixel - border_width; break; case LEFTBOTTOM: frame.x = head_x; frame.y = head_y + head_h - frame.height - border_width*2; frame.x_hidden = head_x + pixel - border_width - frame.width; frame.y_hidden = frame.y; break; case TOPCENTER: frame.x = head_x + ((head_w - frame.width) / 2); frame.y = head_y; frame.x_hidden = frame.x; frame.y_hidden = head_y + pixel - border_width - frame.height; break; case BOTTOMCENTER: frame.x = head_x + ((head_w - frame.width) / 2); frame.y = head_y + head_h - frame.height - border_width*2; frame.x_hidden = frame.x; frame.y_hidden = head_y + head_h - pixel - border_width; break; case TOPRIGHT: frame.x = head_x + head_w - frame.width - border_width*2; frame.y = head_y; frame.x_hidden = frame.x; frame.y_hidden = head_y + pixel - border_width - frame.height; break; case RIGHTTOP: frame.x = head_x + head_w - frame.width - border_width*2; frame.y = head_y; frame.x_hidden = head_x + head_w - pixel - border_width; frame.y_hidden = head_y; break; case RIGHTCENTER: frame.x = head_x + head_w - frame.width - border_width*2; frame.y = head_y + ((head_h - frame.height) / 2); frame.x_hidden = head_x + head_w - pixel - border_width; frame.y_hidden = frame.y; break; case BOTTOMRIGHT: frame.x = head_x + head_w - frame.width - border_width*2; frame.y = head_y + head_h - frame.height - border_width*2; frame.x_hidden = frame.x; frame.y_hidden = head_y + head_h - pixel - border_width; break; case RIGHTBOTTOM: default: frame.x = head_x + head_w - frame.width - border_width*2; frame.y = head_y + head_h - frame.height - border_width*2; frame.x_hidden = head_x + head_w - pixel - border_width; frame.y_hidden = frame.y; break; } if (isHidden()) { frame.window.moveResize(frame.x_hidden, frame.y_hidden, frame.width, frame.height); } else { frame.window.moveResize(frame.x, frame.y, frame.width, frame.height); } frame.window.updateBackground(true); if (*m_rc_alpha != 255) clearWindow(); } void Slit::shutdown() { saveClientList(); while (!m_client_list.empty()) removeClient(m_client_list.front(), true, true); } void Slit::clientUp(SlitClient* client) { if (!client || m_client_list.size() < 2) return; if (client == m_client_list.front()) { cycleClientsUp(); return; } SlitClients::iterator it = m_client_list.begin(); for(++it; it != m_client_list.end(); ++it) { if ((*it) == client) { SlitClients::iterator prev = it; prev--; iter_swap(it, prev); reconfigure(); break; } } } void Slit::clientDown(SlitClient* client) { if (!client || m_client_list.size() < 2) return; if (client == m_client_list.back()) { cycleClientsDown(); return; } SlitClients::reverse_iterator it = m_client_list.rbegin(); for(++it; it != m_client_list.rend(); ++it) { if ((*it) == client) { SlitClients::reverse_iterator next = it; next--; iter_swap(it, next); reconfigure(); break; } } } void Slit::cycleClientsUp() { if (m_client_list.size() < 2) return; // rotate client list up, ie the first goes last SlitClients::iterator it = m_client_list.begin(); SlitClient *client = *it; m_client_list.erase(it); m_client_list.push_back(client); reconfigure(); } void Slit::cycleClientsDown() { if (m_client_list.size() < 2) return; // rotate client list down, ie the last goes first SlitClient *client = m_client_list.back(); m_client_list.remove(client); m_client_list.push_front(client); reconfigure(); } void Slit::handleEvent(XEvent &event) { if (event.type == ConfigureRequest) { configureRequestEvent(event.xconfigurerequest); } else if (event.type == DestroyNotify) { removeClient(event.xdestroywindow.window, false); } else if (event.type == UnmapNotify && event.xany.send_event) { // we ignore server-generated events, which can occur // on restart. The ICCCM says that a client must send // a synthetic event for the withdrawn state removeClient(event.xunmap.window); } } void Slit::buttonPressEvent(XButtonEvent &be) { if (be.window != frame.window.window()) return; if (be.button == Button3) { if (! m_slitmenu.isVisible()) { screen().placementStrategy() .placeAndShowMenu(m_slitmenu, be.x_root, be.y_root, false); } else m_slitmenu.hide(); } } void Slit::enterNotifyEvent(XCrossingEvent &) { if (! doAutoHide()) return; if (isHidden()) { if (! m_timer.isTiming()) m_timer.start(); } else { if (m_timer.isTiming()) m_timer.stop(); } } void Slit::leaveNotifyEvent(XCrossingEvent &ev) { if (! doAutoHide()) return; if (isHidden()) { if (m_timer.isTiming()) m_timer.stop(); } else { if (! m_timer.isTiming()) { // the menu is open, keep it firing until it closes if (m_slitmenu.isVisible()) m_timer.fireOnce(false); m_timer.start(); } } } void Slit::configureRequestEvent(XConfigureRequestEvent &event) { bool reconf = false; XWindowChanges xwc; xwc.x = event.x; xwc.y = event.y; xwc.width = event.width; xwc.height = event.height; xwc.border_width = 0; xwc.sibling = event.above; xwc.stack_mode = event.detail; XConfigureWindow(FbTk::App::instance()->display(), event.window, event.value_mask, &xwc); SlitClients::iterator it = m_client_list.begin(); SlitClients::iterator it_end = m_client_list.end(); for (; it != it_end; ++it) { if ((*it)->window() == event.window) { if ((*it)->width() != ((unsigned) event.width) || (*it)->height() != ((unsigned) event.height)) { (*it)->resize(event.width, event.height); reconf = true; //requires reconfiguration break; } } } if (reconf) reconfigure(); } void Slit::exposeEvent(XExposeEvent &ev) { // we don't need to clear the entire window // just the are that gets exposed frame.window.clearArea(ev.x, ev.y, ev.width, ev.height); } void Slit::screenSizeChanged(BScreen &screen) { reconfigure(); #ifdef XINERAMA if (m_xineramaheadmenu) m_xineramaheadmenu->reloadHeads(); #endif // XINERAMA } void Slit::clearWindow() { frame.window.clear(); } void Slit::toggleHidden() { if (doAutoHide()) { if (!m_slitmenu.isVisible()) { m_timer.fireOnce(true); } else return; } else if (!isHidden()) return; m_hidden = ! m_hidden; // toggle hidden state if (isHidden()) frame.window.move(frame.x_hidden, frame.y_hidden); else frame.window.move(frame.x, frame.y); } void Slit::loadClientList(const char *filename) { if (filename == 0 || filename[0] == '\0') return; // save filename so we can save client list later m_filename = filename; string real_filename= FbTk::StringUtil::expandFilename(filename); struct stat buf; if (stat(real_filename.c_str(), &buf) == 0) { ifstream file(real_filename.c_str()); string name; while (! file.eof()) { name = ""; getline(file, name); // get the entire line if (name.empty()) continue; // remove whitespaces from start and end FbTk::StringUtil::removeFirstWhitespace(name); // the cleaned string could still be a comment, or blank if ( name.empty() || name[0] == '#' || name[0] == '!' ) continue; // trailing whitespace won't affect the above test FbTk::StringUtil::removeTrailingWhitespace(name); SlitClient *client = new SlitClient(name.c_str()); m_client_list.push_back(client); } } } void Slit::updateClientmenu() { if (screen().isShuttingdown()) return; _FB_USES_NLS; // clear old items m_clientlist_menu.removeAll(); m_clientlist_menu.setLabel(_FB_XTEXT(Slit, ClientsMenu, "Clients", "Slit client menu")); FbTk::RefCount > cycle_up(new FbTk::SimpleCommand(*this, &Slit::cycleClientsUp)); FbTk::RefCount > cycle_down(new FbTk::SimpleCommand(*this, &Slit::cycleClientsDown)); m_clientlist_menu.insert(_FB_XTEXT(Slit, CycleUp, "Cycle Up", "Cycle clients upwards"), cycle_up); m_clientlist_menu.insert(_FB_XTEXT(Slit, CycleDown, "Cycle Down", "Cycle clients downwards"), cycle_down); m_clientlist_menu.insert(new FbTk::MenuSeparator()); FbTk::RefCount > reconfig(new FbTk::SimpleCommand(*this, &Slit::reconfigure)); SlitClients::iterator it = m_client_list.begin(); for (; it != m_client_list.end(); ++it) { if ((*it) != 0 && (*it)->window() != 0) m_clientlist_menu.insert(new SlitClientMenuItem(*this, *(*it), reconfig)); } m_clientlist_menu.insert(new FbTk::MenuSeparator()); FbTk::RefCount > savecmd(new FbTk::SimpleCommand(*this, &Slit::saveClientList)); m_clientlist_menu.insert(_FB_XTEXT(Slit, SaveSlitList, "Save SlitList", "Saves the current order in the slit"), savecmd); m_clientlist_menu.updateMenu(); } void Slit::saveClientList() { ofstream file(FbTk::StringUtil::expandFilename(m_filename).c_str()); SlitClients::iterator it = m_client_list.begin(); SlitClients::iterator it_end = m_client_list.end(); string prevName; string name; for (; it != it_end; ++it) { name = (*it)->matchName().logical(); if (name != prevName) file << name.c_str() << endl; prevName = name; } } void Slit::setupMenu() { _FB_USES_NLS; using namespace FbTk; FbTk::MacroCommand *s_a_reconf_macro = new FbTk::MacroCommand(); FbTk::MacroCommand *s_a_reconf_slit_macro = new FbTk::MacroCommand(); FbTk::RefCount > saverc_cmd(new FbCommands::SaveResources()); FbTk::RefCount > reconf_cmd(new FbCommands::ReconfigureFluxboxCmd()); FbTk::RefCount > reconf_slit_cmd(new FbTk::SimpleCommand(*this, &Slit::reconfigure)); s_a_reconf_macro->add(saverc_cmd); s_a_reconf_macro->add(reconf_cmd); s_a_reconf_slit_macro->add(saverc_cmd); s_a_reconf_slit_macro->add(reconf_slit_cmd); FbTk::RefCount > save_and_reconfigure(s_a_reconf_macro); FbTk::RefCount > save_and_reconfigure_slit(s_a_reconf_slit_macro); // it'll be freed by the slitmenu (since not marked internal) FbMenu *placement_menu = new FbMenu(m_screen.menuTheme(), m_screen.imageControl(), *m_screen.layerManager().getLayer(::ResourceLayer::MENU)); // setup base menu m_slitmenu.setLabel(_FB_XTEXT(Slit, Slit, "Slit", "The Slit")); m_slitmenu.insert(_FB_XTEXT(Menu, Placement, "Placement", "Title of Placement menu"), placement_menu); m_slitmenu.insert(_FB_XTEXT(Menu, Layer, "Layer...", "Title of Layer menu"), m_layermenu.get()); #ifdef XINERAMA if (screen().hasXinerama()) { m_slitmenu.insert(_FB_XTEXT(Menu, OnHead, "On Head...", "Title of On Head menu"), m_xineramaheadmenu = new XineramaHeadMenu( screen().menuTheme(), screen(), screen().imageControl(), *screen().layerManager().getLayer(::ResourceLayer::MENU), *this, _FB_XTEXT(Slit, OnHead, "Slit on Head", "Title of Slits On Head menu") )); } #endif //XINERAMA m_slitmenu.insert(new FbTk::BoolMenuItem(_FB_XTEXT(Common, AutoHide, "Auto hide", "This thing automatically hides when not close by"), m_rc_auto_hide, save_and_reconfigure_slit)); m_slitmenu.insert(new FbTk::BoolMenuItem(_FB_XTEXT(Common, MaximizeOver,"Maximize Over", "Maximize over this thing when maximizing"), m_rc_maximize_over, save_and_reconfigure_slit)); // this saves resources and clears the slit window to update alpha value FbTk::MenuItem *alpha_menuitem = new FbTk::IntMenuItem(_FB_XTEXT(Common, Alpha, "Alpha", "Transparency level"), m_rc_alpha, 0, 255, m_slitmenu); // setup command for alpha value MacroCommand *alpha_macrocmd = new MacroCommand(); RefCount > alpha_cmd(new SimpleCommand(*this, &Slit::updateAlpha)); alpha_macrocmd->add(saverc_cmd); alpha_macrocmd->add(alpha_cmd); RefCount > set_alpha_cmd(alpha_macrocmd); alpha_menuitem->setCommand(set_alpha_cmd); m_slitmenu.insert(alpha_menuitem); m_slitmenu.insert(_FB_XTEXT(Slit, ClientsMenu, "Clients", "Slit client menu"), &m_clientlist_menu); m_slitmenu.updateMenu(); // setup sub menu placement_menu->setLabel(_FB_XTEXT(Slit, Placement, "Slit Placement", "Slit Placement")); placement_menu->setMinimumColumns(3); m_layermenu->setInternalMenu(); m_clientlist_menu.setInternalMenu(); m_slitmenu.setInternalMenu(); typedef pair PlacementP; typedef list Placements; Placements place_menu; // menu is 3 wide, 5 down place_menu.push_back(PlacementP(_FB_XTEXT(Align, TopLeft, "Top Left", "Top Left"), Slit::TOPLEFT)); place_menu.push_back(PlacementP(_FB_XTEXT(Align, LeftTop, "Left Top", "Left Top"), Slit::LEFTTOP)); place_menu.push_back(PlacementP(_FB_XTEXT(Align, LeftCenter, "Left Center", "Left Center"), Slit::LEFTCENTER)); place_menu.push_back(PlacementP(_FB_XTEXT(Align, LeftBottom, "Left Bottom", "Left Bottom"), Slit::LEFTBOTTOM)); place_menu.push_back(PlacementP(_FB_XTEXT(Align, BottomLeft, "Bottom Left", "Bottom Left"), Slit::BOTTOMLEFT)); place_menu.push_back(PlacementP(_FB_XTEXT(Align, TopCenter, "Top Center", "Top Center"), Slit::TOPCENTER)); place_menu.push_back(PlacementP("", Slit::TOPLEFT)); place_menu.push_back(PlacementP("", Slit::TOPLEFT)); place_menu.push_back(PlacementP("", Slit::TOPLEFT)); place_menu.push_back(PlacementP(_FB_XTEXT(Align, BottomCenter, "Bottom Center", "Bottom Center"), Slit::BOTTOMCENTER)); place_menu.push_back(PlacementP(_FB_XTEXT(Align, TopRight, "Top Right", "Top Right"), Slit::TOPRIGHT)); place_menu.push_back(PlacementP(_FB_XTEXT(Align, RightTop, "Right Top", "Right Top"), Slit::RIGHTTOP)); place_menu.push_back(PlacementP(_FB_XTEXT(Align, RightCenter, "Right Center", "Right Center"), Slit::RIGHTCENTER)); place_menu.push_back(PlacementP(_FB_XTEXT(Align, RightBottom, "Right Bottom", "Right Bottom"), Slit::RIGHTBOTTOM)); place_menu.push_back(PlacementP(_FB_XTEXT(Align, BottomRight, "Bottom Right", "Bottom Right"), Slit::BOTTOMRIGHT)); // create items in sub menu for (size_t i=0; i<15; ++i) { const FbTk::FbString &str = place_menu.front().first; Slit::Placement placement = place_menu.front().second; if (str == "") { placement_menu->insert(""); placement_menu->setItemEnabled(i, false); } else { placement_menu->insert(new PlaceSlitMenuItem(str, *this, placement, save_and_reconfigure)); } place_menu.pop_front(); } // finaly update sub menu placement_menu->updateMenu(); } void Slit::moveToLayer(int layernum) { m_layeritem->moveToLayer(layernum); *m_rc_layernum = layernum; } void Slit::saveOnHead(int head) { m_rc_on_head = head; // reposition reconfigure(); } void Slit::updateAlpha() { // called when the alpha resource is changed if (FbTk::Transparent::haveComposite()) { frame.window.setOpaque(*m_rc_alpha); } else { frame.window.setAlpha(*m_rc_alpha); frame.window.updateBackground(true); clearWindow(); } } fluxbox-1.3.5/src/PaxHeaders.25974/Remember.cc0000644000175000017500000000013212106662425017110 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.347812461 30 ctime=1360750008.647811615 fluxbox-1.3.5/src/Remember.cc0000644000175000017500000014644312106662425015153 0ustar00mgmg00000000000000// Remember.cc for Fluxbox Window Manager // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // Copyright (c) 2002 Xavier Brouckaert // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "Remember.hh" #include "ClientPattern.hh" #include "Screen.hh" #include "Window.hh" #include "WinClient.hh" #include "FbMenu.hh" #include "FbCommands.hh" #include "fluxbox.hh" #include "Layer.hh" #include "Debug.hh" #include "FbTk/I18n.hh" #include "FbTk/StringUtil.hh" #include "FbTk/FileUtil.hh" #include "FbTk/MenuItem.hh" #include "FbTk/App.hh" #include "FbTk/stringstream.hh" #include "FbTk/Transparent.hh" #include "FbTk/AutoReloadHelper.hh" #include "FbTk/RefCount.hh" #include "FbTk/Util.hh" #ifdef HAVE_CSTRING #include #else #include #endif //use GNU extensions #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif // _GNU_SOURCE #include using std::cerr; using std::endl; using std::string; using std::list; using std::set; using std::make_pair; using std::ifstream; using std::ofstream; using std::hex; using std::dec; /*------------------------------------------------------------------*\ \*------------------------------------------------------------------*/ class Application { public: Application(bool transient, bool grouped, ClientPattern *pat = 0); void reset(); void forgetWorkspace() { workspace_remember = false; } void forgetHead() { head_remember = false; } void forgetDimensions() { dimensions_remember = false; } void forgetPosition() { position_remember = false; } void forgetShadedstate() { shadedstate_remember = false; } void forgetTabstate() { tabstate_remember = false; } void forgetDecostate() { decostate_remember = false; } void forgetFocusHiddenstate() { focushiddenstate_remember= false; } void forgetIconHiddenstate() { iconhiddenstate_remember= false; } void forgetStuckstate() { stuckstate_remember = false; } void forgetFocusNewWindow() { focusnewwindow_remember = false; } void forgetJumpworkspace() { jumpworkspace_remember = false; } void forgetLayer() { layer_remember = false; } void forgetSaveOnClose() { save_on_close_remember = false; } void forgetAlpha() { alpha_remember = false; } void forgetMinimizedstate() { minimizedstate_remember = false; } void forgetMaximizedstate() { maximizedstate_remember = false; } void forgetFullscreenstate() { fullscreenstate_remember = false; } void rememberWorkspace(int ws) { workspace = ws; workspace_remember = true; } void rememberHead(int h) { head = h; head_remember = true; } void rememberDimensions(int width, int height, bool is_relative) { dimension_is_relative = is_relative; w = width; h = height; dimensions_remember = true; } void rememberFocusHiddenstate(bool state) { focushiddenstate= state; focushiddenstate_remember= true; } void rememberIconHiddenstate(bool state) { iconhiddenstate= state; iconhiddenstate_remember= true; } void rememberPosition(int posx, int posy, bool is_relative, FluxboxWindow::ReferenceCorner rfc = FluxboxWindow::LEFTTOP) { position_is_relative = is_relative; x = posx; y = posy; refc = rfc; position_remember = true; } void rememberShadedstate(bool state) { shadedstate = state; shadedstate_remember = true; } void rememberTabstate(bool state) { tabstate = state; tabstate_remember = true; } void rememberDecostate(unsigned int state) { decostate = state; decostate_remember = true; } void rememberStuckstate(bool state) { stuckstate = state; stuckstate_remember = true; } void rememberFocusNewWindow(bool state) { focusnewwindow = state; focusnewwindow_remember = true; } void rememberJumpworkspace(bool state) { jumpworkspace = state; jumpworkspace_remember = true; } void rememberLayer(int layernum) { layer = layernum; layer_remember = true; } void rememberSaveOnClose(bool state) { save_on_close = state; save_on_close_remember = true; } void rememberAlpha(int focused_a, int unfocused_a) { focused_alpha = focused_a; unfocused_alpha = unfocused_a; alpha_remember = true; } void rememberMinimizedstate(bool state) { minimizedstate = state; minimizedstate_remember = true; } void rememberMaximizedstate(int state) { maximizedstate = state; maximizedstate_remember = true; } void rememberFullscreenstate(bool state) { fullscreenstate = state; fullscreenstate_remember = true; } bool workspace_remember; unsigned int workspace; bool head_remember; int head; bool dimensions_remember; int w,h; // width, height bool dimension_is_relative; bool position_remember; int x,y; bool position_is_relative; FluxboxWindow::ReferenceCorner refc; bool alpha_remember; int focused_alpha; int unfocused_alpha; bool shadedstate_remember; bool shadedstate; bool tabstate_remember; bool tabstate; bool decostate_remember; unsigned int decostate; bool stuckstate_remember; bool stuckstate; bool focusnewwindow_remember; bool focusnewwindow; bool focushiddenstate_remember; bool focushiddenstate; bool iconhiddenstate_remember; bool iconhiddenstate; bool jumpworkspace_remember; bool jumpworkspace; bool layer_remember; int layer; bool save_on_close_remember; bool save_on_close; bool minimizedstate_remember; bool minimizedstate; bool maximizedstate_remember; int maximizedstate; bool fullscreenstate_remember; bool fullscreenstate; bool is_transient, is_grouped; FbTk::RefCount group_pattern; }; Application::Application(bool transient, bool grouped, ClientPattern *pat): is_transient(transient), is_grouped(grouped), group_pattern(pat) { reset(); } void Application::reset() { decostate_remember = dimensions_remember = focushiddenstate_remember = iconhiddenstate_remember = jumpworkspace_remember = layer_remember = position_remember = shadedstate_remember = stuckstate_remember = focusnewwindow_remember = tabstate_remember = workspace_remember = head_remember = alpha_remember = minimizedstate_remember = maximizedstate_remember = fullscreenstate_remember = save_on_close_remember = false; } /*------------------------------------------------------------------*\ \*------------------------------------------------------------------*/ namespace { // replace special chars like ( ) and [ ] with \( \) and \[ \] string escapeRememberChars(const string& str) { if (str.empty()) return str; string escaped_str; escaped_str.reserve(str.capacity()); string::const_iterator i; for (i = str.begin(); i != str.end(); ++i) { switch (*i) { case '(': case ')': case '[': case ']': escaped_str += '\\'; default: escaped_str += *i; } } return escaped_str; } class RememberMenuItem : public FbTk::MenuItem { public: RememberMenuItem(const FbTk::FbString &label, Remember::Attribute attrib) : FbTk::MenuItem(label), m_attrib(attrib) { setToggleItem(true); setCloseOnClick(false); } bool isSelected() const { if (FbMenu::window() == 0) return false; if (FbMenu::window()->numClients()) // ensure it HAS clients return Remember::instance().isRemembered(FbMenu::window()->winClient(), m_attrib); else return false; } bool isEnabled() const { if (FbMenu::window() == 0) return false; if (m_attrib != Remember::REM_JUMPWORKSPACE) return true; else if (FbMenu::window()->numClients()) return (Remember::instance().isRemembered(FbMenu::window()->winClient(), Remember::REM_WORKSPACE)); else return false; } void click(int button, int time, unsigned int mods) { // reconfigure only does stuff if the apps file has changed Remember::instance().checkReload(); if (FbMenu::window() != 0) { if (isSelected()) { Remember::instance().forgetAttrib(FbMenu::window()->winClient(), m_attrib); } else { Remember::instance().rememberAttrib(FbMenu::window()->winClient(), m_attrib); } } Remember::instance().save(); FbTk::MenuItem::click(button, time, mods); } private: Remember::Attribute m_attrib; }; FbTk::Menu *createRememberMenu(BScreen &screen) { // each fluxboxwindow has its own windowmenu // so we also create a remember menu just for it... FbTk::Menu *menu = screen.createMenu("Remember"); // if enabled, then we want this to be a unavailable menu /* if (!enabled) { FbTk::MenuItem *item = new FbTk::MenuItem("unavailable"); item->setEnabled(false); menu->insert(item); menu->updateMenu(); return menu; } */ _FB_USES_NLS; menu->insert(new RememberMenuItem(_FB_XTEXT(Remember, Workspace, "Workspace", "Remember Workspace"), Remember::REM_WORKSPACE)); menu->insert(new RememberMenuItem(_FB_XTEXT(Remember, JumpToWorkspace, "Jump to workspace", "Change active workspace to remembered one on open"), Remember::REM_JUMPWORKSPACE)); menu->insert(new RememberMenuItem(_FB_XTEXT(Remember, Head, "Head", "Remember Head"), Remember::REM_HEAD)); menu->insert(new RememberMenuItem(_FB_XTEXT(Remember, Dimensions, "Dimensions", "Remember Dimensions - with width and height"), Remember::REM_DIMENSIONS)); menu->insert(new RememberMenuItem(_FB_XTEXT(Remember, Position, "Position", "Remember position - window co-ordinates"), Remember::REM_POSITION)); menu->insert(new RememberMenuItem(_FB_XTEXT(Remember, Sticky, "Sticky", "Remember Sticky"), Remember::REM_STUCKSTATE)); menu->insert(new RememberMenuItem(_FB_XTEXT(Remember, Decorations, "Decorations", "Remember window decorations"), Remember::REM_DECOSTATE)); menu->insert(new RememberMenuItem(_FB_XTEXT(Remember, Shaded, "Shaded", "Remember shaded"), Remember::REM_SHADEDSTATE)); menu->insert(new RememberMenuItem(_FB_XTEXT(Remember, Minimized, "Minimized", "Remember minimized"), Remember::REM_MINIMIZEDSTATE)); menu->insert(new RememberMenuItem(_FB_XTEXT(Remember, Maximized, "Maximized", "Remember maximized"), Remember::REM_MAXIMIZEDSTATE)); menu->insert(new RememberMenuItem(_FB_XTEXT(Remember, Fullscreen, "Fullscreen", "Remember fullscreen"), Remember::REM_FULLSCREENSTATE)); if (FbTk::Transparent::haveComposite() || FbTk::Transparent::haveRender()) menu->insert(new RememberMenuItem(_FB_XTEXT(Remember, Alpha, "Transparency", "Remember window tranparency settings"), Remember::REM_ALPHA)); menu->insert(new RememberMenuItem(_FB_XTEXT(Remember, Layer, "Layer", "Remember Layer"), Remember::REM_LAYER)); menu->insert(new RememberMenuItem(_FB_XTEXT(Remember, SaveOnClose, "Save on close", "Save remembered attributes on close"), Remember::REM_SAVEONCLOSE)); menu->updateMenu(); return menu; } // offset is the offset in the string that we start looking from // return true if all ok, false on error bool handleStartupItem(const string &line, int offset) { int next = 0; string str; unsigned int screen = Fluxbox::instance()->keyScreen()->screenNumber(); // accept some options, for now only "screen=NN" // these option are given in parentheses before the command next = FbTk::StringUtil::getStringBetween(str, line.c_str() + offset, '(', ')'); if (next > 0) { // there are some options string option; int pos = str.find('='); bool error = false; if (pos > 0) { option = str.substr(0, pos); if (strcasecmp(option.c_str(), "screen") == 0) { error = !FbTk::StringUtil::extractNumber(str.c_str() + pos + 1, screen); } else { error = true; } } else { error = true; } if (error) { cerr<<"Error parsing startup options."<findScreen(screen)->isRestart()) // the line was successfully read; we just didn't use it return true; FbCommands::ExecuteCmd *tmp_exec_cmd = new FbCommands::ExecuteCmd(str, screen); fbdbg<<"Executing startup Command '"<execute(); delete tmp_exec_cmd; return true; } // returns number of lines read // optionally can give a line to read before the first (lookahead line) int parseApp(ifstream &file, Application &app, string *first_line = 0) { string line; _FB_USES_NLS; int row = 0; while (! file.eof()) { if (first_line || getline(file, line)) { if (first_line) { line = *first_line; first_line = 0; } row++; FbTk::StringUtil::removeFirstWhitespace(line); FbTk::StringUtil::removeTrailingWhitespace(line); if (line.size() == 0 || line[0] == '#') continue; //the line is commented or blank int parse_pos = 0, err = 0; string str_key, str_option, str_label; err = FbTk::StringUtil::getStringBetween(str_key, line.c_str(), '[', ']'); if (err > 0) { int tmp; tmp= FbTk::StringUtil::getStringBetween(str_option, line.c_str() + err, '(', ')'); if (tmp>0) err += tmp; } if (err > 0 ) { parse_pos += err; err = FbTk::StringUtil::getStringBetween(str_label, line.c_str() + parse_pos, '{', '}'); if (err>0) { parse_pos += err; } } else continue; //read next line bool had_error = false; if (str_key.empty()) continue; //read next line str_key = FbTk::StringUtil::toLower(str_key); if (str_key == "workspace") { unsigned int w; if (FbTk::StringUtil::extractNumber(str_label, w)) app.rememberWorkspace(w); else had_error = true; } else if (str_key == "head") { unsigned int h; if (FbTk::StringUtil::extractNumber(str_label, h)) app.rememberHead(h); else had_error = true; } else if (str_key == "layer") { int l = ResourceLayer::getNumFromString(str_label); had_error = (l == -1); if (!had_error) app.rememberLayer(l); } else if (str_key == "dimensions") { unsigned int h,w; if (sscanf(str_label.c_str(), "%u %u", &w, &h) == 2) { app.rememberDimensions(w, h, false); } else if(sscanf(str_label.c_str(), "%u%% %u%%", &w, &h) == 2) { app.rememberDimensions(w, h, true); } else { had_error = true; } } else if (str_key == "position") { FluxboxWindow::ReferenceCorner r = FluxboxWindow::LEFTTOP; int x = 0, y = 0; // more info about the parameter // in ::rememberPosition if (str_option.length()) r = FluxboxWindow::getCorner(str_option); had_error = (r == FluxboxWindow::ERROR); if (!had_error){ if(sscanf(str_label.c_str(), "%d %d", &x, &y) == 2) { app.rememberPosition(x, y, false, r); } else if (sscanf(str_label.c_str(), "%d%% %d%%", &x, &y) == 2){ app.rememberPosition(x, y, true, r); } } else { had_error = true; } } else if (str_key == "shaded") { app.rememberShadedstate((strcasecmp(str_label.c_str(), "yes") == 0)); } else if (str_key == "tab") { app.rememberTabstate((strcasecmp(str_label.c_str(), "yes") == 0)); } else if (str_key == "focushidden") { app.rememberFocusHiddenstate((strcasecmp(str_label.c_str(), "yes") == 0)); } else if (str_key == "iconhidden") { app.rememberIconHiddenstate((strcasecmp(str_label.c_str(), "yes") == 0)); } else if (str_key == "hidden") { app.rememberIconHiddenstate((strcasecmp(str_label.c_str(), "yes") == 0)); app.rememberFocusHiddenstate((strcasecmp(str_label.c_str(), "yes") == 0)); } else if (str_key == "deco") { int deco = WindowState::getDecoMaskFromString(str_label); if (deco == -1) had_error = 1; else app.rememberDecostate((unsigned int)deco); } else if (str_key == "alpha") { int focused_a, unfocused_a; switch (sscanf(str_label.c_str(), "%i %i", &focused_a, &unfocused_a)) { case 1: // 'alpha ' unfocused_a = focused_a; case 2: // 'alpha ' focused_a = FbTk::Util::clamp(focused_a, 0, 255); unfocused_a = FbTk::Util::clamp(unfocused_a, 0, 255); app.rememberAlpha(focused_a, unfocused_a); break; default: had_error = true; break; } } else if (str_key == "sticky") { app.rememberStuckstate((strcasecmp(str_label.c_str(), "yes") == 0)); } else if (str_key == "focusnewwindow") { app.rememberFocusNewWindow((strcasecmp(str_label.c_str(), "yes") == 0)); } else if (str_key == "minimized") { app.rememberMinimizedstate((strcasecmp(str_label.c_str(), "yes") == 0)); } else if (str_key == "maximized") { if (strcasecmp(str_label.c_str(), "yes") == 0) app.rememberMaximizedstate(WindowState::MAX_FULL); else if (strcasecmp(str_label.c_str(), "horz") == 0) app.rememberMaximizedstate(WindowState::MAX_HORZ); else if (strcasecmp(str_label.c_str(), "vert") == 0) app.rememberMaximizedstate(WindowState::MAX_VERT); else app.rememberMaximizedstate(WindowState::MAX_NONE); } else if (str_key == "fullscreen") { app.rememberFullscreenstate((strcasecmp(str_label.c_str(), "yes") == 0)); } else if (str_key == "jump") { app.rememberJumpworkspace((strcasecmp(str_label.c_str(), "yes") == 0)); } else if (str_key == "close") { app.rememberSaveOnClose((strcasecmp(str_label.c_str(), "yes") == 0)); } else if (str_key == "end") { return row; } else { cerr << _FB_CONSOLETEXT(Remember, Unknown, "Unknown apps key", "apps entry type not known")<<" = " << str_key << endl; } if (had_error) { cerr<<"Error parsing apps entry: ("<begin(); Remember::Patterns::iterator it_end = patlist->end(); for (; it != it_end; ++it) { if (*it->first == *pat && is_group == it->second->is_grouped && transient == it->second->is_transient && ((match_pat == 0 && it->second->group_pattern == 0) || (match_pat && *match_pat == *it->second->group_pattern))) { Application *ret = it->second; if (!is_group) return ret; // find the rest of the group and remove it from the list // rewind Remember::Patterns::iterator tmpit = it; while (tmpit != patlist->begin()) { --tmpit; if (tmpit->second == ret) it = tmpit; else break; } // forward for(; it != it_end && it->second == ret; ++it) { delete it->first; } patlist->erase(patlist->begin(), it); return ret; } } return 0; } } // end anonymous namespace /*------------------------------------------------------------------*\ \*------------------------------------------------------------------*/ Remember *Remember::s_instance = 0; Remember::Remember(): m_pats(new Patterns()), m_reloader(new FbTk::AutoReloadHelper()) { setName("remember"); if (s_instance != 0) throw string("Can not create more than one instance of Remember"); s_instance = this; enableUpdate(); m_reloader->setReloadCmd(FbTk::RefCount >(new FbTk::SimpleCommand(*this, &Remember::reload))); reconfigure(); } Remember::~Remember() { // free our resources // the patterns free the "Application"s // the client mapping shouldn't need cleaning Patterns::iterator it; set all_apps; // no duplicates while (!m_pats->empty()) { it = m_pats->begin(); delete it->first; // ClientPattern all_apps.insert(it->second); // Application, not necessarily unique m_pats->erase(it); } set::iterator ait = all_apps.begin(); // no duplicates for (; ait != all_apps.end(); ++ait) { delete (*ait); } delete(m_reloader); s_instance = 0; } Application* Remember::find(WinClient &winclient) { // if it is already associated with a application, return that one // otherwise, check it against every pattern that we've got Clients::iterator wc_it = m_clients.find(&winclient); if (wc_it != m_clients.end()) return wc_it->second; else { Patterns::iterator it = m_pats->begin(); for (; it != m_pats->end(); ++it) if (it->first->match(winclient) && it->second->is_transient == winclient.isTransient()) { it->first->addMatch(); m_clients[&winclient] = it->second; return it->second; } } // oh well, no matches return 0; } Application * Remember::add(WinClient &winclient) { ClientPattern *p = new ClientPattern(); Application *app = new Application(winclient.isTransient(), false); // by default, we match against the WMClass of a window (instance and class strings) string win_name = ::escapeRememberChars(p->getProperty(ClientPattern::NAME, winclient)); string win_class = ::escapeRememberChars(p->getProperty(ClientPattern::CLASS, winclient)); string win_role = ::escapeRememberChars(p->getProperty(ClientPattern::ROLE, winclient)); p->addTerm(win_name, ClientPattern::NAME); p->addTerm(win_class, ClientPattern::CLASS); if (!win_role.empty()) p->addTerm(win_role, ClientPattern::ROLE); m_clients[&winclient] = app; p->addMatch(); m_pats->push_back(make_pair(p, app)); return app; } void Remember::reconfigure() { m_reloader->setMainFile(Fluxbox::instance()->getAppsFilename()); } void Remember::checkReload() { m_reloader->checkReload(); } void Remember::reload() { string apps_string = FbTk::StringUtil::expandFilename(Fluxbox::instance()->getAppsFilename()); fbdbg<<"("<<__FUNCTION__<<"): Loading apps file ["< reused_apps; m_pats.reset(new Patterns()); m_startups.clear(); if (!apps_file.fail()) { if (!apps_file.eof()) { string line; int row = 0; bool in_group = false; ClientPattern *pat = 0; list grouped_pats; while (getline(apps_file, line) && ! apps_file.eof()) { row++; FbTk::StringUtil::removeFirstWhitespace(line); FbTk::StringUtil::removeTrailingWhitespace(line); if (line.size() == 0 || line[0] == '#') continue; string key; int err=0; int pos = FbTk::StringUtil::getStringBetween(key, line.c_str(), '[', ']'); if (pos > 0 && (strcasecmp(key.c_str(), "app") == 0 || strcasecmp(key.c_str(), "transient") == 0)) { ClientPattern *pat = new ClientPattern(line.c_str() + pos); if (!in_group) { if ((err = pat->error()) == 0) { bool transient = (strcasecmp(key.c_str(), "transient") == 0); Application *app = findMatchingPatterns(pat, old_pats, transient, false); if (app) { app->reset(); reused_apps.insert(app); } else { app = new Application(transient, false); } m_pats->push_back(make_pair(pat, app)); row += parseApp(apps_file, *app); } else { cerr<<"Error reading apps file at line "< 0 && strcasecmp(key.c_str(), "startup") == 0 && Fluxbox::instance()->isStartup()) { if (!handleStartupItem(line, pos)) { cerr<<"Error reading apps file at line "< 0 && strcasecmp(key.c_str(), "group") == 0) { in_group = true; if (line.find('(') != string::npos) pat = new ClientPattern(line.c_str() + pos); } else if (in_group) { // otherwise assume that it is the start of the attributes Application *app = 0; // search for a matching app list::iterator it = grouped_pats.begin(); list::iterator it_end = grouped_pats.end(); while (!app && it != it_end) { app = findMatchingPatterns(*it, old_pats, false, in_group, pat); ++it; } if (!app) app = new Application(false, in_group, pat); else reused_apps.insert(app); while (!grouped_pats.empty()) { // associate all the patterns with this app m_pats->push_back(make_pair(grouped_pats.front(), app)); grouped_pats.pop_front(); } // we hit end... probably don't have attribs for the group // so finish it off with an empty application // otherwise parse the app if (!(pos>0 && strcasecmp(key.c_str(), "end") == 0)) { row += parseApp(apps_file, *app, &line); } in_group = false; } else cerr<<"Error in apps file on line "< old_apps; // no duplicates while (!old_pats->empty()) { it = old_pats->begin(); delete it->first; // ClientPattern if (reused_apps.find(it->second) == reused_apps.end()) old_apps.insert(it->second); // Application, not necessarily unique old_pats->erase(it); } // now remove any client entries for the old apps Clients::iterator cit = m_clients.begin(); Clients::iterator cit_end = m_clients.end(); while (cit != cit_end) { if (old_apps.find(cit->second) != old_apps.end()) { Clients::iterator tmpit = cit; ++cit; m_clients.erase(tmpit); } else { ++cit; } } set::iterator ait = old_apps.begin(); // no duplicates for (; ait != old_apps.end(); ++ait) { delete (*ait); } delete old_pats; } void Remember::save() { string apps_string = FbTk::StringUtil::expandFilename(Fluxbox::instance()->getAppsFilename()); fbdbg<<"("<<__FUNCTION__<<"): Saving apps file ["<begin(); Patterns::iterator it_end = m_pats->end(); set grouped_apps; // no duplicates for (; it != it_end; ++it) { Application &a = *it->second; if (a.is_grouped) { // if already processed if (grouped_apps.find(&a) != grouped_apps.end()) continue; grouped_apps.insert(&a); // otherwise output this whole group apps_file << "[group]"; if (a.group_pattern) apps_file << " " << a.group_pattern->toString(); apps_file << endl; Patterns::iterator git = m_pats->begin(); Patterns::iterator git_end = m_pats->end(); for (; git != git_end; ++git) { if (git->second == &a) { apps_file << (a.is_transient ? " [transient]" : " [app]") << git->first->toString()<first->toString()<addFile(Fluxbox::instance()->getAppsFilename()); } bool Remember::isRemembered(WinClient &winclient, Attribute attrib) { Application *app = find(winclient); if (!app) return false; switch (attrib) { case REM_WORKSPACE: return app->workspace_remember; break; case REM_HEAD: return app->head_remember; break; case REM_DIMENSIONS: return app->dimensions_remember; break; case REM_POSITION: return app->position_remember; break; case REM_FOCUSHIDDENSTATE: return app->focushiddenstate_remember; break; case REM_ICONHIDDENSTATE: return app->iconhiddenstate_remember; break; case REM_STUCKSTATE: return app->stuckstate_remember; break; case REM_FOCUSNEWWINDOW: return app->focusnewwindow_remember; break; case REM_MINIMIZEDSTATE: return app->minimizedstate_remember; break; case REM_MAXIMIZEDSTATE: return app->maximizedstate_remember; break; case REM_FULLSCREENSTATE: return app->fullscreenstate_remember; break; case REM_DECOSTATE: return app->decostate_remember; break; case REM_SHADEDSTATE: return app->shadedstate_remember; break; // case REM_TABSTATE: // return app->tabstate_remember; // break; case REM_JUMPWORKSPACE: return app->jumpworkspace_remember; break; case REM_LAYER: return app->layer_remember; break; case REM_SAVEONCLOSE: return app->save_on_close_remember; break; case REM_ALPHA: return app->alpha_remember; case REM_LASTATTRIB: default: return false; // should never get here } } void Remember::rememberAttrib(WinClient &winclient, Attribute attrib) { FluxboxWindow *win = winclient.fbwindow(); if (!win) return; Application *app = find(winclient); if (!app) { app = add(winclient); if (!app) return; } int head, head_x, head_y, win_w, win_h, percx, percy; switch (attrib) { case REM_WORKSPACE: app->rememberWorkspace(win->workspaceNumber()); break; case REM_HEAD: app->rememberHead(win->screen().getHead(win->fbWindow())); break; case REM_DIMENSIONS: { head = win->screen().getHead(win->fbWindow()); int percx = win->screen().calRelativeDimensionWidth(head, win->normalWidth()); int percy = win->screen().calRelativeDimensionHeight(head, win->normalHeight()); app->rememberDimensions(percx, percy, true); break; } case REM_POSITION: { head = win->screen().getHead(win->fbWindow()); int percx = win->screen().calRelativePositionWidth(head, win->normalX()); int percy = win->screen().calRelativePositionHeight(head, win->normalY()); app->rememberPosition(percx, percy, true); break; } case REM_FOCUSHIDDENSTATE: app->rememberFocusHiddenstate(win->isFocusHidden()); break; case REM_ICONHIDDENSTATE: app->rememberIconHiddenstate(win->isIconHidden()); break; case REM_SHADEDSTATE: app->rememberShadedstate(win->isShaded()); break; case REM_DECOSTATE: app->rememberDecostate(win->decorationMask()); break; case REM_STUCKSTATE: app->rememberStuckstate(win->isStuck()); break; case REM_FOCUSNEWWINDOW: app->rememberFocusNewWindow(win->isFocusNew()); break; case REM_MINIMIZEDSTATE: app->rememberMinimizedstate(win->isIconic()); break; case REM_MAXIMIZEDSTATE: app->rememberMaximizedstate(win->maximizedState()); break; case REM_FULLSCREENSTATE: app->rememberFullscreenstate(win->isFullscreen()); break; case REM_ALPHA: app->rememberAlpha(win->frame().getAlpha(true), win->frame().getAlpha(false)); break; // case REM_TABSTATE: // break; case REM_JUMPWORKSPACE: app->rememberJumpworkspace(true); break; case REM_LAYER: app->rememberLayer(win->layerNum()); break; case REM_SAVEONCLOSE: app->rememberSaveOnClose(true); break; case REM_LASTATTRIB: default: // nothing break; } } void Remember::forgetAttrib(WinClient &winclient, Attribute attrib) { FluxboxWindow *win = winclient.fbwindow(); if (!win) return; Application *app = find(winclient); if (!app) { app = add(winclient); if (!app) return; } switch (attrib) { case REM_WORKSPACE: app->forgetWorkspace(); break; case REM_HEAD: app->forgetHead(); break; case REM_DIMENSIONS: app->forgetDimensions(); break; case REM_POSITION: app->forgetPosition(); break; case REM_FOCUSHIDDENSTATE: app->forgetFocusHiddenstate(); break; case REM_ICONHIDDENSTATE: app->forgetIconHiddenstate(); break; case REM_STUCKSTATE: app->forgetStuckstate(); break; case REM_FOCUSNEWWINDOW: app->forgetFocusNewWindow(); break; case REM_MINIMIZEDSTATE: app->forgetMinimizedstate(); break; case REM_MAXIMIZEDSTATE: app->forgetMaximizedstate(); break; case REM_FULLSCREENSTATE: app->forgetFullscreenstate(); break; case REM_DECOSTATE: app->forgetDecostate(); break; case REM_SHADEDSTATE: app->forgetShadedstate(); break; case REM_ALPHA: app->forgetAlpha(); break; // case REM_TABSTATE: // break; case REM_JUMPWORKSPACE: app->forgetJumpworkspace(); break; case REM_LAYER: app->forgetLayer(); break; case REM_SAVEONCLOSE: app->forgetSaveOnClose(); break; case REM_LASTATTRIB: default: // nothing break; } } void Remember::setupFrame(FluxboxWindow &win) { WinClient &winclient = win.winClient(); Application *app = find(winclient); if (app == 0) return; // nothing to do // first, set the options that aren't preserved as window properties on // restart, then return if fluxbox is restarting -- we want restart to // disturb the current window state as little as possible if (app->focushiddenstate_remember) win.setFocusHidden(app->focushiddenstate); if (app->iconhiddenstate_remember) win.setIconHidden(app->iconhiddenstate); if (app->layer_remember) win.moveToLayer(app->layer); if (app->decostate_remember) win.setDecorationMask(app->decostate); if (app->alpha_remember) { win.frame().setDefaultAlpha(); win.frame().setAlpha(true,app->focused_alpha); win.frame().setAlpha(false,app->unfocused_alpha); } BScreen &screen = winclient.screen(); // now check if fluxbox is restarting if (screen.isRestart()) return; if (app->workspace_remember) { // we use setWorkspace and not reassoc because we're still initialising win.setWorkspace(app->workspace); if (app->jumpworkspace_remember && app->jumpworkspace) screen.changeWorkspaceID(app->workspace); } if (app->head_remember) { win.setOnHead(app->head); } if (app->dimensions_remember) { int win_w, win_h; if(app->dimension_is_relative) { int head = screen.getHead(win.fbWindow()); win_w = screen.calRelativeWidth(head, app->w); win_h = screen.calRelativeHeight(head, app->h); } else { win_w = app->w; win_h = app->h; } win.resize(win_w, win_h); } if (app->position_remember) { int newx, newy; if(app->position_is_relative) { int head = screen.getHead(win.fbWindow()); newx = screen.calRelativeWidth(head, app->x); newy = screen.calRelativeHeight(head, app->y); } else { newx = app->x; newy = app->y; } win.translateCoords(newx, newy, app->refc); win.move(newx, newy); } if (app->shadedstate_remember) // if inconsistent... if ((win.isShaded() && !app->shadedstate) || (!win.isShaded() && app->shadedstate)) win.shade(); // toggles // external tabs aren't available atm... //if (app->tabstate_remember) ... if (app->stuckstate_remember) // if inconsistent... if ((win.isStuck() && !app->stuckstate) || (!win.isStuck() && app->stuckstate)) win.stick(); // toggles if (app->focusnewwindow_remember) win.setFocusNew(app->focusnewwindow); if (app->minimizedstate_remember) { // if inconsistent... // this one doesn't actually work, but I can't imagine needing it if (win.isIconic() && !app->minimizedstate) win.deiconify(); else if (!win.isIconic() && app->minimizedstate) win.iconify(); } // I can't really test the "no" case of this if (app->maximizedstate_remember) win.setMaximizedState(app->maximizedstate); // I can't really test the "no" case of this if (app->fullscreenstate_remember) win.setFullscreen(app->fullscreenstate); } void Remember::setupClient(WinClient &winclient) { // leave windows alone on restart if (winclient.screen().isRestart()) return; // check if apps file has changed checkReload(); Application *app = find(winclient); if (app == 0) return; // nothing to do FluxboxWindow *group; if (winclient.fbwindow() == 0 && app->is_grouped && (group = findGroup(app, winclient.screen()))) { group->attachClient(winclient); if (app->jumpworkspace_remember && app->jumpworkspace) // jump to window, not saved workspace winclient.screen().changeWorkspaceID(group->workspaceNumber()); } } FluxboxWindow *Remember::findGroup(Application *app, BScreen &screen) { if (!app || !app->is_grouped) return 0; // find the first client associated with the app and return its fbwindow Clients::iterator it = m_clients.begin(); Clients::iterator it_end = m_clients.end(); for (; it != it_end; ++it) { if (it->second == app && it->first->fbwindow() && &screen == &it->first->screen() && (!app->group_pattern || app->group_pattern->match(*it->first))) return it->first->fbwindow(); } // there weren't any open, but that's ok return 0; } void Remember::updateDecoStateFromClient(WinClient& winclient) { Application* app= find(winclient); if ( app && isRemembered(winclient, REM_DECOSTATE)) { winclient.fbwindow()->setDecorationMask(app->decostate); } } void Remember::updateClientClose(WinClient &winclient) { checkReload(); // reload if it's changed Application *app = find(winclient); if (app) { Patterns::iterator it = m_pats->begin(); for (; it != m_pats->end(); ++it) { if (it->second == app) { it->first->removeMatch(); break; } } } if (app && (app->save_on_close_remember && app->save_on_close)) { for (int attrib = 0; attrib < REM_LASTATTRIB; attrib++) { if (isRemembered(winclient, (Attribute) attrib)) { rememberAttrib(winclient, (Attribute) attrib); } } save(); } // we need to get rid of references to this client Clients::iterator wc_it = m_clients.find(&winclient); if (wc_it != m_clients.end()) { m_clients.erase(wc_it); } } void Remember::initForScreen(BScreen &screen) { // All windows get the remember menu. _FB_USES_NLS; screen.addExtraWindowMenu(_FB_XTEXT(Remember, MenuItemName, "Remember...", "Remember item in menu"), createRememberMenu(screen)); } fluxbox-1.3.5/src/PaxHeaders.25974/Remember.hh0000644000175000017500000000013212106662425017122 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.347812461 30 ctime=1360750008.651811615 fluxbox-1.3.5/src/Remember.hh0000644000175000017500000001213512106662425015153 0ustar00mgmg00000000000000// Remember.hh for Fluxbox Window Manager // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // Copyright (c) 2002 Xavier Brouckaert // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. /* Based on the original "Remember patch" by Xavier Brouckaert */ #ifndef REMEMBER_HH #define REMEMBER_HH #include "AtomHandler.hh" #include "ClientPattern.hh" #include #include #include class FluxboxWindow; class BScreen; class WinClient; class Application; namespace FbTk { class AutoReloadHelper; } /** * Class Remember is an atomhandler to avoid interfering with * the main code as much as possible, since we hope that one day * things like this (and maybe toolbar/slit) can become some sort * of modular plugin. Doing this should help give an idea of what * sort of interface abilities we'll need... */ class Remember : public AtomHandler { public: /** * holds which attributes to remember */ enum Attribute { REM_DECOSTATE= 0, REM_DIMENSIONS, REM_FOCUSHIDDENSTATE, REM_ICONHIDDENSTATE, REM_JUMPWORKSPACE, REM_LAYER, REM_POSITION, REM_SAVEONCLOSE, REM_SHADEDSTATE, REM_STUCKSTATE, //REM_TABSTATE, ... external tabs disabled atm REM_WORKSPACE, REM_HEAD, REM_ALPHA, REM_MINIMIZEDSTATE, REM_MAXIMIZEDSTATE, REM_FULLSCREENSTATE, REM_FOCUSNEWWINDOW, REM_LASTATTRIB // not actually used }; enum { POS_UPPERLEFT= 0, POS_UPPERRIGHT, POS_LOWERLEFT, POS_LOWERRIGHT, POS_CENTER }; // a "pattern" to the relevant app // each app exists ONLY for that pattern. // And we need to keep a list of pairs as we want to keep the // applications in the same order as they will be in the apps file typedef std::list< std::pair > Patterns; // We keep track of which app is assigned to a winclient // particularly useful to update counters etc on windowclose typedef std::map Clients; // we have to remember any startups we did so that they are saved again typedef std::list Startups; Remember(); ~Remember(); Application* find(WinClient &winclient); Application* add(WinClient &winclient); FluxboxWindow* findGroup(Application *, BScreen &screen); void reconfigure(); void checkReload(); void reload(); void save(); bool isRemembered(WinClient &win, Attribute attrib); void rememberAttrib(WinClient &win, Attribute attrib); void forgetAttrib(WinClient &win, Attribute attrib); // Functions relating to AtomHandler // Functions we actually use void setupFrame(FluxboxWindow &win); void setupClient(WinClient &winclient); void updateClientClose(WinClient &winclient); void initForScreen(BScreen &screen); // Functions we ignore (zero from AtomHandler) // Leaving here in case they might be useful later void updateFocusedWindow(BScreen &, Window) { } void updateClientList(BScreen &screen) {} void updateWorkspaceNames(BScreen &screen) {} void updateCurrentWorkspace(BScreen &screen) {} void updateWorkspaceCount(BScreen &screen) {} void updateWorkarea(BScreen &) { } void updateWorkspace(FluxboxWindow &win) {} void updateState(FluxboxWindow &win) {} void updateHints(FluxboxWindow &win) {} void updateLayer(FluxboxWindow &win) {} void updateFrameClose(FluxboxWindow &win) {} void updateDecoStateFromClient(WinClient& client); bool checkClientMessage(const XClientMessageEvent &ce, BScreen * screen, WinClient * const winclient) { return false; } // ignore this bool propertyNotify(WinClient &winclient, Atom the_property) { return false; } static Remember &instance() { return *s_instance; } private: std::auto_ptr m_pats; Clients m_clients; Startups m_startups; static Remember *s_instance; FbTk::AutoReloadHelper* m_reloader; }; #endif // REMEMBER_HH fluxbox-1.3.5/src/PaxHeaders.25974/Ewmh.cc0000644000175000017500000000013212106662425016252 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.343812461 30 ctime=1360750008.651811615 fluxbox-1.3.5/src/Ewmh.cc0000644000175000017500000015725512106662425014320 0ustar00mgmg00000000000000// Ewmh.cc for fluxbox // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "Ewmh.hh" #include "Screen.hh" #include "Window.hh" #include "WinClient.hh" #include "Workspace.hh" #include "Layer.hh" #include "fluxbox.hh" #include "FbWinFrameTheme.hh" #include "FocusControl.hh" #include "Debug.hh" #include "FbTk/App.hh" #include "FbTk/FbWindow.hh" #include "FbTk/I18n.hh" #include "FbTk/LayerItem.hh" #include "FbTk/Layer.hh" #include "FbTk/FbPixmap.hh" #include #include #include #include #include #ifdef HAVE_CSTRING #include #else #include #endif #ifdef HAVE_CSTDLIB #include #else #include #endif using std::cerr; using std::endl; using std::vector; using std::list; // mipspro has no new(nothrow) #if defined sgi && ! defined GCC #define FB_new_nothrow new #else #define FB_new_nothrow new(std::nothrow) #endif namespace { /* From Extended Window Manager Hints, draft 1.3: * * _NET_WM_ICON CARDINAL[][2+n]/32 * * This is an array of possible icons for the client. This specification does * not stipulate what size these icons should be, but individual desktop * environments or toolkits may do so. The Window Manager MAY scale any of * these icons to an appropriate size. * * This is an array of 32bit packed CARDINAL ARGB with high byte being A, low * byte being B. The first two cardinals are width, height. Data is in rows, * left to right and top to bottom. * *** * * NOTE: the returned data for XA_CARDINAL is long if the rfmt equals * 32. sizeof(long) on 64bit machines is 8. to quote from * "man XGetWindowProperty": * * If the returned format is 32, the property data will be stored as * an array of longs (which in a 64-bit application will be 64-bit * values that are padded in the upper 4 bytes). * * this is especially true on 64bit machines when some of the clients * (eg: tvtime, konqueror3) have problems to feed in the right data * into the _NET_WM_ICON property. we faced some segfaults because * width and height were not quite right because of ignoring 64bit * behaviour on client side. * * TODO: maybe move the pixmap-creation code to FbTk? */ void extractNetWmIcon(Atom net_wm_icon, WinClient& winclient) { typedef std::pair Size; typedef std::map IconContainer; unsigned long* raw_data = 0; unsigned long nr_icon_data = 0; { Atom rtype; int rfmt; unsigned long nr_read; unsigned long nr_bytes_left; // no data or no _NET_WM_ICON if (! winclient.property(net_wm_icon, 0L, 0L, False, XA_CARDINAL, &rtype, &rfmt, &nr_read, &nr_bytes_left, reinterpret_cast(&raw_data)) || nr_bytes_left == 0) { if (raw_data) XFree(raw_data); return; } // actually there is some data in _NET_WM_ICON nr_icon_data = nr_bytes_left / sizeof(CARD32); fbdbg << "extractNetWmIcon: " << winclient.title().logical() << "\n"; fbdbg << "nr_icon_data: " << nr_icon_data << "\n"; // read all the icons stored in _NET_WM_ICON if (raw_data) XFree(raw_data); // something went wrong if (!winclient.property(net_wm_icon, 0L, nr_icon_data, False, XA_CARDINAL, &rtype, &rfmt, &nr_read, &nr_bytes_left, reinterpret_cast(&raw_data))) { return; } fbdbg << "nr_read: " << nr_read << "|" << nr_bytes_left << "\n"; } IconContainer icon_data; // stores all available data, sorted by size (width x height) unsigned long width; unsigned long height; // analyze the available icons // // check also for invalid values coming in from "bad" applications unsigned long i; for (i = 0; i + 2 < nr_icon_data; i += width * height ) { width = raw_data[i++]; if (width >= nr_icon_data) { fbdbg << "Ewmh.cc extractNetWmIcon found strange _NET_WM_ICON width (" << width << ") for " << winclient.title().logical() << "\n"; break; } height = raw_data[i++]; if (height >= nr_icon_data) { fbdbg << "Ewmh.cc extractNetWmIcon found strange _NET_WM_ICON height (" << height << ") for " << winclient.title().logical() << "\n"; break; } // strange values stored in the NETWM_ICON if (i + width * height > nr_icon_data) { fbdbg << "Ewmh.cc extractNetWmIcon found strange _NET_WM_ICON dimensions (" << width << "x" << height << ")for " << winclient.title().logical() << "\n"; break; } icon_data[Size(width, height)] = &raw_data[i]; } // no valid icons found at all if (icon_data.empty()) { XFree(raw_data); return; } Display* dpy = FbTk::App::instance()->display(); int scrn = winclient.screen().screenNumber(); // the icon will not be used by the client but by // 'menu', 'iconbar', 'titlebar'. all these entities // are created based upon the rootwindow and // the default depth. if we would use winclient.depth() // and winclient.drawable() here we might get into trouble // (xfce4-terminal, skype .. 32bit visuals vs 24bit fluxbox // entities) Drawable parent = winclient.screen().rootWindow().drawable(); unsigned int depth = DefaultDepth(dpy, scrn); // pick the smallest icon size atm // TODO: find a better criteria width = icon_data.begin()->first.first; height = icon_data.begin()->first.second; // tmp image for the pixmap XImage* img_pm = XCreateImage(dpy, DefaultVisual(dpy, scrn), depth, ZPixmap, 0, NULL, width, height, 32, 0); if (!img_pm) { XFree(raw_data); return; } // tmp image for the mask XImage* img_mask = XCreateImage(dpy, DefaultVisual(dpy, scrn), 1, XYBitmap, 0, NULL, width, height, 32, 0); if (!img_mask) { XFree(raw_data); XDestroyImage(img_pm); return; } // allocate some memory for the icons at client side img_pm->data = static_cast(malloc(img_pm->bytes_per_line * height)); img_mask->data = static_cast(malloc(img_mask->bytes_per_line * height)); const unsigned long* src = icon_data.begin()->second; unsigned int rgba; unsigned long pixel; unsigned long x; unsigned long y; unsigned char r, g, b, a; for (y = 0; y < height; y++) { for (x = 0; x < width; x++, src++) { rgba = *src; // use only 32bit a = ( rgba & 0xff000000 ) >> 24; r = ( rgba & 0x00ff0000 ) >> 16; g = ( rgba & 0x0000ff00 ) >> 8; b = ( rgba & 0x000000ff ); // 15 bit display, 5R 5G 5B if (img_pm->red_mask == 0x7c00 && img_pm->green_mask == 0x03e0 && img_pm->blue_mask == 0x1f) { pixel = ((r << 7) & 0x7c00) | ((g << 2) & 0x03e0) | ((b >> 3) & 0x001f); // 16 bit display, 5R 6G 5B } else if (img_pm->red_mask == 0xf800 && img_pm->green_mask == 0x07e0 && img_pm->blue_mask == 0x1f) { pixel = ((r << 8) & 0xf800) | ((g << 3) & 0x07e0) | ((b >> 3) & 0x001f); // 24/32 bit display, 8R 8G 8B } else if (img_pm->red_mask == 0xff0000 && img_pm->green_mask == 0xff00 && img_pm->blue_mask == 0xff) { pixel = rgba & 0x00ffffff; } else { pixel = 0; } // transfer rgb data XPutPixel(img_pm, x, y, pixel); // transfer mask data XPutPixel(img_mask, x, y, a > 127 ? 0 : 1); } } // the final icon FbTk::PixmapWithMask icon; icon.pixmap() = FbTk::FbPixmap(parent, width, height, depth); icon.mask() = FbTk::FbPixmap(parent, width, height, 1); FbTk::GContext gc_pm(icon.pixmap()); FbTk::GContext gc_mask(icon.mask()); XPutImage(dpy, icon.pixmap().drawable(), gc_pm.gc(), img_pm, 0, 0, 0, 0, width, height); XPutImage(dpy, icon.mask().drawable(), gc_mask.gc(), img_mask, 0, 0, 0, 0, width, height); XDestroyImage(img_pm); // frees img_pm->data as well XDestroyImage(img_mask); // frees img_mask->data as well XFree(raw_data); winclient.setIcon(icon); } } // end anonymous namespace class Ewmh::EwmhAtoms { public: EwmhAtoms() { Display *disp = FbTk::App::instance()->display(); supported = XInternAtom(disp, "_NET_SUPPORTED", False); client_list = XInternAtom(disp, "_NET_CLIENT_LIST", False); client_list_stacking = XInternAtom(disp, "_NET_CLIENT_LIST_STACKING", False); number_of_desktops = XInternAtom(disp, "_NET_NUMBER_OF_DESKTOPS", False); desktop_geometry = XInternAtom(disp, "_NET_DESKTOP_GEOMETRY", False); desktop_viewport = XInternAtom(disp, "_NET_DESKTOP_VIEWPORT", False); current_desktop = XInternAtom(disp, "_NET_CURRENT_DESKTOP", False); desktop_names = XInternAtom(disp, "_NET_DESKTOP_NAMES", False); active_window = XInternAtom(disp, "_NET_ACTIVE_WINDOW", False); workarea = XInternAtom(disp, "_NET_WORKAREA", False); supporting_wm_check = XInternAtom(disp, "_NET_SUPPORTING_WM_CHECK", False); virtual_roots = XInternAtom(disp, "_NET_VIRTUAL_ROOTS", False); close_window = XInternAtom(disp, "_NET_CLOSE_WINDOW", False); moveresize_window = XInternAtom(disp, "_NET_MOVERESIZE_WINDOW", False); restack_window = XInternAtom(disp, "_NET_RESTACK_WINDOW", False); request_frame_extents = XInternAtom(disp, "_NET_REQUEST_FRAME_EXTENTS", False); wm_moveresize = XInternAtom(disp, "_NET_WM_MOVERESIZE", False); properties = XInternAtom(disp, "_NET_PROPERTIES", False); wm_name = XInternAtom(disp, "_NET_WM_NAME", False); wm_icon_name = XInternAtom(disp, "_NET_WM_ICON_NAME", False); wm_desktop = XInternAtom(disp, "_NET_WM_DESKTOP", False); // type atoms wm_window_type = XInternAtom(disp, "_NET_WM_WINDOW_TYPE", False); wm_window_type_dock = XInternAtom(disp, "_NET_WM_WINDOW_TYPE_DOCK", False); wm_window_type_desktop = XInternAtom(disp, "_NET_WM_WINDOW_TYPE_DESKTOP", False); wm_window_type_splash = XInternAtom(disp, "_NET_WM_WINDOW_TYPE_SPLASH", False); wm_window_type_dialog = XInternAtom(disp, "_NET_WM_WINDOW_TYPE_DIALOG", False); wm_window_type_menu = XInternAtom(disp, "_NET_WM_WINDOW_TYPE_MENU", False); wm_window_type_toolbar = XInternAtom(disp, "_NET_WM_WINDOW_TYPE_TOOLBAR", False); wm_window_type_normal = XInternAtom(disp, "_NET_WM_WINDOW_TYPE_NORMAL", False); // state atom and the supported state atoms wm_state = XInternAtom(disp, "_NET_WM_STATE", False); wm_state_sticky = XInternAtom(disp, "_NET_WM_STATE_STICKY", False); wm_state_shaded = XInternAtom(disp, "_NET_WM_STATE_SHADED", False); wm_state_maximized_horz = XInternAtom(disp, "_NET_WM_STATE_MAXIMIZED_HORZ", False); wm_state_maximized_vert = XInternAtom(disp, "_NET_WM_STATE_MAXIMIZED_VERT", False); wm_state_fullscreen = XInternAtom(disp, "_NET_WM_STATE_FULLSCREEN", False); wm_state_hidden = XInternAtom(disp, "_NET_WM_STATE_HIDDEN", False); wm_state_skip_taskbar = XInternAtom(disp, "_NET_WM_STATE_SKIP_TASKBAR", False); wm_state_skip_pager = XInternAtom(disp, "_NET_WM_STATE_SKIP_PAGER", False); wm_state_above = XInternAtom(disp, "_NET_WM_STATE_ABOVE", False); wm_state_below = XInternAtom(disp, "_NET_WM_STATE_BELOW", False); wm_state_modal = XInternAtom(disp, "_NET_WM_STATE_MODAL", False); wm_state_demands_attention = XInternAtom(disp, "_NET_WM_STATE_DEMANDS_ATTENTION", False); // allowed actions wm_allowed_actions = XInternAtom(disp, "_NET_WM_ALLOWED_ACTIONS", False); wm_action_move = XInternAtom(disp, "_NET_WM_ACTION_MOVE", False); wm_action_resize = XInternAtom(disp, "_NET_WM_ACTION_RESIZE", False); wm_action_minimize = XInternAtom(disp, "_NET_WM_ACTION_MINIMIZE", False); wm_action_shade = XInternAtom(disp, "_NET_WM_ACTION_SHADE", False); wm_action_stick = XInternAtom(disp, "_NET_WM_ACTION_STICK", False); wm_action_maximize_horz = XInternAtom(disp, "_NET_WM_ACTION_MAXIMIZE_HORZ", False); wm_action_maximize_vert = XInternAtom(disp, "_NET_WM_ACTION_MAXIMIZE_VERT", False); wm_action_fullscreen = XInternAtom(disp, "_NET_WM_ACTION_FULLSCREEN", False); wm_action_change_desktop = XInternAtom(disp, "_NET_WM_ACTION_CHANGE_DESKTOP", False); wm_action_close = XInternAtom(disp, "_NET_WM_ACTION_CLOSE", False); wm_strut = XInternAtom(disp, "_NET_WM_STRUT", False); wm_icon_geometry = XInternAtom(disp, "_NET_WM_ICON_GEOMETRY", False); wm_icon = XInternAtom(disp, "_NET_WM_ICON", False); wm_pid = XInternAtom(disp, "_NET_WM_PID", False); wm_handled_icons = XInternAtom(disp, "_NET_WM_HANDLED_ICONS", False); frame_extents = XInternAtom(disp, "_NET_FRAME_EXTENTS", False); wm_ping = XInternAtom(disp, "_NET_WM_PING", False); utf8_string = XInternAtom(disp, "UTF8_STRING", False); }; // root window properties Atom supported, client_list, client_list_stacking, number_of_desktops, desktop_geometry, desktop_viewport, current_desktop, desktop_names, active_window, workarea, supporting_wm_check, virtual_roots, moveresize_window, restack_window, request_frame_extents; // root window messages Atom close_window, wm_moveresize; // application window properties Atom properties, wm_name, wm_icon_name, wm_desktop, // types wm_window_type, wm_window_type_dock, wm_window_type_desktop, wm_window_type_splash, wm_window_type_dialog, wm_window_type_menu, wm_window_type_toolbar, wm_window_type_normal, // states wm_state, wm_state_sticky, wm_state_shaded, wm_state_maximized_horz, wm_state_maximized_vert, wm_state_fullscreen, wm_state_hidden, wm_state_skip_taskbar, wm_state_skip_pager, wm_state_below, wm_state_above, wm_state_modal, wm_state_demands_attention, // allowed actions wm_allowed_actions, wm_action_move, wm_action_resize, wm_action_minimize, wm_action_shade, wm_action_stick, wm_action_maximize_horz, wm_action_maximize_vert, wm_action_fullscreen, wm_action_change_desktop, wm_action_close, wm_strut, wm_icon_geometry, wm_icon, wm_pid, wm_handled_icons, frame_extents; // application protocols Atom wm_ping; Atom utf8_string; }; enum EwmhMoveResizeDirection { _NET_WM_MOVERESIZE_SIZE_TOPLEFT = 0, _NET_WM_MOVERESIZE_SIZE_TOP = 1, _NET_WM_MOVERESIZE_SIZE_TOPRIGHT = 2, _NET_WM_MOVERESIZE_SIZE_RIGHT = 3, _NET_WM_MOVERESIZE_SIZE_BOTTOMRIGHT = 4, _NET_WM_MOVERESIZE_SIZE_BOTTOM = 5, _NET_WM_MOVERESIZE_SIZE_BOTTOMLEFT = 6, _NET_WM_MOVERESIZE_SIZE_LEFT = 7, _NET_WM_MOVERESIZE_MOVE = 8, // movement only _NET_WM_MOVERESIZE_SIZE_KEYBOARD = 9, // size via keyboard _NET_WM_MOVERESIZE_MOVE_KEYBOARD = 10, // move via keyboard _NET_WM_MOVERESIZE_CANCEL = 11 // cancel operation }; Ewmh::Ewmh() { setName("ewmh"); m_net = new EwmhAtoms; } Ewmh::~Ewmh() { delete m_net; } void Ewmh::initForScreen(BScreen &screen) { Display *disp = FbTk::App::instance()->display(); /* From Extended Window Manager Hints, draft 1.3: * * _NET_SUPPORTING_WM_CHECK * * The Window Manager MUST set this property on the root window * to be the ID of a child window created by himself, to indicate * that a compliant window manager is active. The child window * MUST also have the _NET_SUPPORTING_WM_CHECK property set to * the ID of the child window. The child window MUST also have * the _NET_WM_NAME property set to the name of the Window Manager. * * Rationale: The child window is used to distinguish an active * Window Manager from a stale _NET_SUPPORTING_WM_CHECK property * that happens to point to another window. If the * _NET_SUPPORTING_WM_CHECK window on the client window is missing * or not properly set, clients SHOULD assume that no conforming * Window Manager is present. */ Window wincheck = screen.dummyWindow().window(); if (wincheck != None) { screen.rootWindow().changeProperty(m_net->supporting_wm_check, XA_WINDOW, 32, PropModeReplace, (unsigned char *) &wincheck, 1); XChangeProperty(disp, wincheck, m_net->supporting_wm_check, XA_WINDOW, 32, PropModeReplace, (unsigned char *) &wincheck, 1); XChangeProperty(disp, wincheck, m_net->wm_name, m_net->utf8_string, 8, PropModeReplace, (unsigned char *) "Fluxbox", strlen("Fluxbox")); } //set supported atoms Atom atomsupported[] = { // window properties m_net->wm_strut, m_net->wm_state, m_net->wm_name, m_net->wm_icon, m_net->wm_icon_name, // states that we support: m_net->wm_state_sticky, m_net->wm_state_shaded, m_net->wm_state_maximized_horz, m_net->wm_state_maximized_vert, m_net->wm_state_fullscreen, m_net->wm_state_hidden, m_net->wm_state_skip_taskbar, m_net->wm_state_modal, m_net->wm_state_below, m_net->wm_state_above, m_net->wm_state_demands_attention, // window type m_net->wm_window_type, m_net->wm_window_type_dock, m_net->wm_window_type_desktop, m_net->wm_window_type_splash, m_net->wm_window_type_dialog, m_net->wm_window_type_menu, m_net->wm_window_type_toolbar, m_net->wm_window_type_normal, // window actions m_net->wm_allowed_actions, m_net->wm_action_move, m_net->wm_action_resize, m_net->wm_action_minimize, m_net->wm_action_shade, m_net->wm_action_stick, m_net->wm_action_maximize_horz, m_net->wm_action_maximize_vert, m_net->wm_action_fullscreen, m_net->wm_action_change_desktop, m_net->wm_action_close, // root properties m_net->client_list, m_net->client_list_stacking, m_net->number_of_desktops, m_net->current_desktop, m_net->active_window, m_net->close_window, m_net->moveresize_window, m_net->workarea, m_net->restack_window, m_net->request_frame_extents, m_net->wm_moveresize, m_net->frame_extents, // desktop properties m_net->wm_desktop, m_net->desktop_names, m_net->desktop_viewport, m_net->desktop_geometry, m_net->supporting_wm_check }; /* From Extended Window Manager Hints, draft 1.3: * * _NET_SUPPORTED, ATOM[]/32 * * This property MUST be set by the Window Manager * to indicate which hints it supports. For * example: considering _NET_WM_STATE both this * atom and all supported states * e.g. _NET_WM_STATE_MODAL, _NET_WM_STATE_STICKY, * would be listed. This assumes that backwards * incompatible changes will not be made to the * hints (without being renamed). */ screen.rootWindow().changeProperty(m_net->supported, XA_ATOM, 32, PropModeReplace, (unsigned char *) &atomsupported, (sizeof atomsupported)/sizeof atomsupported[0]); // update atoms updateWorkspaceCount(screen); updateCurrentWorkspace(screen); updateWorkspaceNames(screen); updateClientList(screen); updateViewPort(screen); updateGeometry(screen); updateWorkarea(screen); } void Ewmh::setupClient(WinClient &winclient) { updateStrut(winclient); FbTk::FbString newtitle = winclient.textProperty(m_net->wm_name); if (!newtitle.empty()) winclient.setTitle(newtitle); Atom ret_type; int fmt; unsigned long nitems, bytes_after; unsigned char* data = 0; extractNetWmIcon(m_net->wm_icon, winclient); /* From Extended Window Manager Hints, draft 1.3: * * _NET_WM_WINDOW_TYPE, ATOM[]/32 * * This SHOULD be set by the Client before mapping to a list of atoms * indicating the functional type of the window. This property SHOULD * be used by the window manager in determining the decoration, * stacking position and other behavior of the window. The Client * SHOULD specify window types in order of preference (the first being * most preferable) but MUST include at least one of the basic window * type atoms from the list below. This is to allow for extension of * the list of types whilst providing default behavior for Window * Managers that do not recognize the extensions. * */ winclient.property(m_net->wm_window_type, 0, 0x7fffffff, False, XA_ATOM, &ret_type, &fmt, &nitems, &bytes_after, &data); WindowState::WindowType type = WindowState::TYPE_NORMAL; if (data) { Atom *atoms = (unsigned long *)data; for (unsigned long l = 0; l < nitems; ++l) { if (atoms[l] == m_net->wm_window_type_dock) type = WindowState::TYPE_DOCK; else if (atoms[l] == m_net->wm_window_type_desktop) type = WindowState::TYPE_DESKTOP; else if (atoms[l] == m_net->wm_window_type_splash) type = WindowState::TYPE_SPLASH; else if (atoms[l] == m_net->wm_window_type_dialog) type = WindowState::TYPE_DIALOG; else if (atoms[l] == m_net->wm_window_type_menu) type = WindowState::TYPE_MENU; else if (atoms[l] == m_net->wm_window_type_toolbar) type = WindowState::TYPE_TOOLBAR; else if (atoms[l] != m_net->wm_window_type_normal) continue; /* * NOT YET IMPLEMENTED: * _NET_WM_WINDOW_TYPE_UTILITY */ break; } XFree(data); } else if (winclient.isTransient()) { // if _NET_WM_WINDOW_TYPE not set and this window // has transient_for the type must be set to _NET_WM_WINDOW_TYPE_DIALOG type = WindowState::TYPE_DIALOG; winclient. changeProperty(m_net->wm_window_type, XA_ATOM, 32, PropModeReplace, (unsigned char*)&m_net->wm_window_type_dialog, 1); } winclient.setWindowType(type); } void Ewmh::setupFrame(FluxboxWindow &win) { setupState(win); bool exists; unsigned int desktop=static_cast(win.winClient().cardinalProperty(m_net->wm_desktop, &exists)); if (exists) { if (desktop == (unsigned int)(-1) && !win.isStuck()) win.stick(); else win.setWorkspace(desktop); } else { updateWorkspace(win); } updateFrameExtents(win); } void Ewmh::updateFrameClose(FluxboxWindow &win) { } void Ewmh::updateFocusedWindow(BScreen &screen, Window win) { /* From Extended Window Manager Hints, draft 1.3: * * _NET_ACTIVE_WINDOW, WINDOW/32 * * The window ID of the currently active window or None * if no window has the focus. This is a read-only * property set by the Window Manager. * */ screen.rootWindow().changeProperty(m_net->active_window, XA_WINDOW, 32, PropModeReplace, (unsigned char *)&win, 1); } // EWMH says, regarding _NET_WM_STATE and _NET_WM_DESKTOP // The Window Manager should remove the property whenever a window is withdrawn // but it should leave the property in place when it is shutting down void Ewmh::updateClientClose(WinClient &winclient){ if (!winclient.screen().isShuttingdown()) { XDeleteProperty(FbTk::App::instance()->display(), winclient.window(), m_net->wm_state); XDeleteProperty(FbTk::App::instance()->display(), winclient.window(), m_net->wm_desktop); } } void Ewmh::updateClientList(BScreen &screen) { if (screen.isShuttingdown()) return; list creation_order_list = screen.focusControl().creationOrderList().clientList(); size_t num = creation_order_list.size(); Window *wl = FB_new_nothrow Window[num]; if (wl == 0) { _FB_USES_NLS; cerr<<_FB_CONSOLETEXT(Ewmh, OutOfMemoryClientList, "Fatal: Out of memory, can't allocate for EWMH client list", "")<::iterator client_it = creation_order_list.begin(); list::iterator client_it_end = creation_order_list.end(); for (; client_it != client_it_end; ++client_it) { WinClient *client = dynamic_cast(*client_it); if (client) wl[win++] = client->window(); } /* From Extended Window Manager Hints, draft 1.3: * * _NET_CLIENT_LIST, WINDOW[]/32 * _NET_CLIENT_LIST_STACKING, WINDOW[]/32 * * These arrays contain all X Windows managed by * the Window Manager. _NET_CLIENT_LIST has * initial mapping order, starting with the oldest * window. _NET_CLIENT_LIST_STACKING has * bottom-to-top stacking order. These properties * SHOULD be set and updated by the Window * Manager. */ screen.rootWindow().changeProperty(m_net->client_list, XA_WINDOW, 32, PropModeReplace, (unsigned char *)wl, num); screen.rootWindow().changeProperty(m_net->client_list_stacking, XA_WINDOW, 32, PropModeReplace, (unsigned char *)wl, num); delete [] wl; } void Ewmh::updateWorkspaceNames(BScreen &screen) { /* From Extended Window Manager Hints, draft 1.3: * * _NET_DESKTOP_NAMES, UTF8_STRING[] * * The names of all virtual desktops. * This is a list of NULL-terminated strings in UTF-8 * encoding [UTF8]. This property MAY be changed by a * Pager or the Window Manager at any time. * * Note: The number of names could be different from * _NET_NUMBER_OF_DESKTOPS. If it is less than * _NET_NUMBER_OF_DESKTOPS, then the desktops with high * numbers are unnamed. If it is larger than * _NET_NUMBER_OF_DESKTOPS, then the excess names outside * of the _NET_NUMBER_OF_DESKTOPS are considered to be * reserved in case the number of desktops is increased. * * Rationale: The name is not a necessary attribute of a * virtual desktop. Thus the availability or unavailability * of names has no impact on virtual desktop functionality. * Since names are set by users and users are likely to * preset names for a fixed number of desktops, it * doesn't make sense to shrink or grow this list when the * number of available desktops changes. * */ XTextProperty text; const BScreen::WorkspaceNames &workspacenames = screen.getWorkspaceNames(); const size_t number_of_desks = workspacenames.size(); char** names = new char*[number_of_desks]; for (size_t i = 0; i < number_of_desks; i++) { names[i] = new char[workspacenames[i].size() + 1]; // +1 for \0 memset(names[i], 0, workspacenames[i].size()); strcpy(names[i], workspacenames[i].c_str()); } #ifdef X_HAVE_UTF8_STRING int code = Xutf8TextListToTextProperty(FbTk::App::instance()->display(), names, number_of_desks, XUTF8StringStyle, &text); if (code != XNoMemory && code != XLocaleNotSupported) { XSetTextProperty(FbTk::App::instance()->display(), screen.rootWindow().window(), &text, m_net->desktop_names); XFree(text.value); } #else if (XStringListToTextProperty(names, number_of_desks, &text)) { XSetTextProperty(FbTk::App::instance()->display(), screen.rootWindow().window(), &text, m_net->desktop_names); XFree(text.value); } #endif for (size_t i = 0; i < number_of_desks; i++) delete[] names[i]; delete[] names; } void Ewmh::updateCurrentWorkspace(BScreen &screen) { /* From Extended Window Manager Hints, draft 1.3: * * _NET_CURRENT_DESKTOP desktop, CARDINAL/32 * * The index of the current desktop. This is always * an integer between 0 and _NET_NUMBER_OF_DESKTOPS - 1. * This MUST be set and updated by the Window Manager. * */ unsigned long workspace = screen.currentWorkspaceID(); screen.rootWindow().changeProperty(m_net->current_desktop, XA_CARDINAL, 32, PropModeReplace, (unsigned char *)&workspace, 1); } void Ewmh::updateWorkspaceCount(BScreen &screen) { /* From Extended Window Manager Hints, draft 1.3: * * _NET_NUMBER_OF_DESKTOPS, CARDINAL/32 * * This property SHOULD be set and updated by the * Window Manager to indicate the number of virtual * desktops. */ unsigned long numworkspaces = screen.numberOfWorkspaces(); screen.rootWindow().changeProperty(m_net->number_of_desktops, XA_CARDINAL, 32, PropModeReplace, (unsigned char *)&numworkspaces, 1); } void Ewmh::updateViewPort(BScreen &screen) { /* From Extended Window Manager Hints, draft 1.3: * * _NET_DESKTOP_VIEWPORT x, y, CARDINAL[][2]/32 * * Array of pairs of cardinals that define the * top left corner of each desktop's viewport. * For Window Managers that don't support large * desktops, this MUST always be set to (0,0). * */ long value[2] = {0, 0}; // we dont support large desktops screen.rootWindow().changeProperty(m_net->desktop_viewport, XA_CARDINAL, 32, PropModeReplace, (unsigned char *)value, 2); } void Ewmh::updateGeometry(BScreen &screen) { /* From Extended Window Manager Hints, draft 1.3: * * _NET_DESKTOP_GEOMETRY width, height, CARDINAL[2]/32 * * Array of two cardinals that defines the common size * of all desktops (this is equal to the screen size * if the Window Manager doesn't support large * desktops, otherwise it's equal to the virtual size * of the desktop). This property SHOULD be set by the * Window Manager. * */ long value[2] = {screen.width(), screen.height()}; screen.rootWindow().changeProperty(m_net->desktop_geometry, XA_CARDINAL, 32, PropModeReplace, (unsigned char *)value, 2); } void Ewmh::updateWorkarea(BScreen &screen) { /* From Extended Window Manager Hints, draft 1.3: * * _NET_WORKAREA, x, y, width, height CARDINAL[][4]/32 * * This property MUST be set by the Window Manager upon * calculating the work area for each desktop. Contains a * geometry for each desktop. These geometries are * specified relative to the viewport on each desktop and * specify an area that is completely contained within the * viewport. Work area SHOULD be used by desktop applications * to place desktop icons appropriately. * */ /* !!TODO * Not sure how to handle xinerama stuff here. * So i'm just doing this on the first head. */ unsigned long *coords = new unsigned long[4*screen.numberOfWorkspaces()]; for (unsigned int i=0; i < screen.numberOfWorkspaces()*4; i+=4) { // x, y coords[i] = screen.maxLeft(0); coords[i + 1] = screen.maxTop(0); // width, height coords[i + 2] = screen.maxRight(0) - screen.maxLeft(0); coords[i + 3] = screen.maxBottom(0) - screen.maxTop(0); } screen.rootWindow().changeProperty(m_net->workarea, XA_CARDINAL, 32, PropModeReplace, (unsigned char *)coords, 4 * screen.numberOfWorkspaces()); delete[] coords; } void Ewmh::updateState(FluxboxWindow &win) { updateActions(win); typedef vector StateVec; StateVec state; if (win.isMaximizedHorz()) state.push_back(m_net->wm_state_maximized_horz); if (win.isMaximizedVert()) state.push_back(m_net->wm_state_maximized_vert); if (win.isStuck()) state.push_back(m_net->wm_state_sticky); if (win.isShaded()) state.push_back(m_net->wm_state_shaded); if (win.layerNum() == ResourceLayer::BOTTOM) state.push_back(m_net->wm_state_below); if (win.layerNum() == ResourceLayer::ABOVE_DOCK) state.push_back(m_net->wm_state_above); if (win.isIconic()) state.push_back(m_net->wm_state_hidden); if (win.isIconHidden()) state.push_back(m_net->wm_state_skip_taskbar); if (win.isFullscreen()) state.push_back(m_net->wm_state_fullscreen); FluxboxWindow::ClientList::iterator it = win.clientList().begin(); FluxboxWindow::ClientList::iterator it_end = win.clientList().end(); for (; it != it_end; ++it) { StateVec client_state(state); Atom ret_type; int fmt; unsigned long nitems, bytes_after; unsigned char *data = 0; // set client-specific state if ((*it)->isStateModal()) client_state.push_back(m_net->wm_state_modal); if (Fluxbox::instance()->attentionHandler().isDemandingAttention(**it)) client_state.push_back(m_net->wm_state_demands_attention); // search the old states for _NET_WM_STATE_SKIP_PAGER and append it // to the current state, so it wont get deleted by us. (*it)->property(m_net->wm_state, 0, 0x7fffffff, False, XA_ATOM, &ret_type, &fmt, &nitems, &bytes_after, &data); if (data) { Atom *old_states = (Atom *)data; for (unsigned long i=0; i < nitems; ++i) { if (old_states[i] == m_net->wm_state_skip_pager) { client_state.push_back(m_net->wm_state_skip_pager); } } XFree(data); } if (!client_state.empty()) { (*it)->changeProperty(m_net->wm_state, XA_ATOM, 32, PropModeReplace, reinterpret_cast(&client_state.front()), client_state.size()); } else (*it)->deleteProperty(m_net->wm_state); } } void Ewmh::updateLayer(FluxboxWindow &win) { updateState(win); } void Ewmh::updateHints(FluxboxWindow &win) { } void Ewmh::updateWorkspace(FluxboxWindow &win) { long workspace = win.workspaceNumber(); if (win.isStuck()) workspace = -1; // appear on all desktops/workspaces FluxboxWindow::ClientList::iterator it = win.clientList().begin(); FluxboxWindow::ClientList::iterator it_end = win.clientList().end(); for (; it != it_end; ++it) { (*it)->changeProperty(m_net->wm_desktop, XA_CARDINAL, 32, PropModeReplace, (unsigned char *)&workspace, 1); } } // return true if we did handle the atom here bool Ewmh::checkClientMessage(const XClientMessageEvent &ce, BScreen * screen, WinClient * const winclient) { if (ce.message_type == m_net->wm_desktop) { // ce.data.l[0] = workspace number // valid window if (winclient == 0 || winclient->fbwindow() == 0) return true; FluxboxWindow *fbwin = winclient->fbwindow(); // if it's stick, make sure it is stuck. // otherwise, make sure it isn't stuck if (ce.data.l[0] == -1) { if (!fbwin->isStuck()) fbwin->stick(); return true; } else if (fbwin->isStuck()) fbwin->stick(); // the screen is the root window of the message, // which doesn't apply here (so borrow the variable :) ) screen = &fbwin->screen(); // valid workspace number? if (static_cast (ce.data.l[0]) < screen->numberOfWorkspaces()) screen->sendToWorkspace(ce.data.l[0], fbwin, false); return true; } else if (ce.message_type == m_net->wm_state) { if (winclient == 0 || winclient->fbwindow() == 0) return true; FluxboxWindow &win = *winclient->fbwindow(); // ce.data.l[0] = the action (remove, add or toggle) // ce.data.l[1] = the first property to alter // ce.data.l[2] = second property to alter (can be zero) if (ce.data.l[0] == STATE_REMOVE) { setState(win, ce.data.l[1], false, *winclient); setState(win, ce.data.l[2], false, *winclient); } else if (ce.data.l[0] == STATE_ADD) { setState(win, ce.data.l[1], true, *winclient); setState(win, ce.data.l[2], true, *winclient); } else if (ce.data.l[0] == STATE_TOGGLE) { toggleState(win, ce.data.l[1]); toggleState(win, ce.data.l[2]); } return true; } else if (ce.message_type == m_net->number_of_desktops) { if (screen == 0) return true; // ce.data.l[0] = number of workspaces // no need to alter number of desktops if they are the same // or if requested number of workspace is less than zero if (screen->numberOfWorkspaces() == static_cast(ce.data.l[0]) || ce.data.l[0] < 0) return true; if (screen->numberOfWorkspaces() > static_cast(ce.data.l[0])) { // remove last workspace until we have // the same number of workspaces while (screen->numberOfWorkspaces() != static_cast(ce.data.l[0])) { screen->removeLastWorkspace(); if (screen->numberOfWorkspaces() == 1) // must have at least one workspace break; } } else { // add workspaces to screen until workspace count match the requested size while (screen->numberOfWorkspaces() != static_cast(ce.data.l[0])) { screen->addWorkspace(); } } return true; } else if (ce.message_type == m_net->current_desktop) { if (screen == 0) return true; // ce.data.l[0] = workspace number // prevent out of range value if (static_cast(ce.data.l[0]) >= screen->numberOfWorkspaces()) return true; screen->changeWorkspaceID(ce.data.l[0]); return true; } else if (ce.message_type == m_net->active_window) { // make sure we have a valid window if (winclient == 0) return true; // ce.window = window to focus // ce.data.l[0] == 2 means the request came from a pager if (winclient->fbwindow() && (ce.data.l[0] == 2 || winclient->fbwindow()->focusRequestFromClient(*winclient))) { winclient->focus(); winclient->fbwindow()->raise(); } return true; } else if (ce.message_type == m_net->close_window) { if (winclient == 0) return true; // ce.window = window to close (which in this case is the win argument) winclient->sendClose(); return true; } else if (ce.message_type == m_net->moveresize_window) { if (winclient == 0 || winclient->fbwindow() == 0) return true; // ce.data.l[0] = gravity and flags int x = (ce.data.l[0] & 0x0100) ? ce.data.l[1] : winclient->fbwindow()->x(); int y = (ce.data.l[0] & 0x0200) ? ce.data.l[2] : winclient->fbwindow()->y(); unsigned int width = (ce.data.l[0] & 0x0400) ? ce.data.l[3] : winclient->fbwindow()->width(); unsigned int height = (ce.data.l[0] & 0x0800) ? ce.data.l[4] : winclient->fbwindow()->height(); int win_gravity=ce.data.l[0] & 0xFF; winclient->fbwindow()->moveResizeForClient(x, y, width, height, win_gravity, winclient->old_bw); return true; } else if (ce.message_type == m_net->restack_window) { fbdbg << "Ewmh: restack window" << endl; if (winclient == 0 || winclient->fbwindow() == 0) return true; // ce.data.l[0] = source indication // ce.data.l[1] = sibling window // ce.data.l[2] = detail WinClient *above_win = Fluxbox::instance()->searchWindow(ce.data.l[1]); if (above_win == 0 || above_win->fbwindow() == 0 || above_win == winclient) // this would be very wrong :) return true; FbTk::LayerItem &below_item = winclient->fbwindow()->layerItem(); FbTk::LayerItem &above_item = above_win->fbwindow()->layerItem(); // this might break the transient_for layering // do restack if both items are on the same layer // else ignore restack if (&below_item.getLayer() == &above_item.getLayer()) below_item.getLayer().stackBelowItem(below_item, &above_item); return true; } else if (ce.message_type == m_net->request_frame_extents) { if (!screen) return true; FbTk::ThemeProxy &theme = screen->focusedWinFrameTheme(); unsigned int bw = theme->border().width(); long title_h = theme->titleHeight() ? theme->titleHeight() + 2*bw : theme->font().height() + 2*theme->bevelWidth() + 2 + 2*bw; long handle_h = theme->handleWidth() + 2*bw; long extents[4]; // our frames currently don't protrude from left/right extents[0] = bw; extents[1] = bw; extents[2] = title_h; extents[3] = handle_h; XChangeProperty(FbTk::App::instance()->display(), ce.window, m_net->frame_extents, XA_CARDINAL, 32, PropModeReplace, (unsigned char *)extents, 4); } else if (ce.message_type == m_net->wm_moveresize) { if (winclient == 0 || winclient->fbwindow() == 0) return true; // data.l[0] = x_root // data.l[1] = y_root // data.l[2] = direction // data.l[3] = button // data.l[4] = source indication switch (ce.data.l[2] ) { case _NET_WM_MOVERESIZE_SIZE_TOPLEFT: case _NET_WM_MOVERESIZE_SIZE_TOP: case _NET_WM_MOVERESIZE_SIZE_TOPRIGHT: case _NET_WM_MOVERESIZE_SIZE_RIGHT: case _NET_WM_MOVERESIZE_SIZE_BOTTOMRIGHT: case _NET_WM_MOVERESIZE_SIZE_BOTTOM: case _NET_WM_MOVERESIZE_SIZE_BOTTOMLEFT: case _NET_WM_MOVERESIZE_SIZE_LEFT: case _NET_WM_MOVERESIZE_SIZE_KEYBOARD: // startResizing uses relative coordinates winclient->fbwindow()->startResizing(ce.data.l[0] - winclient->fbwindow()->x() - winclient->fbwindow()->frame().window().borderWidth(), ce.data.l[1] - winclient->fbwindow()->y() - winclient->fbwindow()->frame().window().borderWidth(), static_cast(ce.data.l[2])); break; case _NET_WM_MOVERESIZE_MOVE: case _NET_WM_MOVERESIZE_MOVE_KEYBOARD: winclient->fbwindow()->startMoving(ce.data.l[0], ce.data.l[1]); break; case _NET_WM_MOVERESIZE_CANCEL: if (winclient->fbwindow()->isMoving()) winclient->fbwindow()->stopMoving(true); if (winclient->fbwindow()->isResizing()) winclient->fbwindow()->stopResizing(true); break; default: cerr << "Ewmh: Unknown move/resize direction: " << ce.data.l[2] << endl; break; } return true; } // we didn't handle the ce.message_type here return false; } bool Ewmh::propertyNotify(WinClient &winclient, Atom the_property) { if (the_property == m_net->wm_strut) { updateStrut(winclient); return true; } else if (the_property == m_net->wm_name) { FbTk::FbString newtitle = winclient.textProperty(the_property); if (!newtitle.empty()) winclient.setTitle(newtitle); if (winclient.fbwindow()) winclient.fbwindow()->titleSig().emit(newtitle, *winclient.fbwindow()); return true; } else if (the_property == m_net->wm_icon_name) { // we don't use icon title, since we don't show icons return true; } else if (the_property == m_net->wm_icon) { extractNetWmIcon(m_net->wm_icon, winclient); return true; } return false; } // wrapper for real setState, since most operations don't need the client void Ewmh::setState(FluxboxWindow &win, Atom state, bool value) { setState(win, state, value, win.winClient()); } // wrapper for real toggleState, since most operations don't need the client void Ewmh::toggleState(FluxboxWindow &win, Atom state) { toggleState(win, state, win.winClient()); } // set window state void Ewmh::setState(FluxboxWindow &win, Atom state, bool value, WinClient &client) { if (state == m_net->wm_state_sticky) { // STICKY if ((value && !win.isStuck()) || (!value && win.isStuck())) win.stick(); } else if (state == m_net->wm_state_shaded) { // SHADED if ((value && !win.isShaded()) || (!value && win.isShaded())) win.shade(); } else if (state == m_net->wm_state_maximized_horz ) { // maximized Horizontal if (value ^ win.isMaximizedHorz()) win.maximizeHorizontal(); } else if (state == m_net->wm_state_maximized_vert) { // maximized Vertical if (value ^ win.isMaximizedVert()) win.maximizeVertical(); } else if (state == m_net->wm_state_fullscreen) { // fullscreen if ((value && !win.isFullscreen()) || (!value && win.isFullscreen())) win.setFullscreen(value); } else if (state == m_net->wm_state_hidden) { // minimized if (value && !win.isIconic()) win.iconify(); else if (!value && win.isIconic()) win.deiconify(); } else if (state == m_net->wm_state_skip_taskbar) { // skip taskbar win.setIconHidden(value); } else if (state == m_net->wm_state_below) { // bottom layer if (value) win.moveToLayer(ResourceLayer::BOTTOM); else if (win.layerNum() > ResourceLayer::NORMAL) win.moveToLayer(ResourceLayer::NORMAL); } else if (state == m_net->wm_state_above) { // above layer if (value) win.moveToLayer(ResourceLayer::ABOVE_DOCK); else if (win.layerNum() < ResourceLayer::NORMAL) win.moveToLayer(ResourceLayer::NORMAL); } else if (state == m_net->wm_state_demands_attention) { if (value) { // if add attention Fluxbox::instance()->attentionHandler().addAttention(client); } else { // erase it Fluxbox::instance()->attentionHandler().removeWindow(client); } } else if (state == m_net->wm_state_modal) { client.setStateModal(value); } } // toggle window state void Ewmh::toggleState(FluxboxWindow &win, Atom state, WinClient &client) { if (state == m_net->wm_state_sticky) { // sticky win.stick(); } else if (state == m_net->wm_state_shaded){ // shaded win.shade(); } else if (state == m_net->wm_state_maximized_horz ) { // maximized Horizontal win.maximizeHorizontal(); } else if (state == m_net->wm_state_maximized_vert) { // maximized Vertical win.maximizeVertical(); } else if (state == m_net->wm_state_fullscreen) { // fullscreen win.setFullscreen(!win.isFullscreen()); // toggle current state } else if (state == m_net->wm_state_hidden) { // minimized if(win.isIconic()) win.deiconify(); else win.iconify(); } else if (state == m_net->wm_state_skip_taskbar) { // taskbar win.setIconHidden(!win.isIconHidden()); } else if (state == m_net->wm_state_below) { // bottom layer if (win.layerNum() == ResourceLayer::BOTTOM) win.moveToLayer(ResourceLayer::NORMAL); else win.moveToLayer(ResourceLayer::BOTTOM); } else if (state == m_net->wm_state_above) { // top layer if (win.layerNum() == ResourceLayer::ABOVE_DOCK) win.moveToLayer(ResourceLayer::NORMAL); else win.moveToLayer(ResourceLayer::ABOVE_DOCK); } else if (state == m_net->wm_state_modal) { // modal client.setStateModal(!client.isStateModal()); } } void Ewmh::updateStrut(WinClient &winclient) { Atom ret_type = 0; int fmt = 0; unsigned long nitems = 0, bytes_after = 0; long *data = 0; if (winclient.property(m_net->wm_strut, 0, 4, False, XA_CARDINAL, &ret_type, &fmt, &nitems, &bytes_after, (unsigned char **) &data) && data) { int head = winclient.screen().getHead(winclient); winclient.setStrut(winclient.screen().requestStrut(head, data[0], data[1], data[2], data[3])); winclient.screen().updateAvailableWorkspaceArea(); } } void Ewmh::updateActions(FluxboxWindow &win) { /* From Extended Window Manager Hints, draft 1.3: * * _NET_WM_ALLOWED_ACTIONS, ATOM[] * * A list of atoms indicating user operations that the * Window Manager supports for this window. Atoms present in the * list indicate allowed actions, atoms not present in the list * indicate actions that are not supported for this window. The * Window Manager MUST keep this property updated to reflect the * actions which are currently "active" or "sensitive" for a window. * Taskbars, Pagers, and other tools use _NET_WM_ALLOWED_ACTIONS to * decide which actions should be made available to the user. */ typedef vector ActionsVector; ActionsVector actions; actions.reserve(10); // all windows can change desktop, // be shaded or be sticky actions.push_back(m_net->wm_action_change_desktop); actions.push_back(m_net->wm_action_shade); actions.push_back(m_net->wm_action_stick); if (win.isResizable()) actions.push_back(m_net->wm_action_resize); if (win.isMoveable()) actions.push_back(m_net->wm_action_move); if (win.isClosable()) actions.push_back(m_net->wm_action_close); if (win.isIconifiable()) actions.push_back(m_net->wm_action_minimize); unsigned int max_width, max_height; win.getMaxSize(&max_width, &max_height); // if unlimited max width we can maximize horizontal if (max_width == 0) { actions.push_back(m_net->wm_action_maximize_horz); } // if unlimited max height we can maxmize vert if (max_height == 0) { actions.push_back(m_net->wm_action_maximize_vert); } // if we have unlimited size in all directions we can have this window // in fullscreen mode if (max_height == 0 && max_width == 0) { actions.push_back(m_net->wm_action_fullscreen); } FluxboxWindow::ClientList::iterator it = win.clientList().begin(); FluxboxWindow::ClientList::iterator it_end = win.clientList().end(); for (; it != it_end; ++it) { (*it)->changeProperty(m_net->wm_allowed_actions, XA_ATOM, 32, PropModeReplace, reinterpret_cast(&actions.front()), actions.size()); } } void Ewmh::setupState(FluxboxWindow &win) { /* From Extended Window Manager Hints, draft 1.3: * * _NET_WM_STATE, ATOM[] * * A list of hints describing the window state. Atoms present in * the list MUST be considered set, atoms not present in the list * MUST be considered not set. The Window Manager SHOULD honor * _NET_WM_STATE whenever a withdrawn window requests to be mapped. * A Client wishing to change the state of a window MUST send a * _NET_WM_STATE client message to the root window (see below). * The Window Manager MUST keep this property updated to reflect * the current state of the window. * * The Window Manager should remove the property whenever a window * is withdrawn, but it should leave the property in place when it * is shutting down, e.g. in response to losing ownership of the * WM_Sn manager selection. */ Atom ret_type; int fmt; unsigned long nitems, bytes_after; unsigned char *data = 0; win.winClient().property(m_net->wm_state, 0, 0x7fffffff, False, XA_ATOM, &ret_type, &fmt, &nitems, &bytes_after, &data); if (data) { Atom *states = (Atom *)data; for (unsigned long i=0; i < nitems; ++i) setState(win, states[i], true); XFree(data); } } void Ewmh::updateFrameExtents(FluxboxWindow &win) { /* Frame extents are basically the amount the window manager frame protrudes from the client window, on left, right, top, bottom (it is independent of window position). */ FluxboxWindow::ClientList::iterator it = win.clientList().begin(); FluxboxWindow::ClientList::iterator it_end = win.clientList().end(); for (; it != it_end; ++it) { long extents[4]; // our frames currently don't protrude from left/right int bw = win.frame().window().borderWidth(); extents[0] = bw; extents[1] = bw; extents[2] = win.frame().titlebarHeight() + bw; extents[3] = win.frame().handleHeight() + bw; (*it)->changeProperty(m_net->frame_extents, XA_CARDINAL, 32, PropModeReplace, (unsigned char *)extents, 4); } } fluxbox-1.3.5/src/PaxHeaders.25974/Ewmh.hh0000644000175000017500000000013212106662425016264 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.343812461 30 ctime=1360750008.651811615 fluxbox-1.3.5/src/Ewmh.hh0000644000175000017500000000570112106662425014316 0ustar00mgmg00000000000000// Ewmh.hh for fluxbox // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "AtomHandler.hh" #include "FbTk/FbString.hh" /// Implementes Extended Window Manager Hints ( http://www.freedesktop.org/Standards/wm-spec ) class Ewmh:public AtomHandler { public: Ewmh(); ~Ewmh(); void initForScreen(BScreen &screen); void setupFrame(FluxboxWindow &win); void setupClient(WinClient &winclient); void updateFocusedWindow(BScreen &screen, Window win); void updateClientList(BScreen &screen); void updateWorkspaceNames(BScreen &screen); void updateCurrentWorkspace(BScreen &screen); void updateWorkspaceCount(BScreen &screen); void updateViewPort(BScreen &screen); void updateGeometry(BScreen &screen); void updateWorkarea(BScreen &screen); void updateState(FluxboxWindow &win); void updateLayer(FluxboxWindow &win); void updateHints(FluxboxWindow &win); void updateWorkspace(FluxboxWindow &win); bool checkClientMessage(const XClientMessageEvent &ce, BScreen * screen, WinClient * const winclient); bool propertyNotify(WinClient &winclient, Atom the_property); void updateFrameClose(FluxboxWindow &win); void updateClientClose(WinClient &winclient); void updateFrameExtents(FluxboxWindow &win); private: enum { STATE_REMOVE = 0, STATE_ADD = 1, STATE_TOGGLE = 2}; void setState(FluxboxWindow &win, Atom state, bool value); void setState(FluxboxWindow &win, Atom state, bool value, WinClient &client); void toggleState(FluxboxWindow &win, Atom state); void toggleState(FluxboxWindow &win, Atom state, WinClient &client); void updateStrut(WinClient &winclient); void updateActions(FluxboxWindow &win); void setupState(FluxboxWindow &win); FbTk::FbString getUTF8Property(Atom property); class EwmhAtoms; EwmhAtoms* m_net; }; fluxbox-1.3.5/src/PaxHeaders.25974/Debug.hh0000644000175000017500000000013212106662425016412 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.343812461 30 ctime=1360750008.651811615 fluxbox-1.3.5/src/Debug.hh0000644000175000017500000000033712106662425014444 0ustar00mgmg00000000000000#ifndef DEBUG_HH #define DEBUG_HH #include "config.h" #include #ifdef DEBUG #define fbdbg std::cerr<<__FILE__<<"("<<__LINE__<< "): " #else #define fbdbg if (false) std::cerr #endif // DEBUG #endif // DEBUG_HH fluxbox-1.3.5/src/PaxHeaders.25974/RectangleUtil.hh0000644000175000017500000000013212106662425020126 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.339812461 30 ctime=1360750008.655811615 fluxbox-1.3.5/src/RectangleUtil.hh0000644000175000017500000000367712106662425016172 0ustar00mgmg00000000000000#ifndef RECTANGLEUTIL_HH #define RECTANGLEUTIL_HH namespace RectangleUtil { /* * Determines if a point is inside a rectangle-like objects border. * @param rect A rectangle-like object that has accessors for x, y, width, and * height. * @param x * @param y * @param border_width The size of the border. * @returns true if point is inside the rectangle-like object. */ template bool insideBorder(const RectangleLike& rect, int x, int y, int border_width) { return x >= rect.x() + border_width && x < rect.x() + (int)rect.width() + border_width && y >= rect.y() + border_width && y < rect.y() + (int)rect.height() + border_width; } /* * Determines if rectangle 'a' overlaps rectangle 'b' * @returns true if 'a' overlaps 'b' * * outside overlap situations * * a----a a----a a--------a b--------b * | | b----b | b-+--b | b----b | | a----a | * a----a | | a--+-a | | | | | | | | | * b----b b----b | b----b | | a----a | * a--------a b--------b * */ inline bool overlapRectangles( int ax, int ay, int awidth, int aheight, int bx, int by, int bwidth, int bheight) { bool do_not_overlap = ax > (bx + bwidth) || bx > (ax + awidth) || ay > (by + bheight) || by > (ay + aheight); return !do_not_overlap; } /* * Determines if rectangle 'a' overlaps rectangle 'b' * @param a - rectangle a * @param b - rectangle b * @returns true if 'a' overlaps 'b' */ template bool overlapRectangles(const RectangleLikeA& a, const RectangleLikeB& b) { return overlapRectangles( a.x(), a.y(), a.width(), a.height(), b.x(), b.y(), b.width(), b.height()); } } // namespace RectangleUtil #endif // RECTANGLEUTIL_HH fluxbox-1.3.5/src/PaxHeaders.25974/WindowMenuAccessor.hh0000644000175000017500000000013212106662425021143 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.339812461 30 ctime=1360750008.655811615 fluxbox-1.3.5/src/WindowMenuAccessor.hh0000644000175000017500000000510712106662425017175 0ustar00mgmg00000000000000// WindowMenuAccessor.hh // Copyright (c) 2008 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef WINDOW_MENU_ACCESSOR_HH #define WINDOW_MENU_ACCESSOR_HH #include "FbTk/Accessor.hh" #include "FbMenu.hh" /// accesses values in current window template class WindowMenuAccessor: public FbTk::Accessor { public: typedef Ret (FluxboxWindow:: *Getter)() const; typedef void (FluxboxWindow:: *Setter)(Ret); WindowMenuAccessor(Getter g, Setter s, Def def): m_getter(g), m_setter(s), m_def(def) { } operator Ret() const { FluxboxWindow *fbwin = FbMenu::window(); if (fbwin) return (Ret)(fbwin->*m_getter)(); return m_def; } FbTk::Accessor &operator =(const Ret &val) { FluxboxWindow *fbwin = FbMenu::window(); if (fbwin) (fbwin->*m_setter)(val); return *this; } private: Getter m_getter; Setter m_setter; Def m_def; }; /// same as above but only reads template class ConstWindowMenuAccessor: public FbTk::Accessor { public: typedef Ret (FluxboxWindow:: *Getter)() const; ConstWindowMenuAccessor(Getter g, Def def): m_getter(g), m_def(def) { } operator Ret() const { FluxboxWindow *fbwin = FbMenu::window(); return fbwin ? (fbwin->*m_getter)() : m_def; } FbTk::Accessor &operator =(const Ret &val) { return *this; } private: Getter m_getter; Def m_def; }; #endif // WINDOW_MENU_ACCESSOR_HH fluxbox-1.3.5/src/PaxHeaders.25974/FocusableTheme.hh0000644000175000017500000000013212106662425020252 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.339812461 30 ctime=1360750008.655811615 fluxbox-1.3.5/src/FocusableTheme.hh0000644000175000017500000000610012106662425016276 0ustar00mgmg00000000000000// FocusableTheme.hh // Copyright (c) 2008 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FOCUSABLETHEME_HH #define FOCUSABLETHEME_HH #include "Focusable.hh" #include "FbTk/MemFun.hh" #include "FbTk/Theme.hh" template class FocusableTheme: public FbTk::ThemeProxy { public: FocusableTheme(Focusable &win, FbTk::ThemeProxy &focused, FbTk::ThemeProxy &unfocused): m_win(win), m_focused_theme(focused), m_unfocused_theme(unfocused) { m_signals.join(m_win.focusSig(), FbTk::MemFunIgnoreArgs(m_reconfig_sig, &FbTk::Signal<>::emit)); m_signals.join(m_win.attentionSig(), FbTk::MemFunIgnoreArgs(m_reconfig_sig, &FbTk::Signal<>::emit)); m_signals.join(m_focused_theme.reconfigSig(), FbTk::MemFun(m_reconfig_sig, &FbTk::Signal<>::emit)); m_signals.join(m_unfocused_theme.reconfigSig(), FbTk::MemFun(m_reconfig_sig, &FbTk::Signal<>::emit)); } Focusable &win() { return m_win; } const Focusable &win() const { return m_win; } FbTk::ThemeProxy &focusedTheme() { return m_focused_theme; } const FbTk::ThemeProxy &focusedTheme() const { return m_focused_theme; } FbTk::ThemeProxy &unfocusedTheme() { return m_unfocused_theme; } const FbTk::ThemeProxy &unfocusedTheme() const { return m_unfocused_theme; } FbTk::Signal<> &reconfigSig() { return m_reconfig_sig; } virtual BaseTheme &operator *() { return (m_win.isFocused() || m_win.getAttentionState()) ? *m_focused_theme : *m_unfocused_theme; } virtual const BaseTheme &operator *() const { return (m_win.isFocused() || m_win.getAttentionState()) ? *m_focused_theme : *m_unfocused_theme; } private: Focusable &m_win; FbTk::ThemeProxy &m_focused_theme, &m_unfocused_theme; FbTk::Signal<> m_reconfig_sig; FbTk::SignalTracker m_signals; }; #endif // FOCUSABLETHEME_HH fluxbox-1.3.5/src/PaxHeaders.25974/FocusableList.cc0000644000175000017500000000013212106662425020111 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.335812461 30 ctime=1360750008.655811615 fluxbox-1.3.5/src/FocusableList.cc0000644000175000017500000002250612106662425016145 0ustar00mgmg00000000000000// FocusableList.cc // Copyright (c) 2007 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "FocusableList.hh" #include "Focusable.hh" #include "FocusControl.hh" #include "Screen.hh" #include "WinClient.hh" #include "Window.hh" #include "FbTk/StringUtil.hh" #include "FbTk/MemFun.hh" #include #include #ifdef HAVE_CSTRING #include #else #include #endif using std::string; using std::vector; void FocusableList::parseArgs(const string &in, int &opts, string &pat) { string options; int err = FbTk::StringUtil::getStringBetween(options, in.c_str(), '{', '}', " \t\n"); // the rest of the string is a ClientPattern pat = in.c_str() + (err > 0 ? err : 0); // now parse the options vector args; FbTk::StringUtil::stringtok(args, options); vector::iterator it = args.begin(), it_end = args.end(); opts = 0; for (; it != it_end; ++it) { if (strcasecmp((*it).c_str(), "static") == 0) opts |= STATIC_ORDER; else if (strcasecmp((*it).c_str(), "groups") == 0) opts |= LIST_GROUPS; } } const FocusableList *FocusableList::getListFromOptions(BScreen &scr, int opts) { if (opts & LIST_GROUPS) return (opts & STATIC_ORDER) ? &scr.focusControl().creationOrderWinList() : &scr.focusControl().focusedOrderWinList(); return (opts & STATIC_ORDER) ? &scr.focusControl().creationOrderList() : &scr.focusControl().focusedOrderList(); } FocusableList::FocusableList(BScreen &scr, const string & pat): m_pat(0), m_parent(0), m_screen(scr) { int options = 0; string pattern; parseArgs(pat, options, pattern); m_parent = getListFromOptions(scr, options); m_pat.reset(new ClientPattern(pattern.c_str())); init(); } FocusableList::FocusableList(BScreen &scr, const FocusableList &parent, const string & pat): m_pat(new ClientPattern(pat.c_str())), m_parent(&parent), m_screen(scr) { init(); } void FocusableList::init() { addMatching(); join(m_parent->addSig(), FbTk::MemFun(*this, &FocusableList::parentWindowAdded)); join(m_parent->orderSig(), FbTk::MemFun(*this, &FocusableList::parentOrderChanged)); join(m_parent->removeSig(), FbTk::MemFun(*this, &FocusableList::parentWindowRemoved)); join(m_parent->resetSig(), FbTk::MemFun(*this, &FocusableList::reset)); // TODO: can't handle (head=[mouse]) yet if (m_pat->dependsOnCurrentWorkspace()) { join(m_screen.currentWorkspaceSig(), FbTk::MemFun(*this, &FocusableList::workspaceChanged)); } if (m_pat->dependsOnFocusedWindow()) { join(m_screen.focusedWindowSig(), FbTk::MemFun(*this, &FocusableList::focusedWindowChanged)); } } void FocusableList::windowUpdated(FluxboxWindow &fbwin) { if (m_screen.isShuttingdown()) return; // we only bind these for matching patterns, so skip finding out signal if (m_parent->contains(fbwin)) checkUpdate(fbwin); const std::list &list = fbwin.clientList(); std::list::const_iterator it = list.begin(), it_end = list.end(); for (; it != it_end; ++it) { if (m_parent->contains(**it)) checkUpdate(**it); } } void FocusableList::parentOrderChanged(Focusable *win) { if(!m_screen.isShuttingdown() && contains(*win)) { if(insertFromParent(*win)) m_ordersig.emit(win); } } void FocusableList::parentWindowAdded(Focusable *win) { if(!m_screen.isShuttingdown()) { attachSignals(*win); if (m_pat->match(*win)) { insertFromParent(*win); m_addsig.emit(win); } } } void FocusableList::parentWindowRemoved(Focusable *win) { if(!m_screen.isShuttingdown()) remove(*win); } void FocusableList::checkUpdate(Focusable &win) { if (contains(win)) { if (!m_pat->match(win)) { m_list.remove(&win); m_pat->removeMatch(); m_removesig.emit(&win); } } else if (m_pat->match(win)) { insertFromParent(win); m_pat->addMatch(); m_addsig.emit(&win); } } // returns whether or not the window was moved bool FocusableList::insertFromParent(Focusable &win) { const Focusables list = m_parent->clientList(); Focusables::const_iterator p_it = list.begin(), p_it_end = list.end(); Focusables::iterator our_it = m_list.begin(), our_it_end = m_list.end(); // walk through our list looking for corresponding entries in // parent's list, until we find the window that moved for (; our_it != our_it_end && p_it != p_it_end; ++p_it) { if (*p_it == &win) { if (*our_it == &win) // win didn't move in our list return false; m_list.remove(&win); m_list.insert(our_it, &win); return true; } if (*p_it == *our_it) ++our_it; } m_list.remove(&win); m_list.push_back(&win); return true; } void FocusableList::addMatching() { if (!m_parent) return; const Focusables list = m_parent->clientList(); Focusables::const_iterator it = list.begin(), it_end = list.end(); for (; it != it_end; ++it) { if (m_pat->match(**it)) { m_list.push_back(*it); m_pat->addMatch(); } attachSignals(**it); } } void FocusableList::pushFront(Focusable &win) { m_list.push_front(&win); attachSignals(win); m_addsig.emit(&win); } void FocusableList::pushBack(Focusable &win) { m_list.push_back(&win); attachSignals(win); m_addsig.emit(&win); } void FocusableList::moveToFront(Focusable &win) { // if the window isn't already in this list, we could accidentally add it if (!contains(win)) return; m_list.remove(&win); m_list.push_front(&win); m_ordersig.emit(&win); } void FocusableList::moveToBack(Focusable &win) { // if the window isn't already in this list, we could accidentally add it if (!contains(win)) return; m_list.remove(&win); m_list.push_back(&win); m_ordersig.emit(&win); } void FocusableList::remove(Focusable &win) { // if the window isn't already in this list, we could send a bad signal bool contained = contains(win); m_signal_map.erase(&win); if (!contained) { return; } m_list.remove(&win); m_removesig.emit(&win); } void FocusableList::updateTitle(Focusable& win) { checkUpdate(win); } #include "Debug.hh" void FocusableList::attachSignals(Focusable &win) { if (m_parent == NULL) return; FluxboxWindow *fbwin = win.fbwindow(); // attach various signals for matching FbTk::RefCount &tracker = m_signal_map[&win]; if (! tracker) { // we have not attached to this window yet tracker.reset(new SignalTracker); tracker->join(win.titleSig(), MemFunSelectArg1(*this, &FocusableList::updateTitle)); tracker->join(win.dieSig(), MemFun(*this, &FocusableList::remove)); if(fbwin) { tracker->join(fbwin->workspaceSig(), MemFun(*this, &FocusableList::windowUpdated)); tracker->join(fbwin->stateSig(), MemFun(*this, &FocusableList::windowUpdated)); tracker->join(fbwin->layerSig(), MemFun(*this, &FocusableList::windowUpdated)); // TODO: can't watch (head=...) yet } } } void FocusableList::reset() { m_signal_map.clear(); m_list.clear(); m_pat->resetMatches(); if (m_parent) addMatching(); m_resetsig.emit(); } bool FocusableList::contains(const Focusable &win) const { Focusables::const_iterator it = m_list.begin(), it_end = m_list.end(); it = std::find(it, it_end, &win); return (it != it_end); } Focusable *FocusableList::find(const ClientPattern &pat) const { Focusables::const_iterator it = m_list.begin(), it_end = m_list.end(); for (; it != it_end; ++it) { if (pat.match(**it)) return *it; } return 0; } void FocusableList::workspaceChanged(BScreen &screen) { reset(); } void FocusableList::focusedWindowChanged(BScreen &screen, FluxboxWindow *focused_win, WinClient *client) { reset(); } fluxbox-1.3.5/src/PaxHeaders.25974/FocusableList.hh0000644000175000017500000000013212106662425020123 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.335812461 30 ctime=1360750008.659811615 fluxbox-1.3.5/src/FocusableList.hh0000644000175000017500000001020612106662425016151 0ustar00mgmg00000000000000// FocusableList.hh // Copyright (c) 2007 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FOCUSABLELIST_HH #define FOCUSABLELIST_HH #include "FbTk/NotCopyable.hh" #include "FbTk/RefCount.hh" #include "FbTk/Signal.hh" #include "ClientPattern.hh" #include #include #include class BScreen; class Focusable; class WinClient; class FluxboxWindow; class FocusableList: private FbTk::NotCopyable, private FbTk::SignalTracker { public: typedef std::list Focusables; /// list option bits enum { LIST_GROUPS = 0x01, //< list groups instead of clients STATIC_ORDER = 0x02 ///< use creation order instead of focused order }; FocusableList(BScreen &scr): m_pat(0), m_parent(0), m_screen(scr) { } FocusableList(BScreen &scr, const std::string & pat); FocusableList(BScreen &scr, const FocusableList &parent, const std::string & pat); static void parseArgs(const std::string &in, int &opts, std::string &out); static const FocusableList *getListFromOptions(BScreen &scr, int opts); /// functions for modifying the list contents void pushFront(Focusable &win); void pushBack(Focusable &win); void moveToFront(Focusable &win); void moveToBack(Focusable &win); void remove(Focusable &win); /// accessor for list Focusables &clientList() { return m_list; } const Focusables &clientList() const { return m_list; } /// does the list contain any windows? bool empty() const { return m_list.empty(); } /// does the list contain the given window? bool contains(const Focusable &win) const; /// find the first window matching the pattern Focusable *find(const ClientPattern &pattern) const; /** @name signals @{ */ const FbTk::Signal &orderSig() const { return m_ordersig; } const FbTk::Signal &addSig() const { return m_addsig; } const FbTk::Signal &removeSig() const { return m_removesig; } const FbTk::Signal<> &resetSig() const { return m_resetsig; } /** @} */ // end group signals private: void init(); void addMatching(); void checkUpdate(Focusable &win); bool insertFromParent(Focusable &win); void attachSignals(Focusable &win); void reset(); void workspaceChanged(BScreen &screen); void focusedWindowChanged(BScreen &screen, FluxboxWindow *win, WinClient *client); /// Title has changed for a window /// @param win The window that title changed for. void updateTitle(Focusable& win); void parentOrderChanged(Focusable* win); void parentWindowAdded(Focusable* win); void parentWindowRemoved(Focusable* win); void windowUpdated(FluxboxWindow &fbwin); std::auto_ptr m_pat; const FocusableList *m_parent; BScreen &m_screen; std::list m_list; FbTk::Signal m_ordersig, m_addsig, m_removesig; FbTk::Signal<> m_resetsig; typedef std::map > SignalMap; SignalMap m_signal_map; }; #endif // FOCUSABLELIST_HH fluxbox-1.3.5/src/PaxHeaders.25974/Focusable.hh0000644000175000017500000000013212106662425017267 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.331812461 30 ctime=1360750008.659811615 fluxbox-1.3.5/src/Focusable.hh0000644000175000017500000001262712106662425015326 0ustar00mgmg00000000000000// Focusable.hh // Copyright (c) 2007 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FOCUSABLE_HH #define FOCUSABLE_HH #include "FbTk/PixmapWithMask.hh" #include "FbTk/ITypeAheadable.hh" #include "FbTk/Signal.hh" #include "FbTk/FbString.hh" class BScreen; class FluxboxWindow; /** * A Base class for any object that might be "focused". * Such as FluxboxWindow, Menu etc */ class Focusable: public FbTk::ITypeAheadable { public: Focusable(BScreen &scr, FluxboxWindow *fbwin = 0): m_screen(scr), m_fbwin(fbwin), m_instance_name("fluxbox"), m_class_name("fluxbox"), m_focused(false), m_attention_state(false), m_attentionsig(), m_focussig(), m_diesig(), m_titlesig() { } virtual ~Focusable() { } /** * Take focus. * @return true if the focuable took focus */ virtual bool focus() { return false; } /// @return true if the focusable has input focus virtual bool isFocused() const { return m_focused; } /// @return true if it can be focused virtual bool acceptsFocus() const { return true; } /// @return true if temporarily prevented from being focused virtual bool isModal() const { return false; } /// @return true if icon button should appear focused bool getAttentionState() const { return m_attention_state; } /// @set the attention state virtual void setAttentionState(bool value) { m_attention_state = value; attentionSig().emit(*this); } /// @return the screen in which this object resides BScreen &screen() { return m_screen; } /// @return the screen in which this object resides const BScreen &screen() const { return m_screen; } /** * For accessing window properties, like shaded, minimized, etc. * @return window context */ const FluxboxWindow *fbwindow() const { return m_fbwin; } /** * For accessing window properties, like shaded, minimized, etc. * @return window context */ FluxboxWindow *fbwindow() { return m_fbwin; } /// @return WM_CLASS class string (for pattern matching) virtual const FbTk::FbString &getWMClassClass() const { return m_class_name; } /// @return WM_CLASS name string (for pattern matching) virtual const FbTk::FbString &getWMClassName() const { return m_instance_name; } /// @return wm role string (for pattern matching) virtual std::string getWMRole() const { return "Focusable"; } virtual FbTk::FbString getTextProperty(Atom prop,bool*exists=NULL) const { return ""; } virtual long getCardinalProperty(Atom prop,bool*exists=NULL) const { return 0; } /// @return whether this window is a transient (for pattern matching) virtual bool isTransient() const { return false; } // so we can make nice buttons, menu entries, etc. /// @return icon pixmap of the focusable virtual const FbTk::PixmapWithMask &icon() const { return m_icon; } /// @return title string virtual const FbTk::BiDiString &title() const { return m_title; } /// @return type ahead string const std::string &iTypeString() const { return title().logical(); } /** @name signals @{ */ typedef FbTk::Signal TitleSignal; /// Used for both title and icon changes. TitleSignal &titleSig() { return m_titlesig; } /// Used for both title and icon changes. const TitleSignal &titleSig() const { return m_titlesig; } FbTk::Signal &focusSig() { return m_focussig; } FbTk::Signal &dieSig() { return m_diesig; } FbTk::Signal &attentionSig() { return m_attentionsig; } /** @} */ // end group signals /// Notify any listeners that the focus changed for this window. void notifyFocusChanged() { m_focussig.emit(*this); } protected: BScreen &m_screen; //< the screen in which it works FluxboxWindow *m_fbwin; //< the working fluxbox window FbTk::BiDiString m_title; FbTk::FbString m_instance_name; FbTk::FbString m_class_name; bool m_focused; //< whether or not it has focus bool m_attention_state; //< state of icon button while demanding attention FbTk::PixmapWithMask m_icon; //< icon pixmap with mask private: FbTk::Signal m_attentionsig; FbTk::Signal m_focussig; FbTk::Signal m_diesig; TitleSignal m_titlesig; }; #endif // FOCUSABLE_HH fluxbox-1.3.5/src/PaxHeaders.25974/IconbarTheme.cc0000644000175000017500000000013212106662425017712 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.331812461 30 ctime=1360750008.659811615 fluxbox-1.3.5/src/IconbarTheme.cc0000644000175000017500000000716012106662425015745 0ustar00mgmg00000000000000// IconbarTheme.cc // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "IconbarTheme.hh" #include "FbTk/App.hh" IconbarTheme::IconbarTheme(int screen_num, const std::string &name, const std::string &altname): FbTk::Theme(screen_num), m_texture(*this, name, altname), m_empty_texture(*this, name + ".empty", altname + ".Empty"), m_border(*this, name, altname), m_text(*this, name, altname), m_name(name), m_altname(altname) { FbTk::ThemeManager::instance().loadTheme(*this); } IconbarTheme::~IconbarTheme() { } void IconbarTheme::reconfigTheme() { m_text.updateTextColor(); } // fallback resources bool IconbarTheme::fallback(FbTk::ThemeItem_base &item) { using namespace FbTk; ThemeManager &tm = ThemeManager::instance(); std::string base = m_name; base.erase(base.find_last_of(".")); std::string altbase = m_altname; altbase.erase(altbase.find_last_of(".")); if (&m_texture == &item) { return tm.loadItem(item, "toolbar.windowLabel", "toolbar.windowLabel"); } else if (&m_empty_texture == &item) { return (tm.loadItem(item, "toolbar.iconbar.empty", "Toolbar.Iconbar.Empty") || tm.loadItem(item, m_texture.name(), m_texture.altName()) || tm.loadItem(item, "toolbar.windowLabel", "toolbar.windowLabel") || tm.loadItem(item, "toolbar", "toolbar")); } else if (item.name() == m_name + ".borderWidth") // don't fallback for base border, for theme backwards compatibility return (tm.loadItem(item, base + ".borderWidth", altbase + ".BorderWidth") || tm.loadItem(item, "window.borderWidth", "Window.BorderWidth") || tm.loadItem(item, "borderWidth", "BorderWidth")); else if (item.name() == m_name + ".borderColor") return (tm.loadItem(item, base + ".borderColor", altbase + ".BorderColor") || tm.loadItem(item, "window.borderColor", "Window.BorderColor") || tm.loadItem(item, "borderColor", "BorderColor")); else if (item.name() == m_name + ".font") return tm.loadItem(item, "window.font", "Window.Font"); else if (item.name() == m_name + ".justify") { return (tm.loadItem(item, base + ".justify", altbase + ".Justify") || tm.loadItem(item, "window.justify", "Window.Justify")); } return false; } fluxbox-1.3.5/src/PaxHeaders.25974/IconbarTheme.hh0000644000175000017500000000013212106662425017724 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.331812461 30 ctime=1360750008.659811615 fluxbox-1.3.5/src/IconbarTheme.hh0000644000175000017500000000444712106662425015764 0ustar00mgmg00000000000000// IconbarTheme.hh // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef ICONBARTHEME_HH #define ICONBARTHEME_HH #include "FbTk/Theme.hh" #include "FbTk/BorderTheme.hh" #include "FbTk/Texture.hh" #include "FbTk/TextTheme.hh" class IconbarTheme: public FbTk::Theme, public FbTk::ThemeProxy { public: IconbarTheme(int screen_num, const std::string &name, const std::string &altname); virtual ~IconbarTheme(); void reconfigTheme(); bool fallback(FbTk::ThemeItem_base &item); FbTk::TextTheme &text() { return m_text; } const FbTk::BorderTheme &border() const { return m_border; } const FbTk::Texture &texture() const { return *m_texture; } const FbTk::Texture &emptyTexture() const { return *m_empty_texture; } virtual FbTk::Signal<> &reconfigSig() { return FbTk::Theme::reconfigSig(); } virtual IconbarTheme &operator *() { return *this; } virtual const IconbarTheme &operator *() const { return *this; } private: FbTk::ThemeItem m_texture, m_empty_texture; FbTk::BorderTheme m_border; FbTk::TextTheme m_text; std::string m_name, m_altname; }; #endif // ICONBARTHEME_HH fluxbox-1.3.5/src/PaxHeaders.25974/IconButton.cc0000644000175000017500000000013212106662425017436 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.327812462 30 ctime=1360750008.659811615 fluxbox-1.3.5/src/IconButton.cc0000644000175000017500000002063712106662425015475 0ustar00mgmg00000000000000// IconButton.cc // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "IconButton.hh" #include "IconbarTool.hh" #include "IconbarTheme.hh" #include "Screen.hh" #include "FbTk/App.hh" #include "FbTk/Command.hh" #include "FbTk/EventManager.hh" #include "FbTk/ImageControl.hh" #include "FbTk/TextUtils.hh" #ifdef HAVE_CONFIG_H #include "config.h" #endif // HAVE_CONFIG_H #include #ifdef SHAPE #include #endif // SHAPE IconButton::IconButton(const FbTk::FbWindow &parent, FbTk::ThemeProxy &focused_theme, FbTk::ThemeProxy &unfocused_theme, Focusable &win): FbTk::TextButton(parent, focused_theme->text().font(), win.title()), m_win(win), m_icon_window(*this, 1, 1, 1, 1, ExposureMask |EnterWindowMask | LeaveWindowMask | ButtonPressMask | ButtonReleaseMask), m_use_pixmap(true), m_has_tooltip(false), m_theme(win, focused_theme, unfocused_theme), m_pm(win.screen().imageControl()) { m_signals.join(m_win.titleSig(), MemFunIgnoreArgs(*this, &IconButton::clientTitleChanged)); m_signals.join(m_win.focusSig(), MemFunIgnoreArgs(*this, &IconButton::reconfigAndClear)); m_signals.join(m_win.attentionSig(), MemFunIgnoreArgs(*this, &IconButton::reconfigAndClear)); FbTk::EventManager::instance()->add(*this, m_icon_window); reconfigTheme(); refreshEverything(false); } IconButton::~IconButton() { // ~FbWindow cleans event manager if (m_has_tooltip) m_win.screen().hideTooltip(); } void IconButton::exposeEvent(XExposeEvent &event) { if (m_icon_window == event.window) m_icon_window.clear(); else FbTk::TextButton::exposeEvent(event); } void IconButton::enterNotifyEvent(XCrossingEvent &ev) { m_has_tooltip = true; showTooltip(); } void IconButton::leaveNotifyEvent(XCrossingEvent &ev) { m_has_tooltip = false; m_win.screen().hideTooltip(); } void IconButton::moveResize(int x, int y, unsigned int width, unsigned int height) { FbTk::TextButton::moveResize(x, y, width, height); if (m_icon_window.width() != FbTk::Button::width() || m_icon_window.height() != FbTk::Button::height()) { reconfigTheme(); refreshEverything(false); // update icon window } } void IconButton::resize(unsigned int width, unsigned int height) { FbTk::TextButton::resize(width, height); if (m_icon_window.width() != FbTk::Button::width() || m_icon_window.height() != FbTk::Button::height()) { reconfigTheme(); refreshEverything(false); // update icon window } } void IconButton::showTooltip() { int xoffset = 1; if (m_icon_pixmap.drawable() != 0) xoffset = m_icon_window.x() + m_icon_window.width() + 1; if (FbTk::TextButton::textExceeds(xoffset)) m_win.screen().showTooltip(m_win.title()); else m_win.screen().hideTooltip(); } void IconButton::clear() { setupWindow(); } void IconButton::clearArea(int x, int y, unsigned int width, unsigned int height, bool exposure) { FbTk::TextButton::clearArea(x, y, width, height, exposure); } void IconButton::setPixmap(bool use) { if (m_use_pixmap != use) { m_use_pixmap = use; refreshEverything(false); } } void IconButton::reconfigTheme() { if (m_theme->texture().usePixmap()) m_pm.reset(m_win.screen().imageControl().renderImage( width(), height(), m_theme->texture(), orientation())); else m_pm.reset(0); setAlpha(parent()->alpha()); if (m_pm != 0) setBackgroundPixmap(m_pm); else setBackgroundColor(m_theme->texture().color()); setGC(m_theme->text().textGC()); setFont(m_theme->text().font()); setJustify(m_theme->text().justify()); setBorderWidth(m_theme->border().width()); setBorderColor(m_theme->border().color()); updateBackground(false); } void IconButton::reconfigAndClear() { reconfigTheme(); clear(); } void IconButton::refreshEverything(bool setup) { Display *display = FbTk::App::instance()->display(); int screen = m_win.screen().screenNumber(); if (m_use_pixmap && m_win.icon().pixmap().drawable() != None) { // setup icon window m_icon_window.show(); unsigned int w = width(); unsigned int h = height(); FbTk::translateSize(orientation(), w, h); int iconx = 1; int icony = 1; unsigned int neww; unsigned int newh = h; if (newh > 2*static_cast(icony)) newh -= 2*icony; else newh = 1; neww = newh; FbTk::translateCoords(orientation(), iconx, icony, w, h); FbTk::translatePosition(orientation(), iconx, icony, neww, newh, 0); m_icon_window.moveResize(iconx, icony, neww, newh); m_icon_pixmap.copy(m_win.icon().pixmap().drawable(), DefaultDepth(display, screen), screen); m_icon_pixmap.scale(m_icon_window.width(), m_icon_window.height()); // rotate the icon or not?? lets go not for now, and see what they say... // need to rotate mask too if we do do this m_icon_pixmap.rotate(orientation()); m_icon_window.setBackgroundPixmap(m_icon_pixmap.drawable()); } else { // no icon pixmap m_icon_window.move(0, 0); m_icon_window.hide(); m_icon_pixmap = 0; } if(m_icon_pixmap.drawable() && m_win.icon().mask().drawable() != None) { m_icon_mask.copy(m_win.icon().mask().drawable(), 0, 0); m_icon_mask.scale(m_icon_pixmap.width(), m_icon_pixmap.height()); m_icon_mask.rotate(orientation()); } else m_icon_mask = 0; #ifdef SHAPE XShapeCombineMask(display, m_icon_window.drawable(), ShapeBounding, 0, 0, m_icon_mask.drawable(), ShapeSet); #endif // SHAPE if (setup) { setupWindow(); } else { m_icon_window.clear(); } } void IconButton::clientTitleChanged() { refreshEverything(true); if (m_has_tooltip) showTooltip(); } void IconButton::setupWindow() { m_icon_window.clear(); setText(m_win.title()); FbTk::TextButton::clear(); } void IconButton::drawText(int x, int y, FbTk::FbDrawable *drawable) { // offset text if (m_icon_pixmap.drawable() != 0) FbTk::TextButton::drawText(m_icon_window.x() + m_icon_window.width() + 1, y, drawable); else FbTk::TextButton::drawText(1, y, drawable); } bool IconButton::setOrientation(FbTk::Orientation orient) { if (orientation() == orient) return true; if (FbTk::TextButton::setOrientation(orient)) { int iconx = 1, icony = 1; unsigned int tmpw = width(), tmph = height(); FbTk::translateSize(orient, tmpw, tmph); FbTk::translateCoords(orient, iconx, icony, tmpw, tmph); FbTk::translatePosition(orient, iconx, icony, m_icon_window.width(), m_icon_window.height(), 0); m_icon_window.move(iconx, icony); return true; } else { return false; } } fluxbox-1.3.5/src/PaxHeaders.25974/IconButton.hh0000644000175000017500000000013212106662425017450 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.327812462 30 ctime=1360750008.663811615 fluxbox-1.3.5/src/IconButton.hh0000644000175000017500000000625012106662425015502 0ustar00mgmg00000000000000// IconButton.hh // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef ICONBUTTON_HH #define ICONBUTTON_HH #include "FocusableTheme.hh" #include "FbTk/CachedPixmap.hh" #include "FbTk/FbPixmap.hh" #include "FbTk/TextButton.hh" #include "FbTk/Signal.hh" class IconbarTheme; namespace FbTk { template class ThemeProxy; } class IconButton: public FbTk::TextButton { public: IconButton(const FbTk::FbWindow &parent, FbTk::ThemeProxy &focused_theme, FbTk::ThemeProxy &unfocused_theme, Focusable &window); virtual ~IconButton(); void exposeEvent(XExposeEvent &event); void enterNotifyEvent(XCrossingEvent &ce); void leaveNotifyEvent(XCrossingEvent &ce); void clear(); void clearArea(int x, int y, unsigned int width, unsigned int height, bool exposure = false); void moveResize(int x, int y, unsigned int width, unsigned int height); void resize(unsigned int width, unsigned int height); void reconfigTheme(); void setPixmap(bool use); Focusable &win() { return m_win; } const Focusable &win() const { return m_win; } bool setOrientation(FbTk::Orientation orient); protected: void drawText(int x, int y, FbTk::FbDrawable *drawable_override); private: void reconfigAndClear(); void setupWindow(); void showTooltip(); /// Refresh all pixmaps and windows /// @param setup Wether to setup window again. void refreshEverything(bool setup); /// Called when client title changed. void clientTitleChanged(); Focusable &m_win; FbTk::FbWindow m_icon_window; FbTk::FbPixmap m_icon_pixmap; FbTk::FbPixmap m_icon_mask; bool m_use_pixmap; /// whether or not this instance has the tooltip attention /// i.e if it got enter notify bool m_has_tooltip; FocusableTheme m_theme; // cached pixmaps FbTk::CachedPixmap m_pm; FbTk::SignalTracker m_signals; }; #endif // ICONBUTTON_HH fluxbox-1.3.5/src/PaxHeaders.25974/AttentionNoticeHandler.cc0000644000175000017500000000013212106662425021757 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.323812462 30 ctime=1360750008.663811615 fluxbox-1.3.5/src/AttentionNoticeHandler.cc0000644000175000017500000001040412106662425020005 0ustar00mgmg00000000000000// AttentionNoticeHandler.cc for fluxbox // Copyright (c) 2006 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "AttentionNoticeHandler.hh" #include "Window.hh" #include "Screen.hh" #include "FbTk/STLUtil.hh" #include "FbTk/Timer.hh" #include "FbTk/Resource.hh" #include "FbTk/MemFun.hh" namespace { class ToggleFrameFocusCmd: public FbTk::Command { public: ToggleFrameFocusCmd(Focusable &client): m_client(client), m_state(false) {} void execute() { m_state ^= true; m_client.setAttentionState(m_state); } private: Focusable &m_client; bool m_state; }; } // end anonymous namespace AttentionNoticeHandler::~AttentionNoticeHandler() { FbTk::STLUtil::destroyAndClearSecond(m_attentions); } void AttentionNoticeHandler::addAttention(Focusable &client) { // no need to add already active client if (client.isFocused()) return; // Already have a notice for it? NoticeMap::iterator it = m_attentions.find(&client); if (it != m_attentions.end()) { return; } using namespace FbTk; ResourceManager &res = client.screen().resourceManager(); std::string res_name = client.screen().name() + ".demandsAttentionTimeout"; std::string res_alt_name = client.screen().name() + ".DemandsAttentionTimeout"; Resource *timeout_res = dynamic_cast* >(res.findResource(res_name)); if (timeout_res == 0) { // no resource, create one and add it to managed resources timeout_res = new FbTk::Resource(res, 500, res_name, res_alt_name); client.screen().addManagedResource(timeout_res); } // disable if timeout is zero if (**timeout_res == 0) return; // setup timer RefCount > cmd(new ToggleFrameFocusCmd(client)); Timer *timer = new Timer(); timer->setCommand(cmd); timer->setTimeout(**timeout_res * FbTk::FbTime::IN_MILLISECONDS); timer->fireOnce(false); // will repeat until window has focus timer->start(); m_attentions[&client] = timer; // attach signals that will make notice go away join(client.dieSig(), MemFun(*this, &AttentionNoticeHandler::removeWindow)); join(client.focusSig(), MemFun(*this, &AttentionNoticeHandler::windowFocusChanged)); // update _NET_WM_STATE atom if (client.fbwindow()) client.fbwindow()->stateSig().emit(*client.fbwindow()); } void AttentionNoticeHandler::windowFocusChanged(Focusable& win) { updateWindow(win, false); } void AttentionNoticeHandler::removeWindow(Focusable& win) { updateWindow(win, true); } void AttentionNoticeHandler::updateWindow(Focusable& win, bool died) { // all signals results in destruction of the notice delete m_attentions[&win]; m_attentions.erase(&win); win.setAttentionState(false); // update _NET_WM_STATE atom if the window is not dead FluxboxWindow *fbwin = win.fbwindow(); if (fbwin && ! died) fbwin->stateSig().emit(*fbwin); } bool AttentionNoticeHandler::isDemandingAttention(const Focusable &client) { NoticeMap::iterator it = m_attentions.begin(), it_end = m_attentions.end(); for (; it != it_end; ++it) { if (it->first == &client) return true; } return false; } fluxbox-1.3.5/src/PaxHeaders.25974/AttentionNoticeHandler.hh0000644000175000017500000000013212106662425021771 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.323812462 30 ctime=1360750008.663811615 fluxbox-1.3.5/src/AttentionNoticeHandler.hh0000644000175000017500000000420112106662425020015 0ustar00mgmg00000000000000// AttentionNoticeHandler.hh for fluxbox // Copyright (c) 2006 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef ATTENTIONNOTICEHANDLER_HH #define ATTENTIONNOTICEHANDLER_HH #include #include "FbTk/Signal.hh" class Focusable; namespace FbTk { class Timer; } /** * Handles demands attention signals. * Makes the title and iconbutton flash when the window * demands attention. */ class AttentionNoticeHandler: private FbTk::SignalTracker { public: ~AttentionNoticeHandler(); typedef std::map NoticeMap; /// Adds a client that requires attention, /// will fail if the client is already active void addAttention(Focusable &client); bool isDemandingAttention(const Focusable &client); /// Called when window focus changes. void windowFocusChanged(Focusable& win); /// Remove window from attentionHandler. void removeWindow(Focusable& win); private: /// updates the windows state in this instance. void updateWindow(Focusable& win, bool died); NoticeMap m_attentions; }; #endif // ATTENTIONNOTICEHANDLER_HH fluxbox-1.3.5/src/PaxHeaders.25974/UnderMousePlacement.cc0000644000175000017500000000013212106662425021271 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.323812462 30 ctime=1360750008.663811615 fluxbox-1.3.5/src/UnderMousePlacement.cc0000644000175000017500000000512412106662425017322 0ustar00mgmg00000000000000// UnderMousePlacement.cc // Copyright (c) 2006 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "UnderMousePlacement.hh" #include "FbTk/App.hh" #include "Screen.hh" #include "Window.hh" bool UnderMousePlacement::placeWindow(const FluxboxWindow &win, int head, int &place_x, int &place_y) { int root_x, root_y, ignore_i; unsigned int ignore_ui; Window ignore_w; XQueryPointer(FbTk::App::instance()->display(), win.screen().rootWindow().window(), &ignore_w, &ignore_w, &root_x, &root_y, &ignore_i, &ignore_i, &ignore_ui); // 2*border = border on each side of the screen // not using offset ones because we won't let tabs influence the "centre" int win_w = win.width() + win.fbWindow().borderWidth()*2, win_h = win.height() + win.fbWindow().borderWidth()*2; int test_x = root_x - (win_w / 2); int test_y = root_y - (win_h / 2); // keep the window inside the screen int head_left = (signed) win.screen().maxLeft(head); int head_right = (signed) win.screen().maxRight(head); int head_top = (signed) win.screen().maxTop(head); int head_bot = (signed) win.screen().maxBottom(head); if (test_x < head_left) test_x = head_left; if (test_x + win_w > head_right) test_x = head_right - win_w; if (test_y < head_top) test_y = head_top; if (test_y + win_h > head_bot) test_y = head_bot - win_h; place_x = test_x; place_y = test_y; return true; } fluxbox-1.3.5/src/PaxHeaders.25974/UnderMousePlacement.hh0000644000175000017500000000013212106662425021303 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.319812462 30 ctime=1360750008.667811614 fluxbox-1.3.5/src/UnderMousePlacement.hh0000644000175000017500000000267512106662425017344 0ustar00mgmg00000000000000// UnderMousePlacement.hh // Copyright (c) 2006 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef UNDERMOUSEPLACEMENT_HH #define UNDERMOUSEPLACEMENT_HH #include "PlacementStrategy.hh" class UnderMousePlacement: public PlacementStrategy { public: bool placeWindow(const FluxboxWindow &win, int head, int &place_x, int &place_y); }; #endif // UNDERMOUSEPLACEMENT_HH fluxbox-1.3.5/src/PaxHeaders.25974/ScreenPlacement.cc0000644000175000017500000000013212106662425020422 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.319812462 30 ctime=1360750008.667811614 fluxbox-1.3.5/src/ScreenPlacement.cc0000644000175000017500000002176612106662425016465 0ustar00mgmg00000000000000// ScreenPlacement.cc // Copyright (c) 2006 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "ScreenPlacement.hh" #include "RowSmartPlacement.hh" #include "MinOverlapPlacement.hh" #include "UnderMousePlacement.hh" #include "ColSmartPlacement.hh" #include "CascadePlacement.hh" #include "Screen.hh" #include "Window.hh" #include "FbTk/Menu.hh" #include #include #ifdef HAVE_CSTRING #include #else #include #endif using std::cerr; using std::endl; ScreenPlacement::ScreenPlacement(BScreen &screen): m_row_direction(screen.resourceManager(), LEFTRIGHT, screen.name()+".rowPlacementDirection", screen.altName()+".RowPlacementDirection"), m_col_direction(screen.resourceManager(), TOPBOTTOM, screen.name()+".colPlacementDirection", screen.altName()+".ColPlacementDirection"), m_placement_policy(screen.resourceManager(), ROWMINOVERLAPPLACEMENT, screen.name()+".windowPlacement", screen.altName()+".WindowPlacement"), m_old_policy(ROWSMARTPLACEMENT), m_strategy(0), m_screen(screen) { } bool ScreenPlacement::placeWindow(const FluxboxWindow &win, int head, int &place_x, int &place_y) { // check the resource placement and see if has changed // and if so update the strategy if (m_old_policy != *m_placement_policy || !m_strategy.get()) { m_old_policy = *m_placement_policy; switch (*m_placement_policy) { case ROWSMARTPLACEMENT: m_strategy.reset(new RowSmartPlacement()); break; case COLSMARTPLACEMENT: m_strategy.reset(new ColSmartPlacement()); break; case ROWMINOVERLAPPLACEMENT: case COLMINOVERLAPPLACEMENT: m_strategy.reset(new MinOverlapPlacement()); break; case CASCADEPLACEMENT: m_strategy.reset(new CascadePlacement(win.screen())); break; case UNDERMOUSEPLACEMENT: m_strategy.reset(new UnderMousePlacement()); break; } } // view (screen + head) constraints int head_left = (signed) win.screen().maxLeft(head); int head_right = (signed) win.screen().maxRight(head); int head_top = (signed) win.screen().maxTop(head); int head_bot = (signed) win.screen().maxBottom(head); // start placement, top left corner place_x = head_left; place_y = head_top; bool placed = false; try { placed = m_strategy->placeWindow(win, head, place_x, place_y); } catch (std::bad_cast & cast) { // This should not happen. // If for some reason we change the PlacementStrategy in Screen // from ScreenPlacement to something else then we might get // bad_cast from some placement strategies. cerr<<"Failed to place window: "<placeWindow(win, head, place_x, place_y); } int win_w = win.normalWidth() + win.fbWindow().borderWidth()*2 + win.widthOffset(), win_h = win.normalHeight() + win.fbWindow().borderWidth()*2 + win.heightOffset(); // make sure the window is inside our screen(head) area if (place_x + win_w - win.xOffset() > head_right) place_x = head_left + (head_right - head_left - win_w) / 2 + win.xOffset(); if (place_y + win_h - win.yOffset() > head_bot) place_y = head_top + (head_bot - head_top - win_h) / 2 + win.yOffset(); return true; } void ScreenPlacement::placeAndShowMenu(FbTk::Menu& menu, int x, int y, bool respect_struts) { int head = m_screen.getHead(x, y); menu.setScreen(m_screen.getHeadX(head), m_screen.getHeadY(head), m_screen.getHeadWidth(head), m_screen.getHeadHeight(head)); menu.updateMenu(); // recalculate the size x = x - (menu.width() / 2); if (menu.isTitleVisible()) y = y - (menu.titleWindow().height() / 2); // adjust (x, y) to fit on the screen if (!respect_struts) { int bw = 2 * menu.fbwindow().borderWidth(); std::pair pos = m_screen.clampToHead(head, x, y, menu.width() + bw, menu.height() + bw); x = pos.first; y = pos.second; } else { // do not cover toolbar if no title int top = static_cast(m_screen.maxTop(head)); int bottom = static_cast(m_screen.maxBottom(head)); int left = static_cast(m_screen.maxLeft(head)); int right = static_cast(m_screen.maxRight(head)); if (y < top) y = top; else if (y + static_cast(menu.height()) >= bottom) y = bottom - menu.height() - 1 - menu.fbwindow().borderWidth(); if (x < left) x = left; else if (x + static_cast(menu.width()) >= right) x = right - static_cast(menu.width()) - 1; } menu.move(x, y); menu.show(); menu.grabInputFocus(); } ////////////////////// Placement Resources namespace FbTk { template <> std::string FbTk::Resource::getString() const { switch (*(*this)) { case ScreenPlacement::ROWSMARTPLACEMENT: return "RowSmartPlacement"; case ScreenPlacement::COLSMARTPLACEMENT: return "ColSmartPlacement"; case ScreenPlacement::ROWMINOVERLAPPLACEMENT: return "RowMinOverlapPlacement"; case ScreenPlacement::COLMINOVERLAPPLACEMENT: return "ColMinOverlapPlacement"; case ScreenPlacement::UNDERMOUSEPLACEMENT: return "UnderMousePlacement"; case ScreenPlacement::CASCADEPLACEMENT: return "CascadePlacement"; } return "RowSmartPlacement"; } template <> void FbTk::Resource::setFromString(const char *str) { if (strcasecmp("RowSmartPlacement", str) == 0) *(*this) = ScreenPlacement::ROWSMARTPLACEMENT; else if (strcasecmp("ColSmartPlacement", str) == 0) *(*this) = ScreenPlacement::COLSMARTPLACEMENT; else if (strcasecmp("RowMinOverlapPlacement", str) == 0) *(*this) = ScreenPlacement::ROWMINOVERLAPPLACEMENT; else if (strcasecmp("ColMinOverlapPlacement", str) == 0) *(*this) = ScreenPlacement::COLMINOVERLAPPLACEMENT; else if (strcasecmp("UnderMousePlacement", str) == 0) *(*this) = ScreenPlacement::UNDERMOUSEPLACEMENT; else if (strcasecmp("CascadePlacement", str) == 0) *(*this) = ScreenPlacement::CASCADEPLACEMENT; else setDefaultValue(); } template <> std::string FbTk::Resource::getString() const { switch (*(*this)) { case ScreenPlacement::LEFTRIGHT: return "LeftToRight"; case ScreenPlacement::RIGHTLEFT: return "RightToLeft"; } return "LeftToRight"; } template <> void FbTk::Resource::setFromString(const char *str) { if (strcasecmp("LeftToRight", str) == 0) *(*this) = ScreenPlacement::LEFTRIGHT; else if (strcasecmp("RightToLeft", str) == 0) *(*this) = ScreenPlacement::RIGHTLEFT; else setDefaultValue(); } template <> std::string FbTk::Resource::getString() const { switch (*(*this)) { case ScreenPlacement::TOPBOTTOM: return "TopToBottom"; case ScreenPlacement::BOTTOMTOP: return "BottomToTop"; } return "TopToBottom"; } template <> void FbTk::Resource::setFromString(const char *str) { if (strcasecmp("TopToBottom", str) == 0) *(*this) = ScreenPlacement::TOPBOTTOM; else if (strcasecmp("BottomToTop", str) == 0) *(*this) = ScreenPlacement::BOTTOMTOP; else setDefaultValue(); } } // end namespace FbTk fluxbox-1.3.5/src/PaxHeaders.25974/ScreenPlacement.hh0000644000175000017500000000013212106662425020434 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.319812462 30 ctime=1360750008.667811614 fluxbox-1.3.5/src/ScreenPlacement.hh0000644000175000017500000000651212106662425016467 0ustar00mgmg00000000000000// ScreenPlacement.hh // Copyright (c) 2006 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef SCREENPLACEMENT_HH #define SCREENPLACEMENT_HH #include "PlacementStrategy.hh" #include "FbTk/Resource.hh" #include namespace FbTk { class Menu; } class BScreen; /** * Main class for strategy handling * This is a bridge between screen and * the real placement strategy (rowcol, undermouse etc) * The placeWindow function in this class is guaranteed to succeed. * It holds a pointer to the real placement strategy which is * called upon placeWindow, it also holds the placement resources */ class ScreenPlacement: public PlacementStrategy { public: enum PlacementPolicy { ROWSMARTPLACEMENT, COLSMARTPLACEMENT, COLMINOVERLAPPLACEMENT, ROWMINOVERLAPPLACEMENT, CASCADEPLACEMENT, UNDERMOUSEPLACEMENT }; enum RowDirection { LEFTRIGHT, ///< from left to right RIGHTLEFT ///< from right to left }; enum ColumnDirection { TOPBOTTOM, ///< from top to bottom BOTTOMTOP ///< from bottom to top }; explicit ScreenPlacement(BScreen &screen); virtual ~ScreenPlacement() {} /// placeWindow is guaranteed to succeed, ignore return value /// @return true bool placeWindow(const FluxboxWindow &window, int head, int &place_x, int &place_y); // places and show 'menu' at 'x','y' void placeAndShowMenu(FbTk::Menu& menu, int x, int y, bool respect_struts); PlacementPolicy placementPolicy() const { return *m_placement_policy; } RowDirection rowDirection() const { return *m_row_direction; } ColumnDirection colDirection() const { return *m_col_direction; } private: FbTk::Resource m_row_direction; ///< row direction resource FbTk::Resource m_col_direction; ///< column direction resource FbTk::Resource m_placement_policy; ///< placement policy resource PlacementPolicy m_old_policy; ///< holds old policy, used to determine if resources has changed std::auto_ptr m_strategy; ///< main strategy std::auto_ptr m_fallback_strategy; ///< a fallback strategy if the main strategy fails BScreen& m_screen; }; #endif // SCREENPLACEMENT_HH fluxbox-1.3.5/src/PaxHeaders.25974/RowSmartPlacement.cc0000644000175000017500000000013212106662425020761 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.315812462 30 ctime=1360750008.667811614 fluxbox-1.3.5/src/RowSmartPlacement.cc0000644000175000017500000001414112106662425017011 0ustar00mgmg00000000000000// RowSmartPlacement.cc // Copyright (c) 2006 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "RowSmartPlacement.hh" #include "FocusControl.hh" #include "Window.hh" #include "Screen.hh" #include "ScreenPlacement.hh" bool RowSmartPlacement::placeWindow(const FluxboxWindow &win, int head, int &place_x, int &place_y) { std::list windowlist; const std::list focusables = win.screen().focusControl().focusedOrderWinList().clientList(); std::list::const_iterator foc_it = focusables.begin(), foc_it_end = focusables.end(); unsigned int workspace = win.workspaceNumber(); for (; foc_it != foc_it_end; ++foc_it) { // make sure it's a FluxboxWindow if (*foc_it == (*foc_it)->fbwindow() && (workspace == (*foc_it)->fbwindow()->workspaceNumber() || (*foc_it)->fbwindow()->isStuck())) windowlist.push_back((*foc_it)->fbwindow()); } bool placed = false; int next_x, next_y; // view (screen + head) constraints int head_left = (signed) win.screen().maxLeft(head); int head_right = (signed) win.screen().maxRight(head); int head_top = (signed) win.screen().maxTop(head); int head_bot = (signed) win.screen().maxBottom(head); const ScreenPlacement &screen_placement = win.screen().placementStrategy(); bool top_bot = screen_placement.colDirection() == ScreenPlacement::TOPBOTTOM; bool left_right = screen_placement.rowDirection() == ScreenPlacement::LEFTRIGHT; int change_x = 1, change_y = 1; if (screen_placement.colDirection() == ScreenPlacement::BOTTOMTOP) change_y = -1; if (screen_placement.rowDirection() == ScreenPlacement::RIGHTLEFT) change_x = -1; int win_w = win.width() + win.fbWindow().borderWidth()*2 + win.widthOffset(); int win_h = win.height() + win.fbWindow().borderWidth()*2 + win.heightOffset(); int x_off = win.xOffset(); int y_off = win.yOffset(); int test_y; if (top_bot) test_y = head_top; else test_y = head_bot - win_h; while (!placed && (top_bot ? test_y + win_h <= head_bot : test_y >= head_top)) { int test_x; if (left_right) test_x = head_left; else test_x = head_right - win_w; // The trick here is that we set it to the furthest away one, // then the code brings it back down to the safest one that // we can go to (i.e. the next untested area) if (top_bot) next_y = head_bot; // will be shrunk else next_y = head_top-1; while (!placed && (left_right ? test_x + win_w <= head_right : test_x >= head_left)) { placed = true; next_x = test_x + change_x; std::list::const_iterator win_it = windowlist.begin(); std::list::const_iterator win_it_end = windowlist.end(); for (; win_it != win_it_end && placed; ++win_it) { FluxboxWindow &window = **win_it; if (&window == &win) continue; int curr_x = window.x() - window.xOffset(); // minus offset to get back up to fake place int curr_y = window.y() - window.yOffset(); int curr_w = window.width() + window.fbWindow().borderWidth()*2 + window.widthOffset(); int curr_h = window.height() + window.fbWindow().borderWidth()*2 + window.heightOffset(); if (curr_x < test_x + win_w && curr_x + curr_w > test_x && curr_y < test_y + win_h && curr_y + curr_h > test_y) { // this window is in the way placed = false; // we find the next x that we can go to (a window will be in the way // all the way to its far side) if (left_right) { if (curr_x + curr_w > next_x) next_x = curr_x + curr_w; } else { if (curr_x - win_w < next_x) next_x = curr_x - win_w; } // but we can only go to the nearest y, since that is where the // next time current windows in the way will change if (top_bot) { if (curr_y + curr_h < next_y) next_y = curr_y + curr_h; } else { if (curr_y - win_h > next_y) next_y = curr_y - win_h; } } } if (placed) { place_x = test_x + x_off; place_y = test_y + y_off; break; } test_x = next_x; } // end while test_y = next_y; } // end while return placed; } fluxbox-1.3.5/src/PaxHeaders.25974/RowSmartPlacement.hh0000644000175000017500000000013212106662425020773 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.315812462 30 ctime=1360750008.671811614 fluxbox-1.3.5/src/RowSmartPlacement.hh0000644000175000017500000000266412106662425017032 0ustar00mgmg00000000000000// RowSmartPlacement.hh // Copyright (c) 2006 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef ROWSMARTPLACEMENT_HH #define ROWSMARTPLACEMENT_HH #include "PlacementStrategy.hh" class RowSmartPlacement: public PlacementStrategy { public: bool placeWindow(const FluxboxWindow &win, int head, int &place_x, int &place_y); }; #endif // ROWSMARTPLACEMENT_HH fluxbox-1.3.5/src/PaxHeaders.25974/MinOverlapPlacement.cc0000644000175000017500000000013212106662425021257 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.311812462 30 ctime=1360750008.671811614 fluxbox-1.3.5/src/MinOverlapPlacement.cc0000644000175000017500000002253012106662425017310 0ustar00mgmg00000000000000// MinOverlapPlacement.cc // Copyright (c) 2007 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR (*it) // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR (*it)WISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR (*it) // DEALINGS IN THE SOFTWARE. #include "MinOverlapPlacement.hh" #include "FocusControl.hh" #include "Window.hh" #include "Screen.hh" namespace { inline void getWindowDimensions(const FluxboxWindow& win, int& left, int& top, int& right, int& bottom) { const int bw = 2 * win.frame().window().borderWidth(); left = win.x() - win.xOffset(); top = win.y() - win.yOffset(); right = left + win.width() + bw + win.widthOffset(); bottom = top + win.height() + bw + win.heightOffset(); } class Area { public: enum Corner { TOPLEFT, TOPRIGHT, BOTTOMLEFT, BOTTOMRIGHT } corner; // indicates the corner of the window that will be placed Area(Corner _corner, int _x, int _y): corner(_corner), x(_x), y(_y) { }; // do all STL set implementations use this for sorting? bool operator <(const Area &o) const { switch (s_policy) { case ScreenPlacement::ROWMINOVERLAPPLACEMENT: // if we're making rows, y-value is most important if (y != o.y) return ((y < o.y) ^ (s_col_dir == ScreenPlacement::BOTTOMTOP)); if (x != o.x) return ((x < o.x) ^ (s_row_dir == ScreenPlacement::RIGHTLEFT)); return (corner < o.corner); case ScreenPlacement::COLMINOVERLAPPLACEMENT: // if we're making columns, x-value is most important if (x != o.x) return ((x < o.x) ^ (s_row_dir == ScreenPlacement::RIGHTLEFT)); if (y != o.y) return ((y < o.y) ^ (s_col_dir == ScreenPlacement::BOTTOMTOP)); return (corner < o.corner); default: return false; } } // position where the top left corner of the window will be placed int x, y; static ScreenPlacement::RowDirection s_row_dir; static ScreenPlacement::ColumnDirection s_col_dir; static ScreenPlacement::PlacementPolicy s_policy; }; ScreenPlacement::RowDirection Area::s_row_dir = ScreenPlacement::LEFTRIGHT; ScreenPlacement::ColumnDirection Area::s_col_dir = ScreenPlacement::TOPBOTTOM; ScreenPlacement::PlacementPolicy Area::s_policy = ScreenPlacement::ROWMINOVERLAPPLACEMENT; } // end of anonymous namespace bool MinOverlapPlacement::placeWindow(const FluxboxWindow &win, int head, int &place_x, int &place_y) { int left; int top; int right; int bottom; std::list windowlist; const std::list focusables = win.screen().focusControl().focusedOrderWinList().clientList(); std::list::const_iterator foc_it = focusables.begin(), foc_it_end = focusables.end(); unsigned int workspace = win.workspaceNumber(); for (; foc_it != foc_it_end; ++foc_it) { // make sure it's a FluxboxWindow if (*foc_it == (*foc_it)->fbwindow() && (workspace == (*foc_it)->fbwindow()->workspaceNumber() || (*foc_it)->fbwindow()->isStuck())) windowlist.push_back((*foc_it)->fbwindow()); } // view (screen + head) constraints int head_left = (signed) win.screen().maxLeft(head); int head_right = (signed) win.screen().maxRight(head); int head_top = (signed) win.screen().maxTop(head); int head_bot = (signed) win.screen().maxBottom(head); int win_w = win.normalWidth() + win.fbWindow().borderWidth()*2 + win.widthOffset(); int win_h = win.normalHeight() + win.fbWindow().borderWidth()*2 + win.heightOffset(); // we keep a set of open spaces on the desktop, sorted by size/location std::set areas; // setup stuff in order to make Area::operator< work const ScreenPlacement& p = win.screen().placementStrategy(); Area::s_policy = p.placementPolicy(); Area::s_row_dir = p.rowDirection(); Area::s_col_dir = p.colDirection(); // initialize the set of areas to contain the entire head areas.insert(Area(Area::TOPLEFT, head_left, head_top)); areas.insert(Area(Area::TOPRIGHT, head_right - win_w, head_top)); areas.insert(Area(Area::BOTTOMLEFT, head_left, head_bot - win_h)); areas.insert(Area(Area::BOTTOMRIGHT, head_right - win_w, head_bot - win_h)); // go through the list of windows, creating other reasonable placements // at the end, we'll find the one with minimum overlap // the size of this set is at most 2(n+2)(n+1) (n = number of windows) // finding overlaps is therefore O(n^3), but it can probably be improved const std::list& const_windowlist = windowlist; std::list::const_reverse_iterator it = const_windowlist.rbegin(), it_end = const_windowlist.rend(); for (; it != it_end; ++it) { if (*it == &win) continue; getWindowDimensions(*(*it), left, top, right, bottom); // go through the list of regions // if this window overlaps that region and the new window still fits, // it will create new regions to test std::set::iterator ar_it = areas.begin(); for (; ar_it != areas.end(); ++ar_it) { switch (ar_it->corner) { case Area::TOPLEFT: if (right > ar_it->x && bottom > ar_it->y) { if (bottom + win_h <= head_bot) areas.insert(Area(Area::TOPLEFT, ar_it->x, bottom)); if (right + win_w <= head_right) areas.insert(Area(Area::TOPLEFT, right, ar_it->y)); } break; case Area::TOPRIGHT: if (left < ar_it->x + win_w && bottom > ar_it->y) { if (bottom + win_h <= head_bot) areas.insert(Area(Area::TOPRIGHT, ar_it->x, bottom)); if (left - win_w >= head_left) areas.insert(Area(Area::TOPRIGHT, left - win_w, ar_it->y)); } break; case Area::BOTTOMRIGHT: if (left < ar_it->x + win_w && top < ar_it->y + win_h) { if (top - win_h >= head_top) areas.insert(Area(Area::BOTTOMRIGHT, ar_it->x, top - win_h)); if (left - win_w >= head_left) areas.insert(Area(Area::BOTTOMRIGHT, left - win_w, ar_it->y)); } break; case Area::BOTTOMLEFT: if (right > ar_it->x && top < ar_it->y + win_h) { if (top - win_h >= head_top) areas.insert(Area(Area::BOTTOMLEFT, ar_it->x, top - win_h)); if (right + win_w <= head_right) areas.insert(Area(Area::BOTTOMLEFT, right, ar_it->y)); } break; } } } // choose the region with minimum overlap int min_so_far = win_w * win_h * windowlist.size() + 1; std::set::iterator min_reg = areas.end(); std::set::iterator ar_it = areas.begin(); for (; ar_it != areas.end(); ++ar_it) { int overlap = 0; it = const_windowlist.rbegin(); for (; it != it_end; ++it) { getWindowDimensions(*(*it), left, top, right, bottom); // get the coordinates of the overlap region int min_right = std::min(right, ar_it->x + win_w); int min_bottom = std::min(bottom, ar_it->y + win_h); int max_left = std::max(left, ar_it->x); int max_top = std::max(top, ar_it->y); // now compute the overlap and add to running total if (min_right > max_left && min_bottom > max_top) overlap += (min_right - max_left) * (min_bottom - max_top); } // if this placement is better, use it if (overlap < min_so_far) { min_reg = ar_it; min_so_far = overlap; if (overlap == 0) // can't do better than this break; } } // place window place_x = min_reg->x + win.xOffset(); place_y = min_reg->y + win.yOffset(); return true; } fluxbox-1.3.5/src/PaxHeaders.25974/MinOverlapPlacement.hh0000644000175000017500000000013212106662425021271 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.311812462 30 ctime=1360750008.671811614 fluxbox-1.3.5/src/MinOverlapPlacement.hh0000644000175000017500000000274512106662425017330 0ustar00mgmg00000000000000// MinOverlapPlacement.hh // Copyright (c) 2007 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef MINOVERLAPPLACEMENT_HH #define MINOVERLAPPLACEMENT_HH #include "ScreenPlacement.hh" class MinOverlapPlacement: public PlacementStrategy { public: MinOverlapPlacement() { }; bool placeWindow(const FluxboxWindow &win, int head, int &place_x, int &place_y); private: }; #endif // MINOVERLAPPLACEMENT_HH fluxbox-1.3.5/src/PaxHeaders.25974/ColSmartPlacement.cc0000644000175000017500000000013212106662425020727 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.311812462 30 ctime=1360750008.671811614 fluxbox-1.3.5/src/ColSmartPlacement.cc0000644000175000017500000001315112106662425016757 0ustar00mgmg00000000000000// ColSmartPlacement.cc // Copyright (c) 2006 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "ColSmartPlacement.hh" #include "FocusControl.hh" #include "Screen.hh" #include "ScreenPlacement.hh" #include "Window.hh" bool ColSmartPlacement::placeWindow(const FluxboxWindow &win, int head, int &place_x, int &place_y) { std::list windowlist; const std::list focusables = win.screen().focusControl().focusedOrderWinList().clientList(); std::list::const_iterator foc_it = focusables.begin(), foc_it_end = focusables.end(); unsigned int workspace = win.workspaceNumber(); for (; foc_it != foc_it_end; ++foc_it) { // make sure it's a FluxboxWindow if (*foc_it == (*foc_it)->fbwindow() && (workspace == (*foc_it)->fbwindow()->workspaceNumber() || (*foc_it)->fbwindow()->isStuck())) windowlist.push_back((*foc_it)->fbwindow()); } // xinerama head constraints int head_left = (signed) win.screen().maxLeft(head); int head_right = (signed) win.screen().maxRight(head); int head_top = (signed) win.screen().maxTop(head); int head_bot = (signed) win.screen().maxBottom(head); bool placed = false; int next_x, next_y; const ScreenPlacement &screen_placement = win.screen().placementStrategy(); bool top_bot = screen_placement.colDirection() == ScreenPlacement::TOPBOTTOM; bool left_right = screen_placement.rowDirection() == ScreenPlacement::LEFTRIGHT; int test_x; int win_w = win.width() + win.fbWindow().borderWidth()*2 + win.widthOffset(); int win_h = win.height() + win.fbWindow().borderWidth()*2 + win.heightOffset(); int x_off = win.xOffset(); int y_off = win.yOffset(); if (left_right) test_x = head_left; else test_x = head_right - win_w; int change_y = 1; if (screen_placement.colDirection() == ScreenPlacement::BOTTOMTOP) change_y = -1; while (!placed && (left_right ? test_x + win_w <= head_right : test_x >= head_left)) { if (left_right) next_x = head_right; // it will get shrunk else next_x = head_left-1; int test_y; if (top_bot) test_y = head_top; else test_y = head_bot - win_h; while (!placed && (top_bot ? test_y + win_h <= head_bot : test_y >= head_top)) { placed = true; next_y = test_y + change_y; std::list::const_iterator it = windowlist.begin(); std::list::const_iterator it_end = windowlist.end(); for (; it != it_end && placed; ++it) { if (*it == &win) continue; int bw = 2 * (*it)->fbWindow().borderWidth(); int curr_x = (*it)->x() - (*it)->xOffset(); int curr_y = (*it)->y() - (*it)->yOffset(); int curr_w = (*it)->width() + bw + (*it)->widthOffset(); int curr_h = (*it)->height() + bw + (*it)->heightOffset(); if (curr_x < test_x + win_w && curr_x + curr_w > test_x && curr_y < test_y + win_h && curr_y + curr_h > test_y) { // this window is in the way placed = false; // we find the next y that we can go to (a window will be in the way // all the way to its bottom) if (top_bot) { if (curr_y + curr_h > next_y) next_y = curr_y + curr_h; } else { if (curr_y - win_h < next_y) next_y = curr_y - win_h; } // but we can only go to the nearest x, since that is where the // next time current windows in the way will change if (left_right) { if (curr_x + curr_w < next_x) next_x = curr_x + curr_w; } else { if (curr_x - win_w > next_x) next_x = curr_x - win_w; } } } if (placed) { place_x = test_x + x_off; place_y = test_y + y_off; } test_y = next_y; } // end while test_x = next_x; } // end while return placed; } fluxbox-1.3.5/src/PaxHeaders.25974/ColSmartPlacement.hh0000644000175000017500000000013212106662425020741 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.307812462 30 ctime=1360750008.671811614 fluxbox-1.3.5/src/ColSmartPlacement.hh0000644000175000017500000000266312106662425016777 0ustar00mgmg00000000000000// ColSmartPlacement.hh // Copyright (c) 2006 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef COLSMARTPLACEMENT_HH #define COLSMARTPLACEMENT_HH #include "PlacementStrategy.hh" class ColSmartPlacement: public PlacementStrategy { public: bool placeWindow(const FluxboxWindow &win, int head, int &place_x, int &place_y); }; #endif // COLSMARTPLACEMENT_HH fluxbox-1.3.5/src/PaxHeaders.25974/CascadePlacement.cc0000644000175000017500000000013212106662425020526 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.307812462 30 ctime=1360750008.675811614 fluxbox-1.3.5/src/CascadePlacement.cc0000644000175000017500000000512312106662425016556 0ustar00mgmg00000000000000// CascadePlacement.cc // Copyright (c) 2006 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "CascadePlacement.hh" #include "Window.hh" #include "Screen.hh" CascadePlacement::CascadePlacement(const BScreen &screen) { m_cascade_x = new int[screen.numHeads() + 1]; m_cascade_y = new int[screen.numHeads() + 1]; for (int i=0; i < screen.numHeads() + 1; i++) { m_cascade_x[i] = screen.maxRight(i); m_cascade_y[i] = screen.maxBottom(i); } } CascadePlacement::~CascadePlacement() { delete [] m_cascade_x; delete [] m_cascade_y; } bool CascadePlacement::placeWindow(const FluxboxWindow &win, int head, int &place_x, int &place_y) { int head_left = (signed) win.screen().maxLeft(head); int head_right = (signed) win.screen().maxRight(head); int head_top = (signed) win.screen().maxTop(head); int head_bot = (signed) win.screen().maxBottom(head); if (m_cascade_x[head] > ((head_left + head_right) / 2)) m_cascade_x[head] = head_left; if (m_cascade_y[head] > ((head_top + head_bot) / 2)) m_cascade_y[head] = head_top; place_x = m_cascade_x[head]; place_y = m_cascade_y[head]; // just one borderwidth, so they can share a borderwidth (looks better) int titlebar_height = win.titlebarHeight() + win.fbWindow().borderWidth(); if (titlebar_height < 4) // make sure it is not insignificant titlebar_height = 32; m_cascade_x[head] += titlebar_height; m_cascade_y[head] += titlebar_height; return true; } fluxbox-1.3.5/src/PaxHeaders.25974/CascadePlacement.hh0000644000175000017500000000013212106662425020540 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.307812462 30 ctime=1360750008.675811614 fluxbox-1.3.5/src/CascadePlacement.hh0000644000175000017500000000336212106662425016573 0ustar00mgmg00000000000000// CascadePlacement.hh // Copyright (c) 2006 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef CASCADEPLACEMENT_HH #define CASCADEPLACEMENT_HH #include "PlacementStrategy.hh" #include "FbTk/NotCopyable.hh" class BScreen; class CascadePlacement: public PlacementStrategy, private FbTk::NotCopyable { public: explicit CascadePlacement(const BScreen &screen); ~CascadePlacement(); bool placeWindow(const FluxboxWindow &window, int head, int &place_x, int &place_y); private: int *m_cascade_x; ///< need a cascade for each head (Xinerama) int *m_cascade_y; ///< need a cascade for each head (Xinerama) }; #endif // CASCADEPLACEMENT_HH fluxbox-1.3.5/src/PaxHeaders.25974/PlacementStrategy.hh0000644000175000017500000000013212106662425021017 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.303812462 30 ctime=1360750008.675811614 fluxbox-1.3.5/src/PlacementStrategy.hh0000644000175000017500000000343112106662425017047 0ustar00mgmg00000000000000// PlacementStrategy.hh // Copyright (c) 2006 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef PLACEMENTSTRATEGY_HH #define PLACEMENTSTRATEGY_HH class FluxboxWindow; struct PlacementStrategy { /** * Calculates a placement for @win and returns suggested placement in @place_x and @place_y * @param win the window that needs to be placed * @param place_x x placement of specific strategy * @param place_y y placement of specific strategy * @return true if the strategy found a placement for the window */ virtual bool placeWindow(const FluxboxWindow &win, int head, int &place_x, int &place_y) = 0; virtual ~PlacementStrategy() { } }; #endif // PLACEMENTSTRATEGY_HH fluxbox-1.3.5/src/PaxHeaders.25974/FocusControl.cc0000644000175000017500000000013212106662425017772 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.303812462 30 ctime=1360750008.675811614 fluxbox-1.3.5/src/FocusControl.cc0000644000175000017500000005242212106662425016026 0ustar00mgmg00000000000000// FocusControl.cc // Copyright (c) 2006 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "FocusControl.hh" #include "ClientPattern.hh" #include "Screen.hh" #include "Window.hh" #include "WinClient.hh" #include "Workspace.hh" #include "fluxbox.hh" #include "FbWinFrameTheme.hh" #include "Debug.hh" #include "FbTk/EventManager.hh" #include #include #include #ifdef HAVE_CSTRING #include #else #include #endif using std::endl; using std::string; WinClient *FocusControl::s_focused_window = 0; FluxboxWindow *FocusControl::s_focused_fbwindow = 0; WinClient *FocusControl::s_expecting_focus = 0; bool FocusControl::s_reverting = false; namespace { bool doSkipWindow(const Focusable &win, const ClientPattern *pat) { const FluxboxWindow *fbwin = win.fbwindow(); if (!fbwin || fbwin->isFocusHidden() || fbwin->isModal()) return true; // skip if no fbwindow or if focushidden if (pat && !pat->match(win)) return true; // skip if it doesn't match the pattern return false; // else don't skip } } // end anonymous namespace FocusControl::FocusControl(BScreen &screen): m_screen(screen), m_focus_model(screen.resourceManager(), CLICKFOCUS, screen.name()+".focusModel", screen.altName()+".FocusModel"), m_tab_focus_model(screen.resourceManager(), CLICKTABFOCUS, screen.name()+".tabFocusModel", screen.altName()+".TabFocusModel"), m_focus_new(screen.resourceManager(), true, screen.name()+".focusNewWindows", screen.altName()+".FocusNewWindows"), #ifdef XINERAMA m_focus_same_head(screen.resourceManager(), false, screen.name()+".focusSameHead", screen.altName()+".FocusSameHead"), #endif // XINERAMA m_focused_list(screen), m_creation_order_list(screen), m_focused_win_list(screen), m_creation_order_win_list(screen), m_cycling_list(0), m_was_iconic(0), m_cycling_last(0), m_ignore_mouse_x(-1), m_ignore_mouse_y(-1) { m_cycling_window = m_focused_list.clientList().end(); } void FocusControl::cycleFocus(const FocusableList &window_list, const ClientPattern *pat, bool cycle_reverse) { if (!m_cycling_list) { if (m_screen.isCycling()) // only set this when we're waiting for modifiers m_cycling_list = &window_list; m_was_iconic = 0; m_cycling_last = 0; } else if (m_cycling_list != &window_list) m_cycling_list = &window_list; Focusables::const_iterator it_begin = window_list.clientList().begin(); Focusables::const_iterator it_end = window_list.clientList().end(); // too many things can go wrong with remembering this m_cycling_window = find(it_begin, it_end, s_focused_window); if (m_cycling_window == it_end) m_cycling_window = find(it_begin, it_end, s_focused_fbwindow); Focusables::const_iterator it = m_cycling_window; FluxboxWindow *fbwin = 0; WinClient *last_client = 0; WinClient *was_iconic = 0; // find the next window in the list that works while (true) { if (cycle_reverse && it == it_begin) it = it_end; else if (!cycle_reverse && it == it_end) it = it_begin; else cycle_reverse ? --it : ++it; // give up [do nothing] if we reach the current focused again if (it == m_cycling_window) return; if (it == it_end) continue; fbwin = (*it)->fbwindow(); if (!fbwin) continue; // keep track of the originally selected window in a group last_client = &fbwin->winClient(); was_iconic = (fbwin->isIconic() ? last_client : 0); // now we actually try to focus the window if (!doSkipWindow(**it, pat) && (*it)->focus()) break; } m_cycling_window = it; // if we're still in the same fbwin, there's nothing else to do if (m_cycling_last && m_cycling_last->fbwindow() == fbwin) return; // if we were already cycling, then restore the old state if (m_cycling_last) { // set back to originally selected window in that group m_cycling_last->fbwindow()->setCurrentClient(*m_cycling_last, false); if (m_was_iconic == m_cycling_last) { s_reverting = true; // little hack m_cycling_last->fbwindow()->iconify(); s_reverting = false; } } if (!isCycling()) fbwin->raise(); m_cycling_last = last_client; m_was_iconic = was_iconic; } void FocusControl::goToWindowNumber(const FocusableList &winlist, int num, const ClientPattern *pat) { Focusables list = winlist.clientList(); if (num < 0) { list.reverse(); num = -num; } Focusable *win = 0; Focusables::const_iterator it = list.begin(), it_end = list.end(); for (; num && it != it_end; ++it) { if (!doSkipWindow(**it, pat) && (*it)->acceptsFocus()) { --num; win = *it; } } if (win) { win->focus(); if (win->fbwindow()) win->fbwindow()->raise(); } } void FocusControl::addFocusBack(WinClient &client) { m_focused_list.pushBack(client); m_creation_order_list.pushBack(client); } void FocusControl::addFocusFront(WinClient &client) { m_focused_list.pushFront(client); m_creation_order_list.pushBack(client); } void FocusControl::addFocusWinBack(Focusable &win) { m_focused_win_list.pushBack(win); m_creation_order_win_list.pushBack(win); } void FocusControl::addFocusWinFront(Focusable &win) { m_focused_win_list.pushFront(win); m_creation_order_win_list.pushBack(win); } // move all clients in given window to back of focused list void FocusControl::setFocusBack(FluxboxWindow &fbwin) { // do nothing if there are no windows open // don't change focus order while cycling if (m_focused_list.empty() || s_reverting) return; m_focused_win_list.moveToBack(fbwin); // we need to move its clients to the back while preserving their order Focusables list = m_focused_list.clientList(); Focusables::iterator it = list.begin(), it_end = list.end(); for (; it != it_end; ++it) { if ((*it)->fbwindow() == &fbwin) m_focused_list.moveToBack(**it); } } void FocusControl::stopCyclingFocus() { // nothing to do if (m_cycling_list == 0) return; m_cycling_last = 0; m_cycling_list = 0; // put currently focused window to top if (s_focused_window) { setScreenFocusedWindow(*s_focused_window); if (s_focused_fbwindow) s_focused_fbwindow->raise(); } else revertFocus(m_screen); } /** * Used to find out which window was last focused on the given workspace * If workspace is outside the ID range, then the absolute last focused window * is given. */ Focusable *FocusControl::lastFocusedWindow(int workspace) { if (m_screen.isShuttingdown()) return 0; if (workspace < 0 || workspace >= (int) m_screen.numberOfWorkspaces()) return m_focused_list.clientList().front(); #ifdef XINERAMA int cur_head = focusSameHead() ? m_screen.getCurrHead() : (-1); if(cur_head != -1) { FluxboxWindow *fbwindow = focusedFbWindow(); if(fbwindow && fbwindow->isMoving()) { cur_head = -1; } } #endif // XINERAMA Focusables::iterator it = m_focused_list.clientList().begin(); Focusables::iterator it_end = m_focused_list.clientList().end(); for (; it != it_end; ++it) { if ((*it)->fbwindow() && (*it)->acceptsFocus() && (*it)->fbwindow()->winClient().validateClient() && #ifdef XINERAMA ( (cur_head == -1) || ((*it)->fbwindow()->getOnHead() == cur_head) ) && #endif // XINERAMA ((((int)(*it)->fbwindow()->workspaceNumber()) == workspace || (*it)->fbwindow()->isStuck()) && !(*it)->fbwindow()->isIconic())) return *it; } return 0; } /** * Used to find out which window was last active in the given group * If ignore_client is given, it excludes that client. * Stuck, iconic etc don't matter within a group */ WinClient *FocusControl::lastFocusedWindow(FluxboxWindow &group, WinClient *ignore_client) { if (m_focused_list.empty() || m_screen.isShuttingdown()) return 0; Focusables::iterator it = m_focused_list.clientList().begin(); Focusables::iterator it_end = m_focused_list.clientList().end(); for (; it != it_end; ++it) { if (((*it)->fbwindow() == &group) && (*it) != ignore_client) return dynamic_cast(*it); } return 0; } void FocusControl::setScreenFocusedWindow(WinClient &win_client) { // raise newly focused window to the top of the focused list // don't change the order if we're cycling or shutting down if (!isCycling() && !m_screen.isShuttingdown() && !s_reverting) { m_focused_list.moveToFront(win_client); if (win_client.fbwindow()) m_focused_win_list.moveToFront(*win_client.fbwindow()); } } void FocusControl::setFocusModel(FocusModel model) { m_focus_model = model; } void FocusControl::setTabFocusModel(TabFocusModel model) { m_tab_focus_model = model; } void FocusControl::dirFocus(FluxboxWindow &win, FocusDir dir) { // change focus to the window in direction dir from the given window // we scan through the list looking for the window that is "closest" // in the given direction FluxboxWindow *foundwin = 0; int weight = 999999, exposure = 0; // extreme values int borderW = win.frame().window().borderWidth(), top = win.y() + borderW, bottom = win.y() + win.height() + borderW, left = win.x() + borderW, right = win.x() + win.width() + borderW; Workspace::Windows &wins = m_screen.currentWorkspace()->windowList(); Workspace::Windows::iterator it = wins.begin(); for (; it != wins.end(); ++it) { if ((*it) == &win || (*it)->isIconic() || (*it)->isFocusHidden() || !(*it)->acceptsFocus()) continue; // skip self // we check things against an edge, and within the bounds (draw a picture) int edge=0, upper=0, lower=0, oedge=0, oupper=0, olower=0; int otop = (*it)->y() + borderW, // 2 * border = border on each side obottom = (*it)->y() + (*it)->height() + borderW, oleft = (*it)->x() + borderW, // 2 * border = border on each side oright = (*it)->x() + (*it)->width() + borderW; // check if they intersect switch (dir) { case FOCUSUP: edge = obottom; oedge = bottom; upper = left; oupper = oleft; lower = right; olower = oright; break; case FOCUSDOWN: edge = top; oedge = otop; upper = left; oupper = oleft; lower = right; olower = oright; break; case FOCUSLEFT: edge = oright; oedge = right; upper = top; oupper = otop; lower = bottom; olower = obottom; break; case FOCUSRIGHT: edge = left; oedge = oleft; upper = top; oupper = otop; lower = bottom; olower = obottom; break; } if (oedge < edge) continue; // not in the right direction if (olower <= upper || oupper >= lower) { // outside our horz bounds, get a heavy weight penalty int myweight = 100000 + oedge - edge + abs(upper-oupper)+abs(lower-olower); if (myweight < weight) { foundwin = *it; exposure = 0; weight = myweight; } } else if ((oedge - edge) < weight) { foundwin = *it; weight = oedge - edge; exposure = ((lower < olower)?lower:olower) - ((upper > oupper)?upper:oupper); } else if (foundwin && oedge - edge == weight) { int myexp = ((lower < olower)?lower:olower) - ((upper > oupper)?upper:oupper); if (myexp > exposure) { foundwin = *it; // weight is same exposure = myexp; } } // else not improvement } if (foundwin) foundwin->focus(); } void FocusControl::ignoreAtPointer(bool force) { int ignore_i, ignore_x, ignore_y; unsigned int ignore_ui; Window ignore_w; XQueryPointer(m_screen.rootWindow().display(), m_screen.rootWindow().window(), &ignore_w, &ignore_w, &ignore_x, &ignore_y, &ignore_i, &ignore_i, &ignore_ui); this->ignoreAt(ignore_x, ignore_y, force); } void FocusControl::ignoreAt(int x, int y, bool force) { if (force || this->focusModel() == MOUSEFOCUS) { m_ignore_mouse_x = x; m_ignore_mouse_y = y; } } void FocusControl::ignoreCancel() { m_ignore_mouse_x = m_ignore_mouse_y = -1; } bool FocusControl::isIgnored(int x, int y) { return x == m_ignore_mouse_x && y == m_ignore_mouse_y; } void FocusControl::removeClient(WinClient &client) { if (client.screen().isShuttingdown()) return; if (isCycling() && m_cycling_window != m_cycling_list->clientList().end() && *m_cycling_window == &client) { m_cycling_window = m_cycling_list->clientList().end(); stopCyclingFocus(); } else if (m_cycling_last == &client) m_cycling_last = 0; m_focused_list.remove(client); m_creation_order_list.remove(client); client.screen().clientListSig().emit(client.screen()); } void FocusControl::removeWindow(Focusable &win) { if (win.screen().isShuttingdown()) return; if (isCycling() && m_cycling_window != m_cycling_list->clientList().end() && *m_cycling_window == &win) { m_cycling_window = m_cycling_list->clientList().end(); stopCyclingFocus(); } m_focused_win_list.remove(win); m_creation_order_win_list.remove(win); win.screen().clientListSig().emit(win.screen()); } void FocusControl::shutdown() { // restore windows backwards so they get put back correctly on restart Focusables::reverse_iterator it = m_focused_list.clientList().rbegin(); for (; it != m_focused_list.clientList().rend(); ++it) { WinClient *client = dynamic_cast(*it); if (client && client->fbwindow()) client->fbwindow()->restore(client, true); } } /** * This function is called whenever we aren't quite sure what * focus is meant to be, it'll make things right ;-) */ void FocusControl::revertFocus(BScreen &screen) { if (s_reverting || screen.isShuttingdown()) return; Focusable *next_focus = screen.focusControl().lastFocusedWindow(screen.currentWorkspaceID()); if (next_focus && next_focus->fbwindow() && next_focus->fbwindow()->isStuck()) FocusControl::s_reverting = true; // if setting focus fails, or isn't possible, fallback correctly if (!(next_focus && next_focus->focus())) { setFocusedWindow(0); // so we don't get dangling m_focused_window pointer // if there's a menu open, focus it if (FbTk::Menu::shownMenu()) FbTk::Menu::shownMenu()->grabInputFocus(); else { switch (screen.focusControl().focusModel()) { case FocusControl::MOUSEFOCUS: case FocusControl::STRICTMOUSEFOCUS: XSetInputFocus(screen.rootWindow().display(), PointerRoot, None, CurrentTime); break; case FocusControl::CLICKFOCUS: screen.rootWindow().setInputFocus(RevertToPointerRoot, CurrentTime); break; } } } FocusControl::s_reverting = false; } /* * Like revertFocus, but specifically related to this window (transients etc) * if full_revert, we fallback to a full revertFocus if we can't find anything * local to the client. * If unfocus_frame is true, we won't focus anything in the same frame * as the client. * * So, we first prefer to choose the last client in this window, and if no luck * (or unfocus_frame), then we just use the normal revertFocus on the screen. * * assumption: client has focus */ void FocusControl::unfocusWindow(WinClient &client, bool full_revert, bool unfocus_frame) { // go up the transient tree looking for a focusable window FluxboxWindow *fbwin = client.fbwindow(); if (fbwin == 0) return; // nothing more we can do BScreen &screen = fbwin->screen(); if (client.isTransient() && client.transientFor()->focus()) return; if (!unfocus_frame) { WinClient *last_focus = screen.focusControl().lastFocusedWindow(*fbwin, &client); if (last_focus && last_focus->focus()) return; } if (full_revert && s_focused_window == &client) revertFocus(screen); } void FocusControl::setFocusedWindow(WinClient *client) { if (client == s_focused_window && (!client || client->fbwindow() == s_focused_fbwindow)) return; BScreen *screen = client ? &client->screen() : 0; BScreen *old_screen = FocusControl::focusedWindow() ? &FocusControl::focusedWindow()->screen() : 0; fbdbg<<"------------------"<title().logical()<fbwindow() != s_focused_fbwindow)) s_focused_fbwindow->setFocusFlag(false); if (client && client->fbwindow() && !client->fbwindow()->isIconic()) { // screen should be ok s_focused_fbwindow = client->fbwindow(); s_focused_window = client; // update focused window s_expecting_focus = 0; s_focused_fbwindow->setCurrentClient(*client, false); // don't set inputfocus s_focused_fbwindow->setFocusFlag(true); // set focus flag } else { s_focused_window = 0; s_focused_fbwindow = 0; } // update AtomHandlers and/or other stuff... if (screen) screen->focusedWindowSig().emit(*screen, s_focused_fbwindow, s_focused_window); if (old_screen && screen != old_screen) old_screen->focusedWindowSig().emit(*old_screen, s_focused_fbwindow, s_focused_window); } ////////////////////// FocusControl RESOURCES namespace FbTk { template<> std::string FbTk::Resource::getString() const { switch (m_value) { case FocusControl::MOUSEFOCUS: return string("MouseFocus"); case FocusControl::STRICTMOUSEFOCUS: return string("StrictMouseFocus"); case FocusControl::CLICKFOCUS: return string("ClickFocus"); } // default string return string("ClickFocus"); } template<> void FbTk::Resource:: setFromString(char const *strval) { if (strcasecmp(strval, "MouseFocus") == 0) m_value = FocusControl::MOUSEFOCUS; else if (strcasecmp(strval, "StrictMouseFocus") == 0) m_value = FocusControl::STRICTMOUSEFOCUS; else if (strcasecmp(strval, "ClickToFocus") == 0) m_value = FocusControl::CLICKFOCUS; else setDefaultValue(); } template<> std::string FbTk::Resource::getString() const { switch (m_value) { case FocusControl::MOUSETABFOCUS: return string("SloppyTabFocus"); case FocusControl::CLICKTABFOCUS: return string("ClickToTabFocus"); } // default string return string("ClickToTabFocus"); } template<> void FbTk::Resource:: setFromString(char const *strval) { if (strcasecmp(strval, "SloppyTabFocus") == 0 ) m_value = FocusControl::MOUSETABFOCUS; else if (strcasecmp(strval, "ClickToTabFocus") == 0) m_value = FocusControl::CLICKTABFOCUS; else setDefaultValue(); } } // end namespace FbTk fluxbox-1.3.5/src/PaxHeaders.25974/FocusControl.hh0000644000175000017500000000013212106662425020004 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.299812462 30 ctime=1360750008.679811614 fluxbox-1.3.5/src/FocusControl.hh0000644000175000017500000001720012106662425016033 0ustar00mgmg00000000000000// FocusControl.hh // Copyright (c) 2006 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FOCUSCONTROL_HH #define FOCUSCONTROL_HH #include #include "FbTk/Resource.hh" #include "FocusableList.hh" class ClientPattern; class WinClient; class FluxboxWindow; class Focusable; class BScreen; /** * Handles window focus for a specific screen. * It also holds the static "global" focused window */ class FocusControl { public: typedef std::list Focusables; /// main focus model enum FocusModel { MOUSEFOCUS = 0, ///< focus follows mouse, but only when the mouse is moving CLICKFOCUS, ///< focus on click STRICTMOUSEFOCUS ///< focus always follows mouse, even when stationary }; /// focus model for tabs enum TabFocusModel { MOUSETABFOCUS = 0, ///< tab focus follows mouse CLICKTABFOCUS ///< tab focus on click }; /// focus direction for windows enum FocusDir { FOCUSUP, ///< window is above FOCUSDOWN, ///< window is down FOCUSLEFT, ///< window is left FOCUSRIGHT ///< window is right }; explicit FocusControl(BScreen &screen); /// cycle previous focuable void prevFocus() { cycleFocus(m_focused_list, 0, true); } /// cycle next focusable void nextFocus() { cycleFocus(m_focused_list, 0, false); } /** * Cycle focus for a set of windows. * @param winlist the windowlist to cycle through * @param pat pattern for matching focusables * @param reverse reverse the cycle order */ void cycleFocus(const FocusableList &winlist, const ClientPattern *pat = 0, bool reverse = false); void goToWindowNumber(const FocusableList &winlist, int num, const ClientPattern *pat = 0); /// sets the focused window on a screen void setScreenFocusedWindow(WinClient &win_client); /// sets the main focus model void setFocusModel(FocusModel model); /// sets tab focus model void setTabFocusModel(TabFocusModel model); /// stop cycling mode void stopCyclingFocus(); /** * Do directional focus mode. * @param win current window * @param dir direction from current window to focus. */ void dirFocus(FluxboxWindow &win, FocusDir dir); /// @return true if focus mode is mouse focus bool isMouseFocus() const { return focusModel() != CLICKFOCUS; } /// @return true if tab focus mode is mouse tab focus bool isMouseTabFocus() const { return tabFocusModel() == MOUSETABFOCUS; } /// Set the "ignore" pointer location to the current pointer location /// @param force If true, ignore even in StrictMouseFocus mode void ignoreAtPointer(bool force = false); /// Set the "ignore" pointer location to the given coordinates /// @param x Current X position of the pointer /// @param y Current Y position of the pointer /// @param force If true, ignore even in StrictMouseFocus mode void ignoreAt(int x, int y, bool force = false); /// unset the "ignore" pointer location void ignoreCancel(); /// @return true if events at the given X/Y coordinate should be ignored /// (ie, they were previously cached via one of the ignoreAt calls) bool isIgnored(int x, int y); /// @return true if cycling is in progress bool isCycling() const { return m_cycling_list != 0; } /// Appends a client to the front of the focus list void addFocusBack(WinClient &client); /// Appends a client to the front of the focus list void addFocusFront(WinClient &client); void addFocusWinBack(Focusable &win); void addFocusWinFront(Focusable &win); void setFocusBack(FluxboxWindow &fbwin); /// @return main focus model FocusModel focusModel() const { return *m_focus_model; } /// @return tab focus model TabFocusModel tabFocusModel() const { return *m_tab_focus_model; } /// @return true if newly created windows are focused bool focusNew() const { return *m_focus_new; } #ifdef XINERAMA /// @return true if focus reverts to same head only bool focusSameHead() const { return *m_focus_same_head; } #endif // XINERAMA /// @return last focused client in a specific workspace, or NULL. Focusable *lastFocusedWindow(int workspace); WinClient *lastFocusedWindow(FluxboxWindow &group, WinClient *ignore_client = 0); /// @return focus list in creation order const FocusableList &creationOrderList() const { return m_creation_order_list; } /// @return the focus list in focused order const FocusableList &focusedOrderList() const { return m_focused_list; } const FocusableList &creationOrderWinList() const { return m_creation_order_win_list; } const FocusableList &focusedOrderWinList() const { return m_focused_win_list; } /// remove client from focus list void removeClient(WinClient &client); /// remove window from focus list void removeWindow(Focusable &win); /// starts terminating this control void shutdown(); /// do fallback focus for screen if normal focus control failed. static void revertFocus(BScreen &screen); // like revertFocus, but specifically related to this window (transients etc) static void unfocusWindow(WinClient &client, bool full_revert = true, bool unfocus_frame = false); static void setFocusedWindow(WinClient *focus_to); static void setFocusedFbWindow(FluxboxWindow *focus_to) { s_focused_fbwindow = focus_to; } static void setExpectingFocus(WinClient *client) { s_expecting_focus = client; } static WinClient *focusedWindow() { return s_focused_window; } static FluxboxWindow *focusedFbWindow() { return s_focused_fbwindow; } static WinClient *expectingFocus() { return s_expecting_focus; } private: BScreen &m_screen; FbTk::Resource m_focus_model; FbTk::Resource m_tab_focus_model; FbTk::Resource m_focus_new; #ifdef XINERAMA FbTk::Resource m_focus_same_head; #endif // XINERAMA // This list keeps the order of window focusing for this screen // Screen global so it works for sticky windows too. FocusableList m_focused_list; FocusableList m_creation_order_list; FocusableList m_focused_win_list; FocusableList m_creation_order_win_list; Focusables::const_iterator m_cycling_window; const FocusableList *m_cycling_list; Focusable *m_was_iconic; WinClient *m_cycling_last; int m_ignore_mouse_x, m_ignore_mouse_y; static WinClient *s_focused_window; static FluxboxWindow *s_focused_fbwindow; static WinClient *s_expecting_focus; static bool s_reverting; }; #endif // FOCUSCONTROL_HH fluxbox-1.3.5/src/PaxHeaders.25974/WindowCmd.cc0000644000175000017500000000013212106662425017245 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.299812462 30 ctime=1360750008.679811614 fluxbox-1.3.5/src/WindowCmd.cc0000644000175000017500000000237012106662425015276 0ustar00mgmg00000000000000// WindowCmd.cc // Copyright (c) 2005 - 2006 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "WindowCmd.hh" FluxboxWindow *WindowCmd_base::s_win = 0; WinClient *WindowCmd_base::s_client = 0; fluxbox-1.3.5/src/PaxHeaders.25974/WindowCmd.hh0000644000175000017500000000013212106662425017257 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.299812462 30 ctime=1360750008.679811614 fluxbox-1.3.5/src/WindowCmd.hh0000644000175000017500000000463212106662425015313 0ustar00mgmg00000000000000// WindowCmd.hh // Copyright (c) 2005 - 2006 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef WINDOWCMD_HH #define WINDOWCMD_HH #include "FbTk/Command.hh" #include "FbTk/Accessor.hh" #include "Window.hh" #include "WinClient.hh" /// holds context for WindowCmd class WindowCmd_base { public: // some window commands (e.g. close, kill, detach) need to know which client // the command refers to, so we store it here as well, in case it is not the // current client (selected from workspace menu, for example) static void setWindow(FluxboxWindow *win) { s_win = win; s_client = (win ? &win->winClient() : 0); } static void setClient(WinClient *client) { s_client = client; s_win = (client ? client->fbwindow() : 0); } static FluxboxWindow *window() { return s_win; } static WinClient *client() { return s_client; } protected: static FluxboxWindow *s_win; static WinClient *s_client; }; /// executes action for a dynamic context set in WindowCmd_base template class WindowCmd: public WindowCmd_base, public FbTk::Command { public: typedef ReturnType (FluxboxWindow::* Action)(); WindowCmd(Action a):m_action(a) {} void execute() { if (window() != 0) (*window().*m_action)(); } private: Action m_action; }; #endif // WINDOWCMD_HH fluxbox-1.3.5/src/PaxHeaders.25974/Resources.cc0000644000175000017500000000013212106662425017324 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.295812462 30 ctime=1360750008.679811614 fluxbox-1.3.5/src/Resources.cc0000644000175000017500000001405012106662425015353 0ustar00mgmg00000000000000// Resources.cc for Fluxbox Window Manager // Copyright (c) 2004 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. // holds main resource functions #include "FbTk/StringUtil.hh" #include "FbTk/Resource.hh" #include "WinButton.hh" #include "fluxbox.hh" #include "Layer.hh" #include #include #include #ifdef HAVE_CSTRING #include #else #include #endif using std::string; using std::vector; using namespace FbTk; //----------------------------------------------------------------- //---- accessors for int, bool, and some enums with Resource ------ //----------------------------------------------------------------- namespace FbTk { template<> string FbTk::Resource:: getString() const { return FbTk::StringUtil::number2String(**this); } template<> void FbTk::Resource:: setFromString(const char* strval) { FbTk::StringUtil::extractNumber(strval, get()); } template<> string FbTk::Resource:: getString() const { return **this; } template<> void FbTk::Resource:: setFromString(const char *strval) { *this = strval; } template<> string FbTk::Resource:: getString() const { return string(**this == true ? "true" : "false"); } template<> void FbTk::Resource:: setFromString(char const *strval) { *this = (bool)!strcasecmp(strval, "true"); } template<> string FbTk::Resource >:: getString() const { string retval; for (size_t i = 0; i < m_value.size(); i++) { switch (m_value[i]) { case WinButton::SHADE: retval.append("Shade"); break; case WinButton::MINIMIZE: retval.append("Minimize"); break; case WinButton::MAXIMIZE: retval.append("Maximize"); break; case WinButton::CLOSE: retval.append("Close"); break; case WinButton::STICK: retval.append("Stick"); break; case WinButton::MENUICON: retval.append("MenuIcon"); break; case WinButton::LEFT_HALF: retval.append("LHalf"); break; case WinButton::RIGHT_HALF: retval.append("RHalf"); break; default: break; } retval.append(" "); } return retval; } template<> void FbTk::Resource >:: setFromString(char const *strval) { vector val; StringUtil::stringtok(val, strval); //clear old values m_value.clear(); std::string v; for (size_t i = 0; i < val.size(); i++) { v = FbTk::StringUtil::toLower(val[i]); if (v == "maximize") m_value.push_back(WinButton::MAXIMIZE); else if (v == "minimize") m_value.push_back(WinButton::MINIMIZE); else if (v == "shade") m_value.push_back(WinButton::SHADE); else if (v == "stick") m_value.push_back(WinButton::STICK); else if (v == "menuicon") m_value.push_back(WinButton::MENUICON); else if (v == "close") m_value.push_back(WinButton::CLOSE); else if (v == "lhalf") m_value.push_back(WinButton::LEFT_HALF); else if (v == "rhalf") m_value.push_back(WinButton::RIGHT_HALF); } } template<> string FbTk::Resource:: getString() const { if (m_value == Fluxbox::ATTACH_AREA_TITLEBAR) return "Titlebar"; else return "Window"; } template<> void FbTk::Resource:: setFromString(char const *strval) { if (strcasecmp(strval, "Titlebar")==0) m_value= Fluxbox::ATTACH_AREA_TITLEBAR; else m_value= Fluxbox::ATTACH_AREA_WINDOW; } template<> string FbTk::Resource:: getString() const { return FbTk::StringUtil::number2String(m_value); } template<> void FbTk::Resource:: setFromString(const char *strval) { if (!FbTk::StringUtil::extractNumber(strval, m_value)) setDefaultValue(); } template<> string FbTk::Resource:: getString() const { return FbTk::StringUtil::number2String(m_value); } template<> void FbTk::Resource:: setFromString(const char *strval) { if (!FbTk::StringUtil::extractNumber(strval, m_value)) setDefaultValue(); } template<> string FbTk::Resource:: getString() const { return ::ResourceLayer::getString(m_value.getNum()); } template<> void FbTk::Resource:: setFromString(const char *strval) { string str(strval); int tempnum = ::ResourceLayer::getNumFromString(str); if (tempnum >= 0 && tempnum < ::ResourceLayer::NUM_LAYERS) m_value = tempnum; else setDefaultValue(); } template<> string FbTk::Resource:: getString() const { return FbTk::StringUtil::number2String(m_value); } template<> void FbTk::Resource:: setFromString(const char *strval) { if (!FbTk::StringUtil::extractNumber(strval, m_value)) setDefaultValue(); } } // end namespace FbTk fluxbox-1.3.5/src/PaxHeaders.25974/HeadArea.cc0000644000175000017500000000013212106662425017004 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.295812462 30 ctime=1360750008.683811614 fluxbox-1.3.5/src/HeadArea.cc0000644000175000017500000000637512106662425015046 0ustar00mgmg00000000000000// HeadArea.cc for Fluxbox Window Manager // Copyright (c) 2004 - 2006 Mathieu De Zutter (mathieu at dezutter dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "HeadArea.hh" #include "Strut.hh" #include #include HeadArea::HeadArea() : m_available_workspace_area(new Strut(0,0,0,0,0)) { } Strut *HeadArea::requestStrut(int head, int left, int right, int top, int bottom, Strut* next) { Strut *str = new Strut(head, left, right, top, bottom, next); m_strutlist.push_back(str); return str; } void HeadArea::clearStrut(Strut *str) { if (str == 0) return; // find strut and erase it std::list::iterator pos = std::find(m_strutlist.begin(), m_strutlist.end(), str); if (pos == m_strutlist.end()) { std::cerr << "clearStrut() failed because the strut was not found" << std::endl; return; } m_strutlist.erase(pos); delete str; } /// helper class for for_each in HeadArea::updateAvailableWorkspaceArea() namespace { class MaxArea { public: MaxArea(Strut &max_area):m_available_workspace_area(max_area) { } void operator ()(const Strut *str) { static int left, right, bottom, top; left = std::max(m_available_workspace_area.left(), str->left()); right = std::max(m_available_workspace_area.right(), str->right()); bottom = std::max(m_available_workspace_area.bottom(), str->bottom()); top = std::max(m_available_workspace_area.top(), str->top()); m_available_workspace_area = Strut(0, left, right, top, bottom); } private: Strut &m_available_workspace_area; }; } // end anonymous namespace bool HeadArea::updateAvailableWorkspaceArea() { // find max of left, right, top and bottom and set avaible workspace area // clear old area Strut oldarea = *(m_available_workspace_area.get()); m_available_workspace_area.reset(new Strut(0, 0, 0, 0, 0)); // calculate max area std::for_each(m_strutlist.begin(), m_strutlist.end(), MaxArea(*m_available_workspace_area.get())); // only notify if the area changed return !(oldarea == *(m_available_workspace_area.get())); } fluxbox-1.3.5/src/PaxHeaders.25974/HeadArea.hh0000644000175000017500000000013212106662425017016 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.291812462 30 ctime=1360750008.683811614 fluxbox-1.3.5/src/HeadArea.hh0000644000175000017500000000335412106662425015052 0ustar00mgmg00000000000000// HeadArea.hh for Fluxbox Window Manager // Copyright (c) 2004 Mathieu De Zutter (mathieu at dezutter.org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef HEADAREA_HH #define HEADAREA_HH #include "FbTk/NotCopyable.hh" #include #include class Strut; class HeadArea: private FbTk::NotCopyable { public: HeadArea(); Strut *requestStrut(int head, int left, int right, int top, int bottom, Strut* next = 0); void clearStrut(Strut *str); bool updateAvailableWorkspaceArea(); const Strut *availableWorkspaceArea() const { return m_available_workspace_area.get(); } private: std::auto_ptr m_available_workspace_area; std::list m_strutlist; }; #endif // HEADAREA_HH fluxbox-1.3.5/src/PaxHeaders.25974/ToggleMenu.hh0000644000175000017500000000013212106662425017432 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.291812462 30 ctime=1360750008.683811614 fluxbox-1.3.5/src/ToggleMenu.hh0000644000175000017500000000432112106662425015461 0ustar00mgmg00000000000000// FbMenu.hh for Fluxbox Window Manager // Copyright (c) 2004 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef TOGGLEMENU_HH #define TOGGLEMENU_HH #include "FbMenu.hh" /** * menu that redraws the entire menu at button release * so that each toggle item gets updated */ class ToggleMenu: public FbMenu { public: ToggleMenu(class FbTk::ThemeProxy &tm, FbTk::ImageControl &imgctrl, FbTk::Layer &layer): FbMenu(tm, imgctrl, layer) { } virtual ~ToggleMenu() {} void buttonReleaseEvent(XButtonEvent &ev) { // do redraw of other items FbMenu::buttonReleaseEvent(ev); // since this menu consist of toggle menu items // that relate to each other, we need to redraw // the items each time we get a button release event // so that the last toggled item gets redrawn as // not toggled. if (ev.window == frameWindow()) { // force full foreground update frameWindow().updateBackground(false); } clearWindow(); } }; #endif // TOGGLEMENU_HH fluxbox-1.3.5/src/PaxHeaders.25974/FocusModelMenuItem.hh0000644000175000017500000000013212106662425021070 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.291812462 30 ctime=1360750008.683811614 fluxbox-1.3.5/src/FocusModelMenuItem.hh0000644000175000017500000000603712106662425017125 0ustar00mgmg00000000000000// FocusModelMenuItem.hh for Fluxbox // Copyright (c) 2004 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FOCUSMODELMENUITEM_HH #define FOCUSMODELMENUITEM_HH #include "FbTk/RadioMenuItem.hh" #include "FbTk/RefCount.hh" namespace FbTk { template class Command; } #include "FocusControl.hh" class FocusModelMenuItem : public FbTk::RadioMenuItem { public: FocusModelMenuItem(const FbTk::FbString &label, FocusControl &focus_control, FocusControl::FocusModel model, FbTk::RefCount > &cmd): FbTk::RadioMenuItem(label, cmd), m_focus_control(focus_control), m_focusmodel(model) { setCloseOnClick(false); } bool isSelected() const { return m_focus_control.focusModel() == m_focusmodel; } void click(int button, int time, unsigned int mods) { m_focus_control.setFocusModel(m_focusmodel); FbTk::RadioMenuItem::click(button, time, mods); } private: FocusControl &m_focus_control; FocusControl::FocusModel m_focusmodel; }; class TabFocusModelMenuItem : public FbTk::RadioMenuItem { public: TabFocusModelMenuItem(const FbTk::FbString &label, FocusControl &focus_control, FocusControl::TabFocusModel model, FbTk::RefCount > &cmd): FbTk::RadioMenuItem(label, cmd), m_focus_control(focus_control), m_tabfocusmodel(model) { setCloseOnClick(false); } bool isSelected() const { return m_focus_control.tabFocusModel() == m_tabfocusmodel; } void click(int button, int time, unsigned int mods) { m_focus_control.setTabFocusModel(m_tabfocusmodel); FbTk::RadioMenuItem::click(button, time, mods); } private: FocusControl &m_focus_control; FocusControl::TabFocusModel m_tabfocusmodel; }; #endif // FOCUSMODELMENUITEM_HH fluxbox-1.3.5/src/PaxHeaders.25974/WorkspaceMenu.cc0000644000175000017500000000013212106662425020135 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.287812462 30 ctime=1360750008.683811614 fluxbox-1.3.5/src/WorkspaceMenu.cc0000644000175000017500000001272412106662425016172 0ustar00mgmg00000000000000// WorkspaceMenu.cc for Fluxbox // Copyright (c) 2004 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "WorkspaceMenu.hh" #include "Screen.hh" #include "Workspace.hh" #include "WorkspaceCmd.hh" #include "MenuCreator.hh" #include "FbTk/CommandParser.hh" #include "FbCommands.hh" #include "Layer.hh" #include "FbTk/I18n.hh" #include "FbTk/SimpleCommand.hh" #include "FbTk/MacroCommand.hh" #include "FbTk/RefCount.hh" #include "FbTk/MenuItem.hh" #include "FbTk/MenuSeparator.hh" #include "FbTk/MultiButtonMenuItem.hh" #include "FbTk/MemFun.hh" namespace { // the menu consists of (* means static) // - icons * 0 // --------------------- * 1 // - workspaces 2 // --------------------- * 3 // - new workspace * 4 // - edit workspace name * 5 // - remove last * 6 // const unsigned int IDX_AFTER_ICONS = 2; const unsigned int NR_STATIC_ITEMS = 6; void add_workspaces(WorkspaceMenu& menu, BScreen& screen) { for (size_t i = 0; i < screen.numberOfWorkspaces(); ++i) { Workspace* w = screen.getWorkspace(i); w->menu().setInternalMenu(); FbTk::MultiButtonMenuItem* submenu = new FbTk::MultiButtonMenuItem(5, FbTk::BiDiString(w->name()), &w->menu()); FbTk::RefCount > jump_cmd(new JumpToWorkspaceCmd(w->workspaceID())); submenu->setCommand(3, jump_cmd); menu.insert(submenu, i + IDX_AFTER_ICONS); } } } // end of anonymous namespace WorkspaceMenu::WorkspaceMenu(BScreen &screen): FbMenu(screen.menuTheme(), screen.imageControl(), *screen.layerManager().getLayer(ResourceLayer::MENU)) { init(screen); } void WorkspaceMenu::workspaceInfoChanged( BScreen& screen ) { while (numberOfItems() > NR_STATIC_ITEMS) { remove(IDX_AFTER_ICONS); } ::add_workspaces(*this, screen); updateMenu(); } void WorkspaceMenu::workspaceChanged(BScreen& screen) { FbTk::MenuItem *item = 0; for (unsigned int i = 0; i < screen.numberOfWorkspaces(); ++i) { item = find(i + IDX_AFTER_ICONS); if (item && item->isSelected()) { setItemSelected(i + IDX_AFTER_ICONS, false); updateMenu(); break; } } setItemSelected(screen.currentWorkspace()->workspaceID() + IDX_AFTER_ICONS, true); updateMenu(); } void WorkspaceMenu::init(BScreen &screen) { join(screen.currentWorkspaceSig(), FbTk::MemFun(*this, &WorkspaceMenu::workspaceChanged)); join(screen.workspaceCountSig(), FbTk::MemFun(*this, &WorkspaceMenu::workspaceInfoChanged)); join(screen.workspaceNamesSig(), FbTk::MemFun(*this, &WorkspaceMenu::workspaceInfoChanged)); using namespace FbTk; _FB_USES_NLS; removeAll(); setLabel(_FB_XTEXT(Workspace, MenuTitle, "Workspaces", "Title of main workspace menu")); insert(_FB_XTEXT(Menu, Icons, "Icons", "Iconic windows menu title"), MenuCreator::createMenuType("iconmenu", screen.screenNumber())); insert(new FbTk::MenuSeparator()); ::add_workspaces(*this, screen); setItemSelected(screen.currentWorkspace()->workspaceID() + IDX_AFTER_ICONS, true); RefCount > saverc_cmd(new FbCommands::SaveResources()); MacroCommand *new_workspace_macro = new MacroCommand(); RefCount > addworkspace(new SimpleCommand(screen, (SimpleCommand::Action)&BScreen::addWorkspace)); new_workspace_macro->add(addworkspace); new_workspace_macro->add(saverc_cmd); RefCount > new_workspace_cmd(new_workspace_macro); MacroCommand *remove_workspace_macro = new MacroCommand(); RefCount > rmworkspace(new SimpleCommand(screen, (SimpleCommand::Action)&BScreen::removeLastWorkspace)); remove_workspace_macro->add(rmworkspace); remove_workspace_macro->add(saverc_cmd); RefCount > remove_last_cmd(remove_workspace_macro); RefCount > start_edit(FbTk::CommandParser::instance().parse("setworkspacenamedialog")); insert(new FbTk::MenuSeparator()); insert(_FB_XTEXT(Workspace, NewWorkspace, "New Workspace", "Add a new workspace"), new_workspace_cmd); insert(_FB_XTEXT(Toolbar, EditWkspcName, "Edit current workspace name", "Edit current workspace name"), start_edit); insert(_FB_XTEXT(Workspace, RemoveLast, "Remove Last", "Remove the last workspace"), remove_last_cmd); updateMenu(); } fluxbox-1.3.5/src/PaxHeaders.25974/WorkspaceMenu.hh0000644000175000017500000000013212106662425020147 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.287812462 30 ctime=1360750008.687811614 fluxbox-1.3.5/src/WorkspaceMenu.hh0000644000175000017500000000371312106662425016202 0ustar00mgmg00000000000000// WorkspaceMenu.hh for Fluxbox // Copyright (c) 2004 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef WORKSPACEMENU_HH #define WORKSPACEMENU_HH #include "FbMenu.hh" #include "FbTk/Signal.hh" class BScreen; /** * A menu specific for workspace. * Contains some simple workspace commands * such as new/delete workspace and edit * workspace name. * It also contains client menus for all clients. */ class WorkspaceMenu: public FbMenu, private FbTk::SignalTracker { public: explicit WorkspaceMenu(BScreen &screen); virtual ~WorkspaceMenu() { } private: /// initialize menu for the screen void init(BScreen &screen); /// Called when workspace info was changed /// ( number of workspace, workspace names etc ) void workspaceInfoChanged(BScreen& screen); /// Called when workspace was switched. void workspaceChanged(BScreen& screen); }; #endif // WORKSPACEMENU_HH fluxbox-1.3.5/src/PaxHeaders.25974/ClientPattern.cc0000644000175000017500000000013212106662425020126 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.287812462 30 ctime=1360750008.687811614 fluxbox-1.3.5/src/ClientPattern.cc0000644000175000017500000004013112106662425016154 0ustar00mgmg00000000000000// ClientPattern.cc for Fluxbox Window Manager // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "ClientPattern.hh" #include "fluxbox.hh" #include "FocusControl.hh" #include "Layer.hh" #include "Screen.hh" #include "WinClient.hh" #include "Workspace.hh" #include "FbTk/StringUtil.hh" #include "FbTk/App.hh" #include "FbTk/stringstream.hh" #include "FbTk/STLUtil.hh" // use GNU extensions #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif // _GNU_SOURCE #include #include #include #include #ifdef HAVE_CSTDIO #include #else #include #endif #ifdef HAVE_CSTRING #include #else #include #endif // needed as well for index on some systems (e.g. solaris) #include using std::string; namespace { struct Name2WinProperty { const char* name; ClientPattern::WinProperty prop; }; // sorted alphabetically for 'bsearch' const Name2WinProperty name_2_winproperties[] = { { "class", ClientPattern::CLASS }, { "focushidden", ClientPattern::FOCUSHIDDEN }, { "fullscreen", ClientPattern::FULLSCREEN }, { "head", ClientPattern::HEAD }, { "iconhidden", ClientPattern::ICONHIDDEN }, { "layer", ClientPattern::LAYER }, { "maximized", ClientPattern::MAXIMIZED }, { "maximizedhorizontal", ClientPattern::HORZMAX }, { "maximizedvertical", ClientPattern::VERTMAX }, { "minimized", ClientPattern::MINIMIZED }, { "name", ClientPattern::NAME }, { "role", ClientPattern::ROLE }, { "screen", ClientPattern::SCREEN }, { "shaded", ClientPattern::SHADED }, { "stuck", ClientPattern::STUCK }, { "title", ClientPattern::TITLE }, { "transient", ClientPattern::TRANSIENT }, { "urgent", ClientPattern::URGENT }, { "workspace", ClientPattern::WORKSPACE }, { "workspacename", ClientPattern::WORKSPACENAME } }; extern "C" { int name_2_winproperty_cmp(const void* a, const void* b) { return strcmp( reinterpret_cast(a)->name, reinterpret_cast(b)->name); } } const Name2WinProperty* find_winproperty_by_name(const FbTk::FbString& name) { const Name2WinProperty key = { name.c_str(), ClientPattern::CLASS }; const Name2WinProperty* result = reinterpret_cast( bsearch(&key, name_2_winproperties, sizeof(name_2_winproperties) / sizeof(Name2WinProperty), sizeof(Name2WinProperty), name_2_winproperty_cmp)); return result; } struct Prop2String { ClientPattern::WinProperty prop; const char* str; }; Prop2String property_2_strings[] = { // sorted by 'prop' { ClientPattern::TITLE, "title" }, { ClientPattern::CLASS, "class" }, { ClientPattern::NAME, "name" }, { ClientPattern::ROLE, "role" }, { ClientPattern::TRANSIENT, "transient" }, { ClientPattern::MAXIMIZED, "maximized" }, { ClientPattern::MINIMIZED, "minimized" }, { ClientPattern::SHADED, "shaded" }, { ClientPattern::STUCK, "stuck" }, { ClientPattern::FOCUSHIDDEN, "focushidden" }, { ClientPattern::ICONHIDDEN, "iconhidden" }, { ClientPattern::WORKSPACE, "workspace" }, { ClientPattern::WORKSPACENAME, "workspacename" }, { ClientPattern::HEAD, "head" }, { ClientPattern::LAYER, "layer" }, { ClientPattern::URGENT, "urgent" }, { ClientPattern::SCREEN, "screen" }, { ClientPattern::XPROP, "@" }, { ClientPattern::FULLSCREEN, "fullscreen" }, { ClientPattern::VERTMAX, "maximizedvertical" }, { ClientPattern::HORZMAX, "maximizedhorizontal" }, }; } // end of anonymous namespace /** * This is the type of the actual pattern we want to match against * We have a "term" in the whole expression which is the full pattern * we also need to keep track of the uncompiled regular expression * for final output */ struct ClientPattern::Term { Term(const FbTk::FbString& _regstr, WinProperty _prop, bool _negate, const FbTk::FbString& _xprop) : regstr(_regstr), xpropstr(_xprop), regexp(_regstr, true), prop(_prop), negate(_negate) { xprop = XInternAtom(FbTk::App::instance()->display(), xpropstr.c_str(), False); } // (title=.*bar) or (@FOO=.*bar) FbTk::FbString regstr; // .*bar FbTk::FbString xpropstr; // @FOO=.*bar Atom xprop; // Atom of 'FOO' FbTk::RegExp regexp; // compiled version of '.*bar' WinProperty prop; bool negate; }; ClientPattern::ClientPattern(): m_matchlimit(0), m_nummatches(0) {} // parse the given pattern (to end of line) ClientPattern::ClientPattern(const char *str): m_matchlimit(0), m_nummatches(0) { /* A rough grammar of a pattern is: PATTERN ::= MATCH+ LIMIT? MATCH ::= '(' word ')' | '(' propertyname '=' word ')' LIMIT ::= '{' number '}' i.e. one or more match definitions, followed by an optional limit on the number of apps to match to Match definitions are enclosed in parentheses, and if no property name is given, then CLASSNAME is assumed. If no limit is specified, no limit is applied (i.e. limit = infinity) */ bool had_error = false; int pos = 0; string match; int err = 1; // for starting first loop while (!had_error && err > 0) { err = FbTk::StringUtil::getStringBetween(match, str + pos, '(', ')', " \t\n", true); if (err > 0) { WinProperty prop = NAME; std::string expr; std::string xprop; bool negate = false; // need to determine the property used, potential patterns: // // A) foo (short for 'title=foo') // B) foo=bar // C) foo!=bar // // D) @foo=bar (xproperty 'foo' equal to 'bar') // string propstr = match; string::size_type eq = propstr.find_first_of('='); if (eq == propstr.npos) { // A expr = "[current]"; } else { // B or C, so strip away the '=' // 'bar' expr.assign(propstr.begin() + eq + 1, propstr.end()); // 'foo' or 'foo!' propstr.resize(eq); if (propstr.rfind("!", propstr.npos, 1) != propstr.npos) { // C 'foo!' negate = true; propstr.resize(propstr.size()-1); } } if (propstr[0] != '@') { // not D const Name2WinProperty* p = find_winproperty_by_name(FbTk::StringUtil::toLower(propstr)); if (p) { prop = p->prop; } else { expr = match; } } else { // D prop = XPROP; xprop.assign(propstr, 1, propstr.size()); } had_error = !addTerm(expr, prop, negate, xprop); pos += err; } } if (pos == 0 && !had_error) { // no match terms given, this is not allowed had_error = true; } if (!had_error) { // otherwise, we check for a number string number; err = FbTk::StringUtil::getStringBetween(number, str+pos, '{', '}'); if (err > 0) { FbTk::StringUtil::extractNumber(number, m_matchlimit); pos+=err; } // we don't care if there isn't one // there shouldn't be anything else on the line match = str + pos; size_t uerr;// need a special type here uerr = match.find_first_not_of(" \t\n", pos); if (uerr != match.npos) { // found something, not good had_error = true; } } if (had_error) { FbTk::STLUtil::destroyAndClear(m_terms); } } ClientPattern::~ClientPattern() { FbTk::STLUtil::destroyAndClear(m_terms); } // return a string representation of this pattern string ClientPattern::toString() const { string result; Terms::const_iterator it = m_terms.begin(); Terms::const_iterator it_end = m_terms.end(); for (; it != it_end; ++it) { const Term& term = *(*it); result.append(" ("); result.append(property_2_strings[term.prop].str); if (term.prop == XPROP) result.append(term.xpropstr); result.append(term.negate ? "!=" : "="); result.append(term.regstr); result.append(")"); } if (m_matchlimit > 0) { result.append(" {"); result.append(FbTk::StringUtil::number2String(m_matchlimit)); result.append("}"); } return result; } // does this client match this pattern? bool ClientPattern::match(const Focusable &win) const { if (m_matchlimit != 0 && m_nummatches >= m_matchlimit) return false; // already matched out // regmatch everything // currently, we use an "AND" policy for multiple terms // changing to OR would require minor modifications in this function only Terms::const_iterator it = m_terms.begin(); Terms::const_iterator it_end = m_terms.end(); for (; it != it_end; ++it) { const Term& term = *(*it); if (term.prop == XPROP) { if (!term.negate ^ ((term.regexp.match(win.getTextProperty(term.xprop))) || term.regexp.match(FbTk::StringUtil::number2String(win.getCardinalProperty(term.xprop))))) return false; } else if (term.regstr == "[current]") { WinClient *focused = FocusControl::focusedWindow(); if (term.prop == WORKSPACE) { if (!term.negate ^ (getProperty(term.prop, win) == FbTk::StringUtil::number2String(win.screen().currentWorkspaceID()))) return false; } else if (term.prop == WORKSPACENAME) { const Workspace *w = win.screen().currentWorkspace(); if (!w || (!term.negate ^ (getProperty(term.prop, win) == w->name()))) return false; } else if (!focused || (!term.negate ^ (getProperty(term.prop, win) == getProperty(term.prop, *focused)))) return false; } else if (term.prop == HEAD && term.regstr == "[mouse]") { if (!term.negate ^ (getProperty(term.prop, win) == FbTk::StringUtil::number2String(win.screen().getCurrHead()))) return false; } else if (!term.negate ^ term.regexp.match(getProperty(term.prop, win))) return false; } return true; } bool ClientPattern::dependsOnFocusedWindow() const { Terms::const_iterator it = m_terms.begin(), it_end = m_terms.end(); for (; it != it_end; ++it) { if ((*it)->prop != WORKSPACE && (*it)->prop != WORKSPACENAME && (*it)->regstr == "[current]") return true; } return false; } bool ClientPattern::dependsOnCurrentWorkspace() const { Terms::const_iterator it = m_terms.begin(), it_end = m_terms.end(); for (; it != it_end; ++it) { if (((*it)->prop == WORKSPACE || (*it)->prop == WORKSPACENAME) && (*it)->regstr == "[current]") return true; } return false; } // add an expression to match against // The first argument is a regular expression, the second is the member // function that we wish to match against. bool ClientPattern::addTerm(const FbTk::FbString &str, WinProperty prop, bool negate, const FbTk::FbString& xprop) { bool rc = false; Term* term = new Term(str, prop, negate, xprop); if (!term) return rc; if ((rc = !term->regexp.error())) { m_terms.push_back(term); } else { delete term; } return rc; } FbTk::FbString ClientPattern::getProperty(WinProperty prop, const Focusable &client) { FbTk::FbString result; // we need this for some of the window properties const FluxboxWindow *fbwin = client.fbwindow(); switch (prop) { case TITLE: result = client.title().logical(); break; case CLASS: result = client.getWMClassClass(); break; case ROLE: result = client.getWMRole(); break; case TRANSIENT: result = client.isTransient() ? "yes" : "no"; break; case MAXIMIZED: result = (fbwin && fbwin->isMaximized()) ? "yes" : "no"; break; case MINIMIZED: result = (fbwin && fbwin->isIconic()) ? "yes" : "no"; break; case FULLSCREEN: result = (fbwin && fbwin->isFullscreen()) ? "yes" : "no"; break; case VERTMAX: result = (fbwin && fbwin->isMaximizedVert()) ? "yes" : "no"; break; case HORZMAX: result = (fbwin && fbwin->isMaximizedHorz()) ? "yes" : "no"; break; case SHADED: result = (fbwin && fbwin->isShaded()) ? "yes" : "no"; break; case STUCK: result = (fbwin && fbwin->isStuck()) ? "yes" : "no"; break; case FOCUSHIDDEN: result = (fbwin && fbwin->isFocusHidden()) ? "yes" : "no"; break; case ICONHIDDEN: result = (fbwin && fbwin->isIconHidden()) ? "yes" : "no"; break; case WORKSPACE: { unsigned int wsnum = (fbwin ? fbwin->workspaceNumber() : client.screen().currentWorkspaceID()); result = FbTk::StringUtil::number2String(wsnum); break; } case WORKSPACENAME: { const Workspace *w = (fbwin ? client.screen().getWorkspace(fbwin->workspaceNumber()) : client.screen().currentWorkspace()); if (w) { result = w->name(); } break; } case HEAD: if (fbwin) { result = FbTk::StringUtil::number2String(client.screen().getHead(fbwin->fbWindow())); } break; case LAYER: if (fbwin) { result = ::ResourceLayer::getString(fbwin->layerNum()); } break; case URGENT: result = Fluxbox::instance()->attentionHandler() .isDemandingAttention(client) ? "yes" : "no"; break; case SCREEN: result = FbTk::StringUtil::number2String(client.screen().screenNumber()); break; case XPROP: break; case NAME: default: result = client.getWMClassName(); break; } return result; } bool ClientPattern::operator ==(const ClientPattern &pat) const { // we require the terms to be identical (order too) Terms::const_iterator it = m_terms.begin(); Terms::const_iterator it_end = m_terms.end(); Terms::const_iterator other_it = pat.m_terms.begin(); Terms::const_iterator other_it_end = pat.m_terms.end(); for (; it != it_end && other_it != other_it_end; ++it, ++other_it) { const Term& i = *(*it); const Term& o = *(*other_it); if (i.regstr != o.regstr || i.negate != o.negate || i.xpropstr != o.xpropstr) return false; } if (it != it_end || other_it != other_it_end) return false; return true; } fluxbox-1.3.5/src/PaxHeaders.25974/ClientPattern.hh0000644000175000017500000000013212106662425020140 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.283812462 30 ctime=1360750008.687811614 fluxbox-1.3.5/src/ClientPattern.hh0000644000175000017500000000745712106662425016204 0ustar00mgmg00000000000000// ClientPattern.hh for Fluxbox Window Manager // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // Copyright (c) 2002 Xavier Brouckaert // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef CLIENTPATTERN_HH #define CLIENTPATTERN_HH #include "FbTk/RegExp.hh" #include "FbTk/NotCopyable.hh" #include "FbTk/FbString.hh" #include class Focusable; /** * This class represents a "pattern" that we can match against a * Window based on various properties. */ class ClientPattern:private FbTk::NotCopyable { public: ClientPattern(); /** * Create the pattern from the given string as it would appear in the * apps file. the bool value returns the character at which * there was a parse problem, or -1. */ explicit ClientPattern(const char * str); ~ClientPattern(); /// @return a string representation of this pattern FbTk::FbString toString() const; enum WinProperty { TITLE = 0, CLASS, NAME, ROLE, TRANSIENT, MAXIMIZED, MINIMIZED, SHADED, STUCK, FOCUSHIDDEN, ICONHIDDEN, WORKSPACE, WORKSPACENAME, HEAD, LAYER, URGENT, SCREEN, XPROP, FULLSCREEN, VERTMAX, HORZMAX }; /// Does this client match this pattern? bool match(const Focusable &win) const; /// Does this pattern depend on the focused window? bool dependsOnFocusedWindow() const; /// Does this pattern depend on the current workspace? bool dependsOnCurrentWorkspace() const; /** * Add an expression to match against * @param str is a regular expression * @param prop is the member function that we wish to match against * @param negate is if the term should be negated * @param xprop is the name of the prop if prop is XPROP * @return false if the regexp wasn't valid */ bool addTerm(const FbTk::FbString &str, WinProperty prop, bool negate = false, const FbTk::FbString& xprop = FbTk::FbString()); void addMatch() { ++m_nummatches; } void removeMatch() { --m_nummatches; } void resetMatches() { m_nummatches = 0; } // whether this pattern has identical matching criteria bool operator ==(const ClientPattern &pat) const; /** * If there are no terms, then there is assumed to be an error * the column of the error is stored in m_matchlimit */ int error() const { return m_terms.empty() ? 1 : 0; } int error_col() const { return m_matchlimit; } static FbTk::FbString getProperty(WinProperty prop, const Focusable &client); private: struct Term; friend struct Term; typedef std::list Terms; Terms m_terms; ///< our pattern is made up of a sequence of terms, currently we "and" them all int m_matchlimit; int m_nummatches; }; #endif // CLIENTPATTERN_HH fluxbox-1.3.5/src/PaxHeaders.25974/ClientMenu.cc0000644000175000017500000000013212106662425017415 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.283812462 30 ctime=1360750008.687811614 fluxbox-1.3.5/src/ClientMenu.cc0000644000175000017500000001257612106662425015457 0ustar00mgmg00000000000000// ClientMenu.hh // Copyright (c) 2007-2008 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "ClientMenu.hh" #include "Layer.hh" #include "Screen.hh" #include "Window.hh" #include "WindowCmd.hh" #include "FocusControl.hh" #include #include "FbTk/MenuItem.hh" #include "FbTk/MemFun.hh" namespace { // anonymous class ClientMenuItem: public FbTk::MenuItem { public: ClientMenuItem(Focusable &client, ClientMenu &menu): FbTk::MenuItem(client.title(), menu), m_client(client) { m_signals.join(client.titleSig(), FbTk::MemFunSelectArg1(menu, &ClientMenu::titleChanged)); m_signals.join(client.dieSig(), FbTk::MemFun(menu, &ClientMenu::clientDied)); } void click(int button, int time, unsigned int mods) { FluxboxWindow *fbwin = m_client.fbwindow(); if (fbwin == 0) return; // this MenuItem object can get destroyed as a result of focus(), so we // must get a local copy of anything we want to use here // AFTER ~ClientMenuItem() is called. FbTk::Menu *parent = menu(); FocusControl& focus_control = m_client.screen().focusControl(); m_client.focus(); fbwin->raise(); if ((mods & ControlMask) == 0) { // Ignore any focus changes due to this menu closing // (even in StrictMouseFocus mode) focus_control.ignoreAtPointer(true); parent->hide(); } } const FbTk::BiDiString &label() const { return m_client.title(); } const FbTk::PixmapWithMask *icon() const { return m_client.screen().clientMenuUsePixmap() ? &m_client.icon() : 0; } bool isSelected() const { if (m_client.fbwindow() == 0) return false; if (m_client.fbwindow()->isFocused() == false) return false; return (&(m_client.fbwindow()->winClient()) == &m_client); } // for updating menu when receiving a signal from client Focusable *client() { return &m_client; } private: Focusable &m_client; FbTk::SignalTracker m_signals; }; } // end anonymous namespace ClientMenu::ClientMenu(BScreen &screen, Focusables &clients, bool listen_for_iconlist_changes): FbMenu(screen.menuTheme(), screen.imageControl(), *screen.layerManager().getLayer(ResourceLayer::MENU)), m_list(clients) { if (listen_for_iconlist_changes) { m_slots.join(screen.iconListSig(), FbTk::MemFun(*this, &ClientMenu::updateClientList)); } refreshMenu(); } void ClientMenu::refreshMenu() { // remove all items and then add them again removeAll(); // for each fluxboxwindow add every client in them to our clientlist Focusables::iterator win_it = m_list.begin(); Focusables::iterator win_it_end = m_list.end(); for (; win_it != win_it_end; ++win_it) { // add every client in this fluxboxwindow to menu if (typeid(*win_it) == typeid(FluxboxWindow *)) { FluxboxWindow *win = static_cast(*win_it); FluxboxWindow::ClientList::iterator client_it = win->clientList().begin(); FluxboxWindow::ClientList::iterator client_it_end = win->clientList().end(); for (; client_it != client_it_end; ++client_it) insert(new ClientMenuItem(**client_it, *this)); } else insert(new ClientMenuItem(**win_it, *this)); } updateMenu(); } namespace { ClientMenuItem* getMenuItem(ClientMenu& menu, Focusable& win) { // find the corresponding menuitem ClientMenuItem *cl_item = 0; for (size_t i = 0; i < menu.numberOfItems(); i++) { FbTk::MenuItem *item = menu.find(i); if (item && typeid(*item) == typeid(ClientMenuItem)) { cl_item = static_cast(item); if (cl_item->client() == &win) break; } } return cl_item; } } // anonymous void ClientMenu::titleChanged(Focusable& win) { // find correct menu item ClientMenuItem* cl_item = getMenuItem(*this, win); if (cl_item) themeReconfigured(); } void ClientMenu::clientDied(Focusable &win) { // find correct menu item ClientMenuItem* cl_item = getMenuItem(*this, win); // update accordingly if (cl_item) remove(cl_item->getIndex()); } fluxbox-1.3.5/src/PaxHeaders.25974/ClientMenu.hh0000644000175000017500000000013212106662425017427 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.279812462 30 ctime=1360750008.691811614 fluxbox-1.3.5/src/ClientMenu.hh0000644000175000017500000000433012106662425015456 0ustar00mgmg00000000000000// ClientMenu.hh // Copyright (c) 2007-2008 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef CLIENTMENU_HH #define CLIENTMENU_HH #include "FbMenu.hh" #include "FbTk/Signal.hh" class BScreen; class FluxboxWindow; class Focusable; /** * A menu holding a set of client menus. * @see WorkspaceMenu */ class ClientMenu: public FbMenu { public: typedef std::list Focusables; /** * @param screen the screen to show this menu on * @param client a list of clients to show in this menu * @param listen_for_iconlist_changes Listen for list changes from the \c screen. */ ClientMenu(BScreen &screen, Focusables &clients, bool listen_for_iconlist_changes); /// refresh the entire menu void refreshMenu(); /// Called when window title changed. void titleChanged(Focusable& win); /// Called when a client dies. Removes the corresponding menu item void clientDied(Focusable& win); private: void updateClientList(BScreen& screen) { refreshMenu(); } Focusables &m_list; ///< clients in the menu FbTk::SignalTracker m_slots; ///< track all the slots }; #endif // CLIENTMENU_HH fluxbox-1.3.5/src/PaxHeaders.25974/MenuCreator.cc0000644000175000017500000000013212106662425017576 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.279812462 30 ctime=1360750008.691811614 fluxbox-1.3.5/src/MenuCreator.cc0000644000175000017500000005564712106662425015646 0ustar00mgmg00000000000000// MenuCreator.cc for Fluxbox // Copyright (c) 2004-2008 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "MenuCreator.hh" #include "defaults.hh" #include "Screen.hh" #include "FbTk/CommandParser.hh" #include "fluxbox.hh" #include "Window.hh" #include "WindowCmd.hh" #include "CurrentWindowCmd.hh" #include "WindowMenuAccessor.hh" #include "ClientMenu.hh" #include "WorkspaceMenu.hh" #include "LayerMenu.hh" #include "SendToMenu.hh" #include "AlphaMenu.hh" #include "Layer.hh" #include "FbMenuParser.hh" #include "StyleMenuItem.hh" #include "RootCmdMenuItem.hh" #include "FbTk/I18n.hh" #include "FbTk/MultiButtonMenuItem.hh" #include "FbTk/BoolMenuItem.hh" #include "FbTk/RefCount.hh" #include "FbTk/MacroCommand.hh" #include "FbTk/SimpleCommand.hh" #include "FbTk/StringUtil.hh" #include "FbTk/FileUtil.hh" #include "FbTk/MenuSeparator.hh" #include "FbTk/Transparent.hh" #include #include using std::cerr; using std::endl; using std::string; using std::vector; using std::list; using std::less; using FbTk::AutoReloadHelper; namespace { FbTk::StringConvertor s_stringconvertor(FbTk::StringConvertor::ToFbString); list s_encoding_stack; list s_stacksize_stack; /** * Push the encoding onto the stack, and make it active. */ void startEncoding(const string &encoding) { // we push it regardless of whether it's valid, since we // need to stay balanced with the endEncodings. s_encoding_stack.push_back(encoding); // this won't change if it doesn't succeed s_stringconvertor.setSource(encoding); } /** * Pop the encoding from the stack, unless we are at our stacksize limit. * Restore the previous (valid) encoding. */ void endEncoding() { size_t min_size = s_stacksize_stack.back(); if (s_encoding_stack.size() <= min_size) { _FB_USES_NLS; cerr<<_FB_CONSOLETEXT(Menu, ErrorEndEncoding, "Warning: unbalanced [encoding] tags", "User menu file had unbalanced [encoding] tags")<::reverse_iterator it = s_encoding_stack.rbegin(); list::reverse_iterator it_end = s_encoding_stack.rend(); while (it != it_end && !s_stringconvertor.setSource(*it)) ++it; if (it == it_end) s_stringconvertor.setSource(""); } /* push our encoding-stacksize onto the stack */ void startFile() { if (s_encoding_stack.empty()) s_stringconvertor.setSource(""); s_stacksize_stack.push_back(s_encoding_stack.size()); } /** * Pop necessary encodings from the stack * (and endEncoding the final one) to our matching encoding-stacksize. */ void endFile() { size_t target_size = s_stacksize_stack.back(); size_t curr_size = s_encoding_stack.size(); if (target_size != curr_size) { _FB_USES_NLS; cerr<<_FB_CONSOLETEXT(Menu, ErrorEndEncoding, "Warning: unbalanced [encoding] tags", "User menu file had unbalanced [encoding] tags")< (target_size+1); --curr_size) s_encoding_stack.pop_back(); if (curr_size == (target_size+1)) endEncoding(); s_stacksize_stack.pop_back(); } void createStyleMenu(FbTk::Menu &parent, const string &label, AutoReloadHelper *reloader, const string &directory) { // perform shell style ~ home directory expansion string stylesdir(FbTk::StringUtil::expandFilename(directory)); if (!FbTk::FileUtil::isDirectory(stylesdir.c_str())) return; if (reloader) reloader->addFile(stylesdir); FbTk::Directory dir(stylesdir.c_str()); // create a vector of all the filenames in the directory // add sort it vector filelist(dir.entries()); for (size_t file_index = 0; file_index < dir.entries(); ++file_index) filelist[file_index] = dir.readFilename(); sort(filelist.begin(), filelist.end(), less()); // for each file in directory add filename and path to menu for (size_t file_index = 0; file_index < dir.entries(); file_index++) { string style(stylesdir + '/' + filelist[file_index]); // add to menu only if the file is a regular file, and not a // .file or a backup~ file if ((FbTk::FileUtil::isRegularFile(style.c_str()) && (filelist[file_index][0] != '.') && (style[style.length() - 1] != '~')) || FbTk::FileUtil::isRegularFile((style + "/theme.cfg").c_str()) || FbTk::FileUtil::isRegularFile((style + "/style.cfg").c_str())) parent.insert(new StyleMenuItem(filelist[file_index], style)); } // update menu graphics parent.updateMenu(); } void createRootCmdMenu(FbTk::Menu &parent, const string &label, const string &directory, AutoReloadHelper *reloader, const string &cmd) { // perform shell style ~ home directory expansion string rootcmddir(FbTk::StringUtil::expandFilename(directory)); if (!FbTk::FileUtil::isDirectory(rootcmddir.c_str())) return; if (reloader) reloader->addFile(rootcmddir); FbTk::Directory dir(rootcmddir.c_str()); // create a vector of all the filenames in the directory // add sort it vector filelist(dir.entries()); for (size_t file_index = 0; file_index < dir.entries(); ++file_index) filelist[file_index] = dir.readFilename(); sort(filelist.begin(), filelist.end(), less()); // for each file in directory add filename and path to menu for (size_t file_index = 0; file_index < dir.entries(); file_index++) { string rootcmd(rootcmddir+ '/' + filelist[file_index]); // add to menu only if the file is a regular file, and not a // .file or a backup~ file if ((FbTk::FileUtil::isRegularFile(rootcmd.c_str()) && (filelist[file_index][0] != '.') && (rootcmd[rootcmd.length() - 1] != '~'))) parent.insert(new RootCmdMenuItem(filelist[file_index], rootcmd, cmd)); } // update menu graphics parent.updateMenu(); } class ParseItem { public: explicit ParseItem(FbTk::Menu *menu):m_menu(menu) {} void load(FbTk::Parser &p, FbTk::StringConvertor &m_labelconvertor) { p>>m_key>>m_label>>m_cmd>>m_icon; m_label.second = m_labelconvertor.recode(m_label.second); } const string &icon() const { return m_icon.second; } const string &command() const { return m_cmd.second; } const string &label() const { return m_label.second; } const string &key() const { return m_key.second; } FbTk::Menu *menu() { return m_menu; } private: FbTk::Parser::Item m_key, m_label, m_cmd, m_icon; FbTk::Menu *m_menu; }; class MenuContext: public LayerObject { public: void moveToLayer(int layer_number) { if (FbMenu::window() == 0) return; FbMenu::window()->moveToLayer(layer_number); } int layerNumber() const { if (FbMenu::window() == 0) return -1; return FbMenu::window()->layerItem().getLayerNum(); } }; void translateMenuItem(FbTk::Parser &parse, ParseItem &item, FbTk::StringConvertor &labelconvertor, AutoReloadHelper *reloader); void parseMenu(FbTk::Parser &pars, FbTk::Menu &menu, FbTk::StringConvertor &label_convertor, AutoReloadHelper *reloader) { ParseItem pitem(&menu); while (!pars.eof()) { pitem.load(pars, label_convertor); if (pitem.key() == "end") return; translateMenuItem(pars, pitem, label_convertor, reloader); } } void translateMenuItem(FbTk::Parser &parse, ParseItem &pitem, FbTk::StringConvertor &labelconvertor, AutoReloadHelper *reloader) { if (pitem.menu() == 0) throw string("translateMenuItem: We must have a menu in ParseItem!"); FbTk::Menu &menu = *pitem.menu(); const string &str_key = pitem.key(); const string &str_cmd = pitem.command(); const string &str_label = pitem.label(); const int screen_number = menu.screenNumber(); _FB_USES_NLS; if (str_key == "end") { return; } else if (str_key == "nop") { int menuSize = menu.insert(str_label); menu.setItemEnabled(menuSize-1, false); } else if (str_key == "icons") { FbTk::Menu *submenu = MenuCreator::createMenuType("iconmenu", menu.screenNumber()); if (submenu == 0) return; if (str_label.empty()) menu.insert(_FB_XTEXT(Menu, Icons, "Icons", "Iconic windows menu title")); else menu.insert(str_label, submenu); } else if (str_key == "exit") { // exit FbTk::RefCount > exit_cmd(FbTk::CommandParser::instance().parse("exit")); if (str_label.empty()) menu.insert(_FB_XTEXT(Menu, Exit, "Exit", "Exit Command"), exit_cmd); else menu.insert(str_label, exit_cmd); } else if (str_key == "exec") { // execute and hide menu FbTk::RefCount > exec_cmd(FbTk::CommandParser::instance().parse("exec " + str_cmd)); menu.insert(str_label, exec_cmd); } else if (str_key == "macrocmd") { FbTk::RefCount > macro_cmd(FbTk::CommandParser::instance().parse("macrocmd " + str_cmd)); menu.insert(str_label, macro_cmd); } else if (str_key == "style") { // style menu.insert(new StyleMenuItem(str_label, str_cmd)); } else if (str_key == "config") { BScreen *screen = Fluxbox::instance()->findScreen(screen_number); if (screen != 0) menu.insert(str_label, &screen->configMenu()); } // end of config else if (str_key == "include") { // include // this will make sure we dont get stuck in a loop static size_t safe_counter = 0; if (safe_counter > 10) return; safe_counter++; string newfile = FbTk::StringUtil::expandFilename(str_label); if (FbTk::FileUtil::isDirectory(newfile.c_str())) { // inject every file in this directory into the current menu FbTk::Directory dir(newfile.c_str()); vector filelist(dir.entries()); for (size_t file_index = 0; file_index < dir.entries(); ++file_index) filelist[file_index] = dir.readFilename(); sort(filelist.begin(), filelist.end(), less()); for (size_t file_index = 0; file_index < dir.entries(); file_index++) { string thisfile(newfile + '/' + filelist[file_index]); if (FbTk::FileUtil::isRegularFile(thisfile.c_str()) && (filelist[file_index][0] != '.') && (thisfile[thisfile.length() - 1] != '~')) { MenuCreator::createFromFile(thisfile, menu, reloader, false); } } } else { // inject this file into the current menu MenuCreator::createFromFile(newfile, menu, reloader, false); } safe_counter--; } // end of include else if (str_key == "submenu") { FbTk::Menu *submenu = MenuCreator::createMenu("", screen_number); if (submenu == 0) return; if (!str_cmd.empty()) submenu->setLabel(str_cmd); else submenu->setLabel(str_label); parseMenu(parse, *submenu, labelconvertor, reloader); submenu->updateMenu(); menu.insert(str_label, submenu); } // end of submenu else if (str_key == "stylesdir" || str_key == "stylesmenu") { createStyleMenu(menu, str_label, reloader, str_key == "stylesmenu" ? str_cmd : str_label); } // end of stylesdir else if (str_key == "themesdir" || str_key == "themesmenu") { createStyleMenu(menu, str_label, reloader, str_key == "themesmenu" ? str_cmd : str_label); } // end of themesdir else if (str_key == "wallpapers" || str_key == "wallpapermenu" || str_key == "rootcommands") { createRootCmdMenu(menu, str_label, str_label, reloader, str_cmd == "" ? realProgramName("fbsetbg") : str_cmd); } // end of wallpapers else if (str_key == "workspaces") { BScreen *screen = Fluxbox::instance()->findScreen(screen_number); if (screen != 0) { screen->workspaceMenu().setInternalMenu(); menu.insert(str_label, &screen->workspaceMenu()); } } else if (str_key == "separator") { menu.insert(new FbTk::MenuSeparator()); } else if (str_key == "encoding") { startEncoding(str_cmd); } else if (str_key == "endencoding") { endEncoding(); } else if (!MenuCreator::createWindowMenuItem(str_key, str_label, menu)) { // if we didn't find any special menu item we try with command parser // we need to attach command to arguments so command parser can parse it string line = str_key + " " + str_cmd; FbTk::RefCount > command(FbTk::CommandParser::instance().parse(line)); if (command != 0) { // special NLS default labels if (str_label.empty()) { if (str_key == "reconfig" || str_key == "reconfigure") { menu.insert(_FB_XTEXT(Menu, Reconfigure, "Reload Config", "Reload all the configs"), command); return; } else if (str_key == "restart") { menu.insert(_FB_XTEXT(Menu, Restart, "Restart", "Restart Command"), command); return; } } menu.insert(str_label, command); } } if (menu.numberOfItems() != 0) { FbTk::MenuItem *item = menu.find(menu.numberOfItems() - 1); if (item != 0 && !pitem.icon().empty()) item->setIcon(pitem.icon(), menu.screenNumber()); } } bool getStart(FbMenuParser &parser, string &label, FbTk::StringConvertor &labelconvertor) { ParseItem pitem(0); while (!parser.eof()) { // get first begin line pitem.load(parser, labelconvertor); if (pitem.key() == "begin") { break; } } if (parser.eof()) return false; label = pitem.label(); return true; } } // end of anonymous namespace FbMenu *MenuCreator::createMenu(const string &label, int screen_number) { BScreen *screen = Fluxbox::instance()->findScreen(screen_number); if (screen == 0) return 0; FbMenu *menu = new FbMenu(screen->menuTheme(), screen->imageControl(), *screen->layerManager().getLayer(ResourceLayer::MENU)); if (!label.empty()) menu->setLabel(label); return menu; } bool MenuCreator::createFromFile(const string &filename, FbTk::Menu &inject_into, AutoReloadHelper *reloader, bool begin) { string real_filename = FbTk::StringUtil::expandFilename(filename); FbMenuParser parser(real_filename); if (!parser.isLoaded()) return false; startFile(); if (begin) { string label; if (!getStart(parser, label, s_stringconvertor)) { endFile(); return false; } inject_into.setLabel(label); } // save menu filename, so we can check if it changes if (reloader) reloader->addFile(real_filename); parseMenu(parser, inject_into, s_stringconvertor, reloader); endFile(); return true; } FbMenu *MenuCreator::createMenuType(const string &type, int screen_num) { BScreen *screen = Fluxbox::instance()->findScreen(screen_num); if (screen == 0) return 0; if (type == "iconmenu") return new ClientMenu(*screen, screen->iconList(), true); // listen to icon list changes else if (type == "workspacemenu") return new WorkspaceMenu(*screen); return 0; } bool MenuCreator::createWindowMenuItem(const string &type, const string &label, FbTk::Menu &menu) { typedef FbTk::RefCount > RefCmd; _FB_USES_NLS; static MenuContext context; if (type == "shade") { static WindowMenuAccessor res(&FluxboxWindow::isShaded, &FluxboxWindow::setShaded, false); menu.insert(new FbTk::BoolMenuItem( label.empty()?_FB_XTEXT(Windowmenu, Shade, "Shade", "Shade the window"):label, res)); } else if (type == "maximize") { RefCmd maximize_cmd(new WindowCmd(&FluxboxWindow::maximizeFull)); RefCmd maximize_vert_cmd(new WindowCmd(&FluxboxWindow::maximizeVertical)); RefCmd maximize_horiz_cmd(new WindowCmd(&FluxboxWindow::maximizeHorizontal)); FbTk::MultiButtonMenuItem *maximize_item = new FbTk::MultiButtonMenuItem(3, label.empty()? _FB_XTEXT(Windowmenu, Maximize, "Maximize", "Maximize the window"): label); // create maximize item with: // button1: Maximize normal // button2: Maximize Vertical // button3: Maximize Horizontal maximize_item->setCommand(1, maximize_cmd); maximize_item->setCommand(2, maximize_vert_cmd); maximize_item->setCommand(3, maximize_horiz_cmd); menu.insert(maximize_item); } else if (type == "iconify") { static WindowMenuAccessor res(&FluxboxWindow::isIconic, &FluxboxWindow::setIconic, false); menu.insert(new FbTk::BoolMenuItem( label.empty() ? _FB_XTEXT(Windowmenu, Iconify, "Iconify", "Iconify the window") : label, res)); } else if (type == "close") { RefCmd close_cmd(new WindowCmd(&FluxboxWindow::close)); menu.insert(label.empty() ? _FB_XTEXT(Windowmenu, Close, "Close", "Close the window") : label, close_cmd); } else if (type == "kill" || type == "killwindow") { RefCmd kill_cmd(new WindowCmd(&FluxboxWindow::kill)); menu.insert(label.empty() ? _FB_XTEXT(Windowmenu, Kill, "Kill", "Kill the window"): label, kill_cmd); } else if (type == "lower") { RefCmd lower_cmd(new WindowCmd(&FluxboxWindow::lower)); menu.insert( label.empty() ? _FB_XTEXT(Windowmenu, Lower, "Lower", "Lower the window"): label, lower_cmd); } else if (type == "raise") { RefCmd raise_cmd(new WindowCmd(&FluxboxWindow::raise)); menu.insert(label.empty() ? _FB_XTEXT(Windowmenu, Raise, "Raise", "Raise the window"): label, raise_cmd); } else if (type == "stick") { static WindowMenuAccessor res(&FluxboxWindow::isStuck, &FluxboxWindow::setStuck, false); menu.insert(new FbTk::BoolMenuItem( label.empty() ? _FB_XTEXT(Windowmenu, Stick, "Stick", "Stick the window"): label, res)); } else if (type == "settitledialog") { RefCmd setname_cmd(new SetTitleDialogCmd()); menu.insert(label.empty() ? _FB_XTEXT(Windowmenu, SetTitle, "Set Title", "Change the title of the window"): label, setname_cmd); #ifdef HAVE_XRENDER } else if (type == "alpha") { if (FbTk::Transparent::haveComposite() || FbTk::Transparent::haveRender()) { BScreen *screen = Fluxbox::instance()->findScreen(menu.screenNumber()); if (screen == 0) return false; FbTk::Menu *submenu = new AlphaMenu(screen->menuTheme(), screen->imageControl(), *screen->layerManager().getLayer(ResourceLayer::MENU)); submenu->disableTitle(); menu.insert(label.empty() ? _FB_XTEXT(Configmenu, Transparency, "Transparency", "Menu containing various transparency options"): label, submenu); } #endif // HAVE_XRENDER } else if (type == "extramenus") { BScreen *screen = Fluxbox::instance()->findScreen(menu.screenNumber()); BScreen::ExtraMenus::iterator it = screen->extraWindowMenus().begin(); BScreen::ExtraMenus::iterator it_end = screen->extraWindowMenus().end(); for (; it != it_end; ++it) { it->second->disableTitle(); menu.insert(it->first, it->second); } } else if (type == "sendto") { menu.insert(label.empty() ? _FB_XTEXT(Windowmenu, SendTo, "Send To...", "Send to menu item name"): label, new SendToMenu(*Fluxbox::instance()->findScreen(menu.screenNumber()))); } else if (type == "layer") { BScreen *screen = Fluxbox::instance()->findScreen(menu.screenNumber()); if (screen == 0) return false; FbTk::Menu *submenu = new LayerMenu(screen->menuTheme(), screen->imageControl(), *screen->layerManager().getLayer(ResourceLayer::MENU), &context, false); submenu->disableTitle(); menu.insert(label.empty()?_FB_XTEXT(Windowmenu, Layer, "Layer ...", "Layer menu"):label, submenu); } else if (type == "separator") { menu.insert(new FbTk::MenuSeparator()); } else return false; return true; } fluxbox-1.3.5/src/PaxHeaders.25974/MenuCreator.hh0000644000175000017500000000013212106662425017610 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.279812462 30 ctime=1360750008.691811614 fluxbox-1.3.5/src/MenuCreator.hh0000644000175000017500000000367212106662425015647 0ustar00mgmg00000000000000// MenuCreator.hh for Fluxbox // Copyright (c) 2004 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef MENUCREATOR_HH #define MENUCREATOR_HH #include "FbTk/FbString.hh" #include namespace FbTk { class AutoReloadHelper; class Menu; } class FbMenu; class FluxboxWindow; namespace MenuCreator { FbMenu *createMenu(const std::string &label, int screen_num); FbMenu *createMenuType(const std::string &label, int screen_num); bool createFromFile(const std::string &filename, FbTk::Menu &inject_into, FbTk::AutoReloadHelper *reloader = NULL, bool begin = true); bool createWindowMenuItem(const std::string &type, const std::string &label, FbTk::Menu &inject_into); }; #endif // MENUCREATOR_HH fluxbox-1.3.5/src/PaxHeaders.25974/RootCmdMenuItem.cc0000644000175000017500000000013212106662425020365 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.275812462 30 ctime=1360750008.691811614 fluxbox-1.3.5/src/RootCmdMenuItem.cc0000644000175000017500000000363312106662425016421 0ustar00mgmg00000000000000// RootCmdMenuItem.cc for Fluxbox Window Manager // Copyright (c) 2004 - 2006 Mathias Gumz (akira at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "RootCmdMenuItem.hh" #include "defaults.hh" #include "FbCommands.hh" #include "fluxbox.hh" #include "FbTk/StringUtil.hh" RootCmdMenuItem::RootCmdMenuItem(const FbTk::FbString &label, const std::string &filename, const std::string &cmd): FbTk::MenuItem(label), m_filename(filename) { std::string prog = cmd.empty() ? realProgramName("fbsetbg") : cmd; FbTk::RefCount > setwp_cmd(new FbCommands::ExecuteCmd(prog + " \"" + m_filename + "\"")); setCommand(setwp_cmd); setToggleItem(true); setCloseOnClick(false); } bool RootCmdMenuItem::isSelected() const { return Fluxbox::instance()->getStyleFilename() == m_filename; } fluxbox-1.3.5/src/PaxHeaders.25974/RootCmdMenuItem.hh0000644000175000017500000000013212106662425020377 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.275812462 30 ctime=1360750008.691811614 fluxbox-1.3.5/src/RootCmdMenuItem.hh0000644000175000017500000000306112106662425016426 0ustar00mgmg00000000000000// RootCmdMenuItem.hh for Fluxbox Window Manager // Copyright (c) 2004 - 2006 Mathias Gumz (akira at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef ROOTCMDMENUITEM_HH #define ROOTCMDMENUITEM_HH #include "FbTk/MenuItem.hh" class RootCmdMenuItem: public FbTk::MenuItem { public: RootCmdMenuItem(const FbTk::FbString &label, const std::string &filename, const std::string &cmd = ""); bool isSelected() const; private: const std::string m_filename; }; #endif // ROOTCMDMENUITEM_HH fluxbox-1.3.5/src/PaxHeaders.25974/StyleMenuItem.cc0000644000175000017500000000013212106662425020116 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.275812462 30 ctime=1360750008.695811614 fluxbox-1.3.5/src/StyleMenuItem.cc0000644000175000017500000000361712106662425016154 0ustar00mgmg00000000000000// StyleMenuItem.cc for Fluxbox Window Manager // Copyright (c) 2004 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "StyleMenuItem.hh" #include "FbCommands.hh" #include "fluxbox.hh" #include "FbTk/StringUtil.hh" StyleMenuItem::StyleMenuItem(const FbTk::FbString &label, const std::string &filename): FbTk::RadioMenuItem(label), m_filename(filename) { // perform shell style ~ home directory expansion // and insert style FbTk::RefCount > setstyle_cmd(new FbCommands:: SetStyleCmd(m_filename)); setCommand(setstyle_cmd); setToggleItem(true); setCloseOnClick(false); } bool StyleMenuItem::isSelected() const { return Fluxbox::instance()->getStyleFilename() == m_filename; } fluxbox-1.3.5/src/PaxHeaders.25974/StyleMenuItem.hh0000644000175000017500000000013212106662425020130 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.271812462 30 ctime=1360750008.695811614 fluxbox-1.3.5/src/StyleMenuItem.hh0000644000175000017500000000307512106662425016164 0ustar00mgmg00000000000000// StyleMenuItem.hh for Fluxbox Window Manager // Copyright (c) 2004 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef STYLEMENUITEM_HH #define STYLEMENUITEM_HH #include "FbTk/RadioMenuItem.hh" class StyleMenuItem: public FbTk::RadioMenuItem { public: StyleMenuItem(const FbTk::FbString &label, const std::string &filename); bool isSelected() const; private: const std::string m_filename; }; #endif // STYLEMENUITEM_HH fluxbox-1.3.5/src/PaxHeaders.25974/FbMenuParser.cc0000644000175000017500000000013212106662425017703 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.271812462 30 ctime=1360750008.695811614 fluxbox-1.3.5/src/FbMenuParser.cc0000644000175000017500000000724712106662425015744 0ustar00mgmg00000000000000// FbMenuParser.cc for Fluxbox // Copyright (c) 2004 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "FbMenuParser.hh" #include "FbTk/StringUtil.hh" bool FbMenuParser::open(const std::string &filename) { m_file.open(filename.c_str()); m_curr_pos = 0; m_row = 0; m_curr_token = DONE; return isLoaded(); } FbTk::Parser &FbMenuParser::operator >> (FbTk::Parser::Item &out) { if (eof()) { out = FbTk::Parser::s_empty_item; return *this; } if (m_curr_line.empty()) m_curr_token = DONE; // try next line char first = '['; char second = ']'; switch (m_curr_token) { case TYPE: first = '['; second = ']'; break; case NAME: first = '('; second = ')'; break; case ARGUMENT: first = '{'; second = '}'; break; case ICON: first = '<'; second = '>'; break; case DONE: // get new line and call this again if (!nextLine()) { out = FbTk::Parser::s_empty_item; return *this; } return (*this)>>out; break; } std::string key; int err = FbTk::StringUtil:: getStringBetween(key, m_curr_line.c_str() + m_curr_pos, first, second); if (err <= 0) { if (m_curr_token == TYPE) m_curr_token = NAME; else if (m_curr_token == NAME) m_curr_token = ARGUMENT; else if (m_curr_token == ARGUMENT) m_curr_token = ICON; else if (m_curr_token == ICON) m_curr_token = DONE; out = FbTk::Parser::s_empty_item; return *this; } m_curr_pos += err; // update current position in current line // set value out.second = key; // set type and next token to be read switch (m_curr_token) { case TYPE: out.first = "TYPE"; m_curr_token = NAME; break; case NAME: out.first = "NAME"; m_curr_token = ARGUMENT; break; case ARGUMENT: out.first = "ARGUMENT"; m_curr_token = ICON; break; case ICON: out.first = "ICON"; m_curr_token = DONE; break; case DONE: break; } return *this; } FbTk::Parser::Item FbMenuParser::nextItem() { FbTk::Parser::Item item; (*this)>>item; return item; } bool FbMenuParser::nextLine() { if (!std::getline(m_file, m_curr_line)) return false; m_row++; m_curr_pos = 0; m_curr_token = TYPE; return true; } fluxbox-1.3.5/src/PaxHeaders.25974/FbMenuParser.hh0000644000175000017500000000013212106662425017715 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.267812462 30 ctime=1360750008.695811614 fluxbox-1.3.5/src/FbMenuParser.hh0000644000175000017500000000430712106662425015750 0ustar00mgmg00000000000000// FbMenuParser.hh for Fluxbox // Copyright (c) 2004 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBMENUPARSER_HH #define FBMENUPARSER_HH #include "FbTk/Parser.hh" #include class FbMenuParser: public FbTk::Parser { public: FbMenuParser():m_row(0), m_curr_pos(0), m_curr_token(TYPE) {} FbMenuParser(const std::string &filename):m_row(0), m_curr_pos(0), m_curr_token(TYPE) { open(filename); } ~FbMenuParser() { close(); } bool open(const std::string &filename); void close() { m_file.close(); } FbTk::Parser &operator >> (FbTk::Parser::Item &out); FbTk::Parser::Item nextItem(); bool isLoaded() const { return m_file.is_open(); } bool eof() const { return m_file.eof(); } int row() const { return m_row; } std::string line() const { return m_curr_line; } private: bool nextLine(); mutable std::ifstream m_file; int m_row; int m_curr_pos; std::string m_curr_line; enum Object {TYPE, NAME, ARGUMENT, ICON, DONE} m_curr_token; }; #endif // FBMENUPARSER_HH fluxbox-1.3.5/src/PaxHeaders.25974/AlphaMenu.cc0000644000175000017500000000013212106662425017224 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.267812462 30 ctime=1360750008.699811614 fluxbox-1.3.5/src/AlphaMenu.cc0000644000175000017500000000711312106662425015255 0ustar00mgmg00000000000000// AlphaMenu.cc for Fluxbox // Copyright (c) 2007 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "AlphaMenu.hh" #include "Window.hh" #include "Screen.hh" #include "Workspace.hh" #include "fluxbox.hh" #include "Layer.hh" #include "FbTk/IntMenuItem.hh" #include "FbTk/I18n.hh" #include "Window.hh" AlphaMenu::AlphaMenu(FbTk::ThemeProxy &tm, FbTk::ImageControl &imgctrl, FbTk::Layer &layer): ToggleMenu(tm, imgctrl, layer) { static WindowMenuAccessor m_focused_alpha((WindowMenuAccessor::Getter)&FluxboxWindow::getFocusedAlpha, (WindowMenuAccessor::Setter)&FluxboxWindow::setFocusedAlpha, 255); static WindowMenuAccessor m_unfocused_alpha((WindowMenuAccessor::Getter)&FluxboxWindow::getUnfocusedAlpha, (WindowMenuAccessor::Setter)&FluxboxWindow::setUnfocusedAlpha, 255); _FB_USES_NLS; // build menu... const FbTk::FbString focused_alpha_label = _FB_XTEXT(Configmenu, FocusedAlpha, "Focused Window Alpha", "Transparency level of the focused window"); m_focused_alpha_item = new FbTk::IntMenuItem(focused_alpha_label, m_focused_alpha, 0, 255, *this); insert(m_focused_alpha_item); const FbTk::FbString unfocused_alpha_label = _FB_XTEXT(Configmenu, UnfocusedAlpha, "Unfocused Window Alpha", "Transparency level of unfocused windows"); m_unfocused_alpha_item = new FbTk::IntMenuItem(unfocused_alpha_label, m_unfocused_alpha, 0, 255, *this); insert(m_unfocused_alpha_item); const FbTk::FbString usedefault_label = _FB_XTEXT(Windowmenu, DefaultAlpha, "Use Defaults", "Default transparency settings for this window"); FbTk::MenuItem *usedefault_item = new AlphaMenuSelectItem(usedefault_label, *this); insert(usedefault_item); updateMenu(); } void AlphaMenu::move(int x, int y) { FbTk::Menu::move(x, y); if (isVisible()) { m_focused_alpha_item->updateLabel(); m_unfocused_alpha_item->updateLabel(); frameWindow().updateBackground(false); FbTk::Menu::clearWindow(); } } void AlphaMenu::show() { m_focused_alpha_item->updateLabel(); m_unfocused_alpha_item->updateLabel(); frameWindow().updateBackground(false); FbTk::Menu::clearWindow(); FbTk::Menu::show(); } fluxbox-1.3.5/src/PaxHeaders.25974/AlphaMenu.hh0000644000175000017500000000013212106662425017236 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.267812462 30 ctime=1360750008.699811614 fluxbox-1.3.5/src/AlphaMenu.hh0000644000175000017500000000504612106662425015272 0ustar00mgmg00000000000000// AlphaMenu.hh for Fluxbox // Copyright (c) 2007 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef ALPHAMENU_HH #define ALPHAMENU_HH #include "ToggleMenu.hh" #include "WindowCmd.hh" #include "WindowMenuAccessor.hh" #include "FbTk/MenuItem.hh" namespace FbTk { class IntMenuItem; } class AlphaMenu : public ToggleMenu { public: AlphaMenu(FbTk::ThemeProxy &tm, FbTk::ImageControl &imgctrl, FbTk::Layer &layer); // we override these to update the menu when the active window changes void move(int x, int y); void show(); private: FbTk::IntMenuItem* m_focused_alpha_item; FbTk::IntMenuItem* m_unfocused_alpha_item; }; class AlphaMenuSelectItem : public FbTk::MenuItem { public: AlphaMenuSelectItem(const FbTk::FbString &label, AlphaMenu &parent): FbTk::MenuItem(label), m_parent(parent) { setToggleItem(true); setCloseOnClick(false); } bool isSelected() const { static ConstWindowMenuAccessor s_is_default(&FluxboxWindow::getUseDefaultAlpha, true); return s_is_default; } void click(int button, int time, unsigned int mods) { static WindowCmd s_set_default(&FluxboxWindow::setDefaultAlpha); s_set_default.execute(); m_parent.show(); // cheat to refreshing the window FbTk::MenuItem::click(button, time, mods); } private: AlphaMenu &m_parent; }; #endif // ALPHAMENU_HH fluxbox-1.3.5/src/PaxHeaders.25974/SendToMenu.cc0000644000175000017500000000013212106662425017373 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.263812462 30 ctime=1360750008.699811614 fluxbox-1.3.5/src/SendToMenu.cc0000644000175000017500000000717312106662425015432 0ustar00mgmg00000000000000// SendToMenu.cc for Fluxbox // Copyright (c) 2003 - 2008 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "SendToMenu.hh" #include "Window.hh" #include "Screen.hh" #include "Workspace.hh" #include "fluxbox.hh" #include "Layer.hh" #include "FbTk/MultiButtonMenuItem.hh" #include "FbTk/Command.hh" #include "FbTk/MemFun.hh" class SendToCmd: public FbTk::Command { public: SendToCmd(int workspace, bool follow): m_workspace(workspace), m_follow(follow) { } void execute() { if (FbMenu::window() != 0) FbMenu::window()->screen().sendToWorkspace(m_workspace, FbMenu::window(), m_follow); } private: const int m_workspace; const bool m_follow; }; SendToMenu::SendToMenu(BScreen &screen): FbMenu(screen.menuTheme(), screen.imageControl(), *screen.layerManager().getLayer(ResourceLayer::MENU)) { // listen to: // workspace count signal // workspace names signal // current workspace signal join(screen.workspaceNamesSig(), FbTk::MemFun(*this, &SendToMenu::rebuildMenuForScreen)); join(screen.currentWorkspaceSig(), FbTk::MemFun(*this, &SendToMenu::rebuildMenuForScreen)); // setup new signal system join(screen.workspaceCountSig(), FbTk::MemFun(*this, &SendToMenu::rebuildMenuForScreen)); // no title for this menu, it should be a submenu in the window menu. disableTitle(); // setup menu items rebuildMenu(); } SendToMenu::~SendToMenu() { } void SendToMenu::rebuildMenu() { // rebuild menu removeAll(); BScreen *screen = Fluxbox::instance()->findScreen(screenNumber()); const BScreen::Workspaces &wlist = screen->getWorkspacesList(); for (size_t i = 0; i < wlist.size(); ++i) { FbTk::RefCount > sendto_cmd(new SendToCmd(i, false)); FbTk::RefCount > sendto_follow_cmd(new SendToCmd(i, true)); FbTk::MultiButtonMenuItem* item = new FbTk::MultiButtonMenuItem(3, wlist[i]->name()); item->setCommand(1, sendto_cmd); item->setCommand(2, sendto_follow_cmd); item->setCommand(3, sendto_cmd); insert(item); } updateMenu(); } void SendToMenu::show() { if (FbMenu::window() != 0) { for (unsigned int i=0; i < numberOfItems(); ++i) setItemEnabled(i, true); // update the workspace for the current window setItemEnabled(FbMenu::window()->workspaceNumber(), false); updateMenu(); } FbTk::Menu::show(); } fluxbox-1.3.5/src/PaxHeaders.25974/SendToMenu.hh0000644000175000017500000000013212106662425017405 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.263812462 30 ctime=1360750008.699811614 fluxbox-1.3.5/src/SendToMenu.hh0000644000175000017500000000364312106662425015442 0ustar00mgmg00000000000000// SendToMenu.hh for Fluxbox // Copyright (c) 2003 - 2008 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef SENDTOMENU_HH #define SENDTOMENU_HH #include "FbMenu.hh" #include "FbTk/Signal.hh" class BScreen; /** * Creates the "send to menu". * Displays all the workspaces for which the current window can be sent to. */ class SendToMenu:public FbMenu, private FbTk::SignalTracker { public: /// @param screen the screen on which this menu should be created on. explicit SendToMenu(BScreen &screen); virtual ~SendToMenu(); /// @see FbTk::Menu void show(); private: /// workspace count changed on screen void rebuildMenuForScreen( BScreen& screen ) { rebuildMenu(); } /// Rebuild the menu from scratch. void rebuildMenu(); }; #endif // SENDTOMENU_HH fluxbox-1.3.5/src/PaxHeaders.25974/CommandDialog.cc0000644000175000017500000000013212106662425020050 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.263812462 30 ctime=1360750008.703811614 fluxbox-1.3.5/src/CommandDialog.cc0000644000175000017500000000674312106662425016111 0ustar00mgmg00000000000000// CommandDialog.cc for Fluxbox // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "CommandDialog.hh" #include "FbTk/CommandParser.hh" #include "FbTk/StringUtil.hh" #include "FbTk/App.hh" #include #include #include #include #include using std::string; using std::vector; using std::auto_ptr; using std::less; using std::out_of_range; CommandDialog::CommandDialog(BScreen &screen, const string &title, const string precommand) : TextDialog(screen, title), m_precommand(precommand) { } void CommandDialog::exec(const std::string &text){ // create Command from line auto_ptr > cmd(FbTk::CommandParser::instance().parse(m_precommand + text)); if (cmd.get()) cmd->execute(); // post execute if (m_postcommand != 0) m_postcommand->execute(); } void CommandDialog::tabComplete() { try { string::size_type first = m_textbox.text().find_last_not_of("ABCDEFGHIJKLMNOPQRSTUVWXYZ" "abcdefghijklmnopqrstuvwxyz" "0123456789", m_textbox.cursorPosition()); if (first == string::npos) first = 0; string prefix = FbTk::StringUtil::toLower(m_textbox.text().substr(first, m_textbox.cursorPosition())); if (prefix.empty()) { XBell(FbTk::App::instance()->display(), 0); return; } FbTk::CommandParser::CreatorMap::const_iterator it = FbTk::CommandParser::instance().creatorMap().begin(); const FbTk::CommandParser::CreatorMap::const_iterator it_end = FbTk::CommandParser::instance().creatorMap().end(); vector matches; for (; it != it_end; ++it) { if ((*it).first.find(prefix) == 0) { matches.push_back((*it).first); } } if (!matches.empty()) { // sort and apply larges match sort(matches.begin(), matches.end(), less()); m_textbox.setText(m_textbox.text() + matches[0].substr(prefix.size())); } else XBell(FbTk::App::instance()->display(), 0); } catch (out_of_range &oor) { XBell(FbTk::App::instance()->display(), 0); } } fluxbox-1.3.5/src/PaxHeaders.25974/CommandDialog.hh0000644000175000017500000000013212106662425020062 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.259812462 30 ctime=1360750008.703811614 fluxbox-1.3.5/src/CommandDialog.hh0000644000175000017500000000440312106662425016112 0ustar00mgmg00000000000000// CommandDialog.hh for Fluxbox // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef RUNCOMMANDDIALOG_HH #define RUNCOMMANDDIALOG_HH #include "TextDialog.hh" #include "FbTk/RefCount.hh" class Command; /** * Displays a fluxbox command dialog which executes fluxbox * action commands. */ class CommandDialog: public TextDialog { public: CommandDialog(BScreen &screen, const std::string &title, const std::string pre_command = ""); /** * Sets the command to be executed after the command is done. * @param postcommand the command. */ void setPostCommand(FbTk::RefCount > &postcommand) { m_postcommand = postcommand; } private: /// expand the current word, using the history as a references void tabComplete(); void exec(const std::string &string); /// command to do after the first command was issued (like reconfigure) FbTk::RefCount > m_postcommand; /// command to be used before the text (usefull for setting workspace name) const std::string m_precommand; }; #endif // SETWORKSPACENAME_HH fluxbox-1.3.5/src/PaxHeaders.25974/TextDialog.cc0000644000175000017500000000013212106662425017416 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.259812462 30 ctime=1360750008.703811614 fluxbox-1.3.5/src/TextDialog.cc0000644000175000017500000001515312106662425015452 0ustar00mgmg00000000000000// TextDialog.cc // Copyright (c) 2008 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "TextDialog.hh" #include "Screen.hh" #include "FbWinFrameTheme.hh" #include "fluxbox.hh" #include "FbTk/ImageControl.hh" #include "FbTk/EventManager.hh" #include "FbTk/KeyUtil.hh" #include #include #include using std::string; /** * This is an abstract class providing a text box dialog */ TextDialog::TextDialog(BScreen &screen, const string &title) : FbTk::FbWindow(screen.rootWindow().screenNumber(), 0, 0, 200, 1, ExposureMask), m_textbox(*this, screen.focusedWinFrameTheme()->font(), ""), m_label(*this, screen.focusedWinFrameTheme()->iconbarTheme().text().font(), title), m_gc(m_textbox), m_screen(screen), m_move_x(0), m_move_y(0), m_pixmap(0){ setWindowRole("fluxbox-dialog-text"); init(); } TextDialog::~TextDialog() { FbTk::EventManager::instance()->remove(*this); hide(); if (m_pixmap != 0) m_screen.imageControl().removeImage(m_pixmap); } void TextDialog::setText(const FbTk::BiDiString& text) { m_textbox.setText(text); } void TextDialog::show() { FbTk::FbWindow::show(); m_textbox.setInputFocus(); m_label.clear(); Fluxbox::instance()->setShowingDialog(true); // resize to correct width, which should be the width of label text // no need to truncate label text in this dialog // but if label text size < 200 we set 200 if (m_label.textWidth() < 200) return; else { resize(m_label.textWidth(), height()); updateSizes(); render(); } } void TextDialog::hide() { FbTk::FbWindow::hide(); Fluxbox::instance()->setShowingDialog(false); } void TextDialog::exposeEvent(XExposeEvent &event) { if (event.window == window()) clearArea(event.x, event.y, event.width, event.height); } void TextDialog::buttonPressEvent(XButtonEvent &event) { m_textbox.setInputFocus(); m_move_x = event.x_root - x(); m_move_y = event.y_root - y(); } void TextDialog::handleEvent(XEvent &event) { if (event.type == ConfigureNotify && event.xconfigure.window != window()) { moveResize(event.xconfigure.x, event.xconfigure.y, event.xconfigure.width, event.xconfigure.height); } else if (event.type == DestroyNotify) delete this; } void TextDialog::motionNotifyEvent(XMotionEvent &event) { int new_x = event.x_root - m_move_x; int new_y = event.y_root - m_move_y; move(new_x, new_y); } void TextDialog::keyPressEvent(XKeyEvent &event) { unsigned int state = FbTk::KeyUtil::instance().isolateModifierMask(event.state); if (state) return; KeySym ks; char keychar; XLookupString(&event, &keychar, 1, &ks, 0); if (ks == XK_Return) { exec(m_textbox.text()); delete this; } else if (ks == XK_Escape) delete this; // end this else if (ks == XK_Tab) { // try to expand a command tabComplete(); } } void TextDialog::render() { if (m_screen.focusedWinFrameTheme()->iconbarTheme().texture().type() & FbTk::Texture::PARENTRELATIVE) { if (!m_screen.focusedWinFrameTheme()->titleTexture().usePixmap()) { m_pixmap = None; m_label.setBackgroundColor(m_screen.focusedWinFrameTheme()->titleTexture().color()); } else { m_pixmap = m_screen.imageControl().renderImage(m_label.width(), m_label.height(), m_screen.focusedWinFrameTheme()->titleTexture()); m_label.setBackgroundPixmap(m_pixmap); } } else { if (!m_screen.focusedWinFrameTheme()->iconbarTheme().texture().usePixmap()) { m_pixmap = None; m_label.setBackgroundColor(m_screen.focusedWinFrameTheme()->iconbarTheme().texture().color()); } else { m_pixmap = m_screen.imageControl().renderImage(m_label.width(), m_label.height(), m_screen.focusedWinFrameTheme()->iconbarTheme().texture()); m_label.setBackgroundPixmap(m_pixmap); } } if (m_pixmap) m_screen.imageControl().removeImage(m_pixmap); } void TextDialog::init() { // setup label // we listen to motion notify too m_label.setEventMask(m_label.eventMask() | ButtonPressMask | ButtonMotionMask); m_label.setGC(m_screen.focusedWinFrameTheme()->iconbarTheme().text().textGC()); m_label.setJustify(m_screen.focusedWinFrameTheme()->iconbarTheme().text().justify()); m_label.show(); // setup text box FbTk::Color white("white", m_textbox.screenNumber()); m_textbox.setBackgroundColor(white); FbTk::Color black("black", m_textbox.screenNumber()); m_gc.setForeground(black); m_textbox.setGC(m_gc.gc()); m_textbox.show(); // setup this window setBorderWidth(m_screen.focusedWinFrameTheme()->border().width()); setBorderColor(m_screen.focusedWinFrameTheme()->border().color()); // move to center of the current head unsigned int head = m_screen.getCurrHead(); move(m_screen.getHeadX(head) + (m_screen.getHeadWidth(head) - width()) / 2, m_screen.getHeadY(head) + (m_screen.getHeadHeight(head) - height()) / 2); updateSizes(); resize(width(), m_textbox.height() + m_label.height()); render(); // we need ConfigureNotify from children FbTk::EventManager::instance()->addParent(*this, *this); } void TextDialog::updateSizes() { m_label.moveResize(0, 0, width(), m_textbox.font().height() + 2); m_textbox.moveResize(0, m_label.height(), width(), m_textbox.font().height() + 2); } fluxbox-1.3.5/src/PaxHeaders.25974/TextDialog.hh0000644000175000017500000000013212106662425017430 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.255812462 30 ctime=1360750008.703811614 fluxbox-1.3.5/src/TextDialog.hh0000644000175000017500000000421612106662425015462 0ustar00mgmg00000000000000// CommandDialog.hh // Copyright (c) 2008 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef TEXTDIALOG_HH #define TEXTDIALOG_HH #include "FbTk/TextBox.hh" #include "FbTk/TextButton.hh" #include "FbTk/GContext.hh" class BScreen; class TextDialog: public FbTk::FbWindow, public FbTk::EventHandler { public: TextDialog(BScreen &screen, const std::string &title); virtual ~TextDialog(); /// Sets the entry text. void setText(const FbTk::BiDiString& text); void show(); void hide(); void exposeEvent(XExposeEvent &event); void motionNotifyEvent(XMotionEvent &event); void buttonPressEvent(XButtonEvent &event); void handleEvent(XEvent &event); void keyPressEvent(XKeyEvent &event); protected: virtual void exec(const std::string &text) = 0; virtual void tabComplete() { } void init(); void render(); void updateSizes(); FbTk::TextBox m_textbox; //< entry field FbTk::TextButton m_label; //< text in the titlebar FbTk::GContext m_gc; BScreen &m_screen; int m_move_x, m_move_y; Pixmap m_pixmap; }; #endif // TEXTDIALOG_HH fluxbox-1.3.5/src/PaxHeaders.25974/WorkspaceCmd.cc0000644000175000017500000000013212106662425017734 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.255812462 30 ctime=1360750008.703811614 fluxbox-1.3.5/src/WorkspaceCmd.cc0000644000175000017500000004746212106662425016000 0ustar00mgmg00000000000000// WorkspaceCmd.cc for Fluxbox - an X11 Window manager // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "WorkspaceCmd.hh" #include "Layer.hh" #include "Workspace.hh" #include "Window.hh" #include "Screen.hh" #include "fluxbox.hh" #include "WinClient.hh" #include "FocusControl.hh" #include "WindowCmd.hh" #include "FbTk/KeyUtil.hh" #include "FbTk/CommandParser.hh" #include "FbTk/stringstream.hh" #include "FbTk/StringUtil.hh" #ifdef HAVE_CMATH #include #else #include #endif #include #include #include using std::string; REGISTER_COMMAND_PARSER(map, WindowListCmd::parse, void); REGISTER_COMMAND_PARSER(foreach, WindowListCmd::parse, void); FbTk::Command *WindowListCmd::parse(const string &command, const string &args, bool trusted) { FbTk::Command *cmd = 0; FbTk::Command *filter = 0; std::vector tokens; int opts; string pat; FbTk::StringUtil::stringTokensBetween(tokens, args, pat, '{', '}'); if (tokens.empty()) return 0; cmd = FbTk::CommandParser::instance().parse(tokens[0], trusted); if (!cmd) return 0; if (tokens.size() > 1) { FocusableList::parseArgs(tokens[1], opts, pat); filter = FbTk::CommandParser::instance().parse(pat, trusted); } return new WindowListCmd(FbTk::RefCount >(cmd), opts, FbTk::RefCount >(filter)); } void WindowListCmd::execute() { BScreen *screen = Fluxbox::instance()->keyScreen(); if (screen != 0) { FocusableList::Focusables win_list(FocusableList::getListFromOptions(*screen, m_opts)->clientList()); FocusableList::Focusables::iterator it = win_list.begin(), it_end = win_list.end(); // save old value, so we can restore it later WinClient *old = WindowCmd::client(); for (; it != it_end; ++it) { if (typeid(**it) == typeid(FluxboxWindow)) WindowCmd::setWindow((*it)->fbwindow()); else if (typeid(**it) == typeid(WinClient)) WindowCmd::setClient(dynamic_cast(*it)); if (!m_filter || m_filter->execute()) m_cmd->execute(); } WindowCmd::setClient(old); } } FbTk::Command *SomeCmd::parse(const string &command, const string &args, bool trusted) { FbTk::Command *boolcmd = FbTk::CommandParser::instance().parse(args, trusted); if (!boolcmd) return 0; if (command == "some") return new SomeCmd(FbTk::RefCount >(boolcmd)); return new EveryCmd(FbTk::RefCount >(boolcmd)); } REGISTER_COMMAND_PARSER(some, SomeCmd::parse, bool); REGISTER_COMMAND_PARSER(every, SomeCmd::parse, bool); bool SomeCmd::execute() { BScreen *screen = Fluxbox::instance()->keyScreen(); if (screen != 0) { FocusControl::Focusables win_list(screen->focusControl().creationOrderList().clientList()); FocusControl::Focusables::iterator it = win_list.begin(), it_end = win_list.end(); // save old value, so we can restore it later WinClient *old = WindowCmd::client(); for (; it != it_end; ++it) { WinClient *client = dynamic_cast(*it); if (!client) continue; WindowCmd::setClient(client); if (m_cmd->execute()) { WindowCmd::setClient(old); return true; } } WindowCmd::setClient(old); } return false; } bool EveryCmd::execute() { BScreen *screen = Fluxbox::instance()->keyScreen(); if (screen != 0) { FocusControl::Focusables win_list(screen->focusControl().creationOrderList().clientList()); FocusControl::Focusables::iterator it = win_list.begin(), it_end = win_list.end(); // save old value, so we can restore it later WinClient *old = WindowCmd::client(); for (; it != it_end; ++it) { WinClient *client = dynamic_cast(*it); if (!client) continue; WindowCmd::setClient(client); if (!m_cmd->execute()) { WindowCmd::setClient(old); return false; } } WindowCmd::setClient(old); } return true; } namespace { FbTk::Command *parseWindowList(const string &command, const string &args, bool trusted) { int opts; string pat; FocusableList::parseArgs(args, opts, pat); if (command == "attach") return new AttachCmd(pat); else if (command == "nextwindow") return new NextWindowCmd(opts, pat); else if (command == "nextgroup") { opts |= FocusableList::LIST_GROUPS; return new NextWindowCmd(opts, pat); } else if (command == "prevwindow") return new PrevWindowCmd(opts, pat); else if (command == "prevgroup") { opts |= FocusableList::LIST_GROUPS; return new PrevWindowCmd(opts, pat); } else if (command == "arrangewindows") { int method = ArrangeWindowsCmd::UNSPECIFIED; return new ArrangeWindowsCmd(method,pat); } else if (command == "arrangewindowsvertical") { int method = ArrangeWindowsCmd::VERTICAL; return new ArrangeWindowsCmd(method,pat); } else if (command == "arrangewindowshorizontal") { int method = ArrangeWindowsCmd::HORIZONTAL; return new ArrangeWindowsCmd(method,pat); } return 0; } REGISTER_COMMAND_PARSER(attach, parseWindowList, void); REGISTER_COMMAND_PARSER(nextwindow, parseWindowList, void); REGISTER_COMMAND_PARSER(nextgroup, parseWindowList, void); REGISTER_COMMAND_PARSER(prevwindow, parseWindowList, void); REGISTER_COMMAND_PARSER(prevgroup, parseWindowList, void); REGISTER_COMMAND_PARSER(arrangewindows, parseWindowList, void); REGISTER_COMMAND_PARSER(arrangewindowsvertical, parseWindowList, void); REGISTER_COMMAND_PARSER(arrangewindowshorizontal, parseWindowList, void); } // end anonymous namespace void AttachCmd::execute() { BScreen *screen = Fluxbox::instance()->keyScreen(); if (screen != 0) { FocusControl::Focusables win_list(screen->focusControl().focusedOrderWinList().clientList()); FocusControl::Focusables::iterator it = win_list.begin(), it_end = win_list.end(); FluxboxWindow *first = 0; for (; it != it_end; ++it) { if (m_pat.match(**it) && (*it)->fbwindow()) { if (first == 0) first = (*it)->fbwindow(); else first->attachClient((*it)->fbwindow()->winClient()); } } } } void NextWindowCmd::execute() { BScreen *screen = Fluxbox::instance()->keyScreen(); if (screen != 0) screen->cycleFocus(m_option, &m_pat, false); } void PrevWindowCmd::execute() { BScreen *screen = Fluxbox::instance()->keyScreen(); if (screen != 0) screen->cycleFocus(m_option, &m_pat, true); } FbTk::Command *GoToWindowCmd::parse(const string &command, const string &arguments, bool trusted) { int num, opts; string args, pat; FbTk_istringstream iss(arguments.c_str()); iss >> num; string::size_type pos = arguments.find_first_of("({"); if (pos != string::npos && pos != arguments.size()) args = arguments.c_str() + pos; FocusableList::parseArgs(args, opts, pat); return new GoToWindowCmd(num, opts, pat); } REGISTER_COMMAND_PARSER(gotowindow, GoToWindowCmd::parse, void); void GoToWindowCmd::execute() { BScreen *screen = Fluxbox::instance()->keyScreen(); if (screen != 0) { const FocusableList *win_list = FocusableList::getListFromOptions(*screen, m_option); screen->focusControl().goToWindowNumber(*win_list, m_num, &m_pat); } } FbTk::Command *DirFocusCmd::parse(const string &command, const string &args, bool trusted) { if (command == "focusup") return new DirFocusCmd(FocusControl::FOCUSUP); else if (command == "focusdown") return new DirFocusCmd(FocusControl::FOCUSDOWN); else if (command == "focusleft") return new DirFocusCmd(FocusControl::FOCUSLEFT); else if (command == "focusright") return new DirFocusCmd(FocusControl::FOCUSRIGHT); return 0; } REGISTER_COMMAND_PARSER(focusup, DirFocusCmd::parse, void); REGISTER_COMMAND_PARSER(focusdown, DirFocusCmd::parse, void); REGISTER_COMMAND_PARSER(focusleft, DirFocusCmd::parse, void); REGISTER_COMMAND_PARSER(focusright, DirFocusCmd::parse, void); void DirFocusCmd::execute() { BScreen *screen = Fluxbox::instance()->keyScreen(); if (screen == 0) return; FluxboxWindow *win = FocusControl::focusedFbWindow(); if (win) screen->focusControl().dirFocus(*win, m_dir); } REGISTER_COMMAND(addworkspace, AddWorkspaceCmd, void); void AddWorkspaceCmd::execute() { BScreen *screen = Fluxbox::instance()->mouseScreen(); if (screen != 0) screen->addWorkspace(); } REGISTER_COMMAND(removelastworkspace, RemoveLastWorkspaceCmd, void); void RemoveLastWorkspaceCmd::execute() { BScreen *screen = Fluxbox::instance()->mouseScreen(); if (screen != 0) screen->removeLastWorkspace(); } namespace { FbTk::Command *parseIntCmd(const string &command, const string &args, bool trusted) { int num = 1; FbTk_istringstream iss(args.c_str()); iss >> num; if (command == "nextworkspace") return new NextWorkspaceCmd(num); else if (command == "prevworkspace") return new PrevWorkspaceCmd(num); else if (command == "rightworkspace") return new RightWorkspaceCmd(num); else if (command == "leftworkspace") return new LeftWorkspaceCmd(num); else if (command == "workspace") // workspaces appear 1-indexed to the user, hence the minus 1 return new JumpToWorkspaceCmd(num - 1); return 0; } REGISTER_COMMAND_PARSER(nextworkspace, parseIntCmd, void); REGISTER_COMMAND_PARSER(prevworkspace, parseIntCmd, void); REGISTER_COMMAND_PARSER(rightworkspace, parseIntCmd, void); REGISTER_COMMAND_PARSER(leftworkspace, parseIntCmd, void); REGISTER_COMMAND_PARSER(workspace, parseIntCmd, void); } // end anonymous namespace void NextWorkspaceCmd::execute() { BScreen *screen = Fluxbox::instance()->mouseScreen(); if (screen != 0) screen->nextWorkspace(m_option == 0 ? 1 : m_option); } void PrevWorkspaceCmd::execute() { BScreen *screen = Fluxbox::instance()->mouseScreen(); if (screen != 0) screen->prevWorkspace(m_option == 0 ? 1 : m_option); } void LeftWorkspaceCmd::execute() { BScreen *screen = Fluxbox::instance()->mouseScreen(); if (screen != 0) screen->leftWorkspace(m_param); } void RightWorkspaceCmd::execute() { BScreen *screen = Fluxbox::instance()->mouseScreen(); if (screen != 0) screen->rightWorkspace(m_param); } JumpToWorkspaceCmd::JumpToWorkspaceCmd(int workspace_num):m_workspace_num(workspace_num) { } void JumpToWorkspaceCmd::execute() { BScreen *screen = Fluxbox::instance()->mouseScreen(); if (screen != 0) { int num = screen->numberOfWorkspaces(); int actual = m_workspace_num; // we need an extra +1, since it's subtracted in FbCommandFactory if (actual < 0) actual += num+1; if (actual < 0) actual = 0; if (actual >= num) actual = num - 1; screen->changeWorkspaceID(actual); } } /** try to arrange the windows on the current workspace in a 'clever' way. we take the shaded-windows and put them ontop of the workspace and put the normal windows underneath it. */ void ArrangeWindowsCmd::execute() { BScreen *screen = Fluxbox::instance()->mouseScreen(); if (screen == 0) return; Workspace *space = screen->currentWorkspace(); if (space->windowList().empty()) return; // TODO: choice between // - arrange using all windows on all heads // - arrange for each head // - only on current head const int head = screen->getCurrHead(); Workspace::Windows::iterator win; Workspace::Windows normal_windows; Workspace::Windows shaded_windows; for(win = space->windowList().begin(); win != space->windowList().end(); ++win) { int winhead = screen->getHead((*win)->fbWindow()); if ((winhead == head || winhead == 0) && m_pat.match(**win)) { if ((*win)->isShaded()) shaded_windows.push_back(*win); else normal_windows.push_back(*win); } } // to arrange only shaded windows is a bit pointless imho (mathias) size_t win_count = normal_windows.size(); if (win_count == 0) return; const unsigned int max_width = screen->maxRight(head) - screen->maxLeft(head); unsigned int max_height = screen->maxBottom(head) - screen->maxTop(head); // try to get the same number of rows as columns. unsigned int cols = int(sqrt((float)win_count)); // truncate to lower unsigned int rows = int(0.99 + float(win_count) / float(cols)); if ( (m_tile_method == VERTICAL) || // rotate if the user has asked for it or automagically ( (m_tile_method == UNSPECIFIED) && (max_widthmaxLeft(head); // window position offset in x unsigned int y_offs = screen->maxTop(head); // window position offset in y // unsigned int window = 0; // current window const unsigned int cal_width = max_width/cols; // calculated width ratio (width of every window) unsigned int i; unsigned int j; // place the shaded windows // TODO: until i resolve the shadedwindow->moveResize() issue to place // them in the same columns as the normal windows i just place the shaded // windows unchanged ontop of the current head for (i = 0, win = shaded_windows.begin(); win != shaded_windows.end(); ++win, ++i) { if (i & 1) (*win)->move(x_offs, y_offs); else (*win)->move(screen->maxRight(head) - (*win)->frame().width(), y_offs); y_offs += (*win)->frame().height(); } // TODO: what if the number of shaded windows is really big and we end up // with really little space left for the normal windows? how to handle // this? if (!shaded_windows.empty()) max_height -= i * (*shaded_windows.begin())->frame().height(); const unsigned int cal_height = max_height/rows; // height ratio (height of every window) // Resizes and sets windows positions in columns and rows. for (i = 0; i < rows; ++i) { x_offs = screen->maxLeft(head); for (j = 0; j < cols && !normal_windows.empty(); ++j) { int cell_center_x = x_offs + (x_offs + cal_width) / 2; int cell_center_y = y_offs + (y_offs + cal_height) / 2; unsigned int closest_dist = ~0; Workspace::Windows::iterator closest = normal_windows.end(); for (win = normal_windows.begin(); win != normal_windows.end(); ++win) { int win_center_x = (*win)->frame().x() + ((*win)->frame().x() + (*win)->frame().width() / 2); int win_center_y = (*win)->frame().y() + ((*win)->frame().y() + (*win)->frame().height() / 2); unsigned int dist = (win_center_x - cell_center_x) * (win_center_x - cell_center_x) + (win_center_y - cell_center_y) * (win_center_y - cell_center_y); if (dist < closest_dist) { closest = win; closest_dist = dist; } } if (normal_windows.size() > 1) { (*closest)->moveResize(x_offs + (*closest)->xOffset(), y_offs + (*closest)->yOffset(), cal_width - (*closest)->widthOffset(), cal_height - (*closest)->heightOffset()); } else { // the last window gets everything that is left. (*closest)->moveResize(x_offs + (*closest)->xOffset(), y_offs + (*closest)->yOffset(), screen->maxRight(head) - x_offs - (*closest)->widthOffset(), cal_height - (*closest)->heightOffset()); } normal_windows.erase(closest); // next x offset x_offs += cal_width; } // next y offset y_offs += cal_height; } } REGISTER_COMMAND(showdesktop, ShowDesktopCmd, void); void ShowDesktopCmd::execute() { BScreen *screen = Fluxbox::instance()->mouseScreen(); if (screen == 0) return; // iconify windows in focus order, so it gets restored properly const std::list wins = screen->focusControl().focusedOrderWinList().clientList(); std::list::const_iterator it = wins.begin(), it_end = wins.end(); unsigned int space = screen->currentWorkspaceID(); unsigned int count = 0; for (; it != it_end; ++it) { if (!(*it)->fbwindow()->isIconic() && ((*it)->fbwindow()->isStuck() || (*it)->fbwindow()->workspaceNumber() == space) && (*it)->fbwindow()->layerNum() < ResourceLayer::DESKTOP) { (*it)->fbwindow()->iconify(); count++; } } if (count == 0) { BScreen::Icons icon_list = screen->iconList(); BScreen::Icons::reverse_iterator iconit = icon_list.rbegin(); BScreen::Icons::reverse_iterator itend= icon_list.rend(); for(; iconit != itend; ++iconit) { if ((*iconit)->workspaceNumber() == space || (*iconit)->isStuck()) (*iconit)->deiconify(false); } } else FocusControl::revertFocus(*screen); } REGISTER_COMMAND(closeallwindows, CloseAllWindowsCmd, void); void CloseAllWindowsCmd::execute() { BScreen *screen = Fluxbox::instance()->mouseScreen(); if (screen == 0) return; Workspace::Windows windows; BScreen::Workspaces::iterator workspace_it = screen->getWorkspacesList().begin(); BScreen::Workspaces::iterator workspace_it_end = screen->getWorkspacesList().end(); for (; workspace_it != workspace_it_end; ++workspace_it) { windows = (*workspace_it)->windowList(); std::for_each(windows.begin(), windows.end(), std::mem_fun(&FluxboxWindow::close)); } windows = screen->iconList(); std::for_each(windows.begin(), windows.end(), std::mem_fun(&FluxboxWindow::close)); } fluxbox-1.3.5/src/PaxHeaders.25974/WorkspaceCmd.hh0000644000175000017500000000013212106662425017746 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.255812462 30 ctime=1360750008.707811614 fluxbox-1.3.5/src/WorkspaceCmd.hh0000644000175000017500000001312412106662425015776 0ustar00mgmg00000000000000// WorkspaceCmd.hh for Fluxbox - an X11 Window manager // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef WORKSPACECMD_HH #define WORKSPACECMD_HH #include "FbTk/Command.hh" #include "FbTk/RefCount.hh" #include "ClientPattern.hh" #include "FocusControl.hh" class WindowListCmd: public FbTk::Command { public: WindowListCmd(FbTk::RefCount > cmd, int opts, FbTk::RefCount > filter): m_cmd(cmd), m_opts(opts), m_filter(filter) { } void execute(); static FbTk::Command *parse(const std::string &command, const std::string &args, bool trusted); private: FbTk::RefCount > m_cmd; int m_opts; FbTk::RefCount > m_filter; }; class SomeCmd: public FbTk::Command { public: SomeCmd(FbTk::RefCount > cmd): m_cmd(cmd) { } bool execute(); static FbTk::Command *parse(const std::string &command, const std::string &args, bool trusted); private: FbTk::RefCount > m_cmd; }; class EveryCmd: public FbTk::Command { public: EveryCmd(FbTk::RefCount > cmd): m_cmd(cmd) { } bool execute(); private: FbTk::RefCount > m_cmd; }; class AttachCmd: public FbTk::Command { public: explicit AttachCmd(const std::string &pat): m_pat(pat.c_str()) { } void execute(); private: const ClientPattern m_pat; }; class NextWindowCmd: public FbTk::Command { public: explicit NextWindowCmd(int option, std::string &pat): m_option(option), m_pat(pat.c_str()) { } void execute(); private: const int m_option; const ClientPattern m_pat; }; class PrevWindowCmd: public FbTk::Command { public: explicit PrevWindowCmd(int option, std::string &pat): m_option(option), m_pat(pat.c_str()) { } void execute(); private: const int m_option; const ClientPattern m_pat; }; class GoToWindowCmd: public FbTk::Command { public: GoToWindowCmd(int num, int option, std::string &pat): m_num(num), m_option(option), m_pat(pat.c_str()) { } void execute(); static FbTk::Command *parse(const std::string &command, const std::string &args, bool trusted); private: const int m_num; const int m_option; const ClientPattern m_pat; }; class DirFocusCmd: public FbTk::Command { public: explicit DirFocusCmd(const FocusControl::FocusDir dir): m_dir(dir) { } void execute(); static FbTk::Command *parse(const std::string &command, const std::string &args, bool trusted); private: const FocusControl::FocusDir m_dir; }; class AddWorkspaceCmd: public FbTk::Command { public: void execute(); }; class RemoveLastWorkspaceCmd: public FbTk::Command { public: void execute(); }; class NextWorkspaceCmd: public FbTk::Command { public: explicit NextWorkspaceCmd(int option):m_option(option) { } void execute(); private: const int m_option; }; class PrevWorkspaceCmd: public FbTk::Command { public: explicit PrevWorkspaceCmd(int option):m_option(option) { } void execute(); private: const int m_option; }; class LeftWorkspaceCmd: public FbTk::Command { public: explicit LeftWorkspaceCmd(int num=1):m_param(num == 0 ? 1 : num) { } void execute(); private: const int m_param; }; class RightWorkspaceCmd: public FbTk::Command { public: explicit RightWorkspaceCmd(int num=1):m_param(num == 0 ? 1 : num) { } void execute(); private: const int m_param; }; class JumpToWorkspaceCmd: public FbTk::Command { public: explicit JumpToWorkspaceCmd(int workspace_num); void execute(); private: const int m_workspace_num; }; /// arranges windows in current workspace to rows and columns class ArrangeWindowsCmd: public FbTk::Command { public: enum { UNSPECIFIED, VERTICAL, HORIZONTAL }; explicit ArrangeWindowsCmd(int tile_method, std::string &pat): m_tile_method( tile_method ), m_pat(pat.c_str()) { } void execute(); private: const int m_tile_method; const ClientPattern m_pat; }; class ShowDesktopCmd: public FbTk::Command { public: void execute(); }; class CloseAllWindowsCmd: public FbTk::Command { public: void execute(); }; #endif // WORKSPACECMD_HH fluxbox-1.3.5/src/PaxHeaders.25974/CurrentWindowCmd.cc0000644000175000017500000000013212106662425020610 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.251812462 30 ctime=1360750008.707811614 fluxbox-1.3.5/src/CurrentWindowCmd.cc0000644000175000017500000006651112106662425016650 0ustar00mgmg00000000000000// CurrentWindowCmd.cc for Fluxbox - an X11 Window manager // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include #include "CurrentWindowCmd.hh" #include "fluxbox.hh" #include "Layer.hh" #include "Window.hh" #include "WindowCmd.hh" #include "Screen.hh" #include "TextDialog.hh" #include "WinClient.hh" #include "FocusControl.hh" #include "FbTk/CommandParser.hh" #include "FbTk/I18n.hh" #include "FbTk/stringstream.hh" #include "FbTk/StringUtil.hh" #include "FbTk/Util.hh" #include "FbTk/RelCalcHelper.hh" #ifdef HAVE_CONFIG_H #include "config.h" #endif // HAVE_CONFIG_H #ifdef HAVE_CSTDLIB #include #else #include #endif using FbTk::Command; namespace { void disableMaximizationIfNeeded(FluxboxWindow& win) { if (win.isMaximized() || win.isMaximizedVert() || win.isMaximizedHorz() || win.isFullscreen()) { win.disableMaximization(); } } FbTk::Command *createCurrentWindowCmd(const std::string &command, const std::string &args, bool trusted) { if (command == "minimizewindow" || command == "minimize" || command == "iconify") return new CurrentWindowCmd(&FluxboxWindow::iconify); else if (command == "maximizewindow" || command == "maximize") return new CurrentWindowCmd(&FluxboxWindow::maximizeFull); else if (command == "maximizevertical") return new CurrentWindowCmd(&FluxboxWindow::maximizeVertical); else if (command == "maximizehorizontal") return new CurrentWindowCmd(&FluxboxWindow::maximizeHorizontal); else if (command == "raise") return new CurrentWindowCmd(&FluxboxWindow::raise); else if (command == "lower") return new CurrentWindowCmd(&FluxboxWindow::lower); else if (command == "close") return new CurrentWindowCmd(&FluxboxWindow::close); else if (command == "killwindow" || command == "kill") return new CurrentWindowCmd(&FluxboxWindow::kill); else if (command == "shade" || command == "shadewindow") return new CurrentWindowCmd(&FluxboxWindow::shade); else if (command == "shadeon" ) return new CurrentWindowCmd(&FluxboxWindow::shadeOn); else if (command == "shadeoff" ) return new CurrentWindowCmd(&FluxboxWindow::shadeOff); else if (command == "stick" || command == "stickwindow") return new CurrentWindowCmd(&FluxboxWindow::stick); else if (command == "toggledecor") return new CurrentWindowCmd(&FluxboxWindow::toggleDecoration); else if (command == "nexttab") return new CurrentWindowCmd(&FluxboxWindow::nextClient); else if (command == "prevtab") return new CurrentWindowCmd(&FluxboxWindow::prevClient); else if (command == "movetableft") return new CurrentWindowCmd(&FluxboxWindow::moveClientLeft); else if (command == "movetabright") return new CurrentWindowCmd(&FluxboxWindow::moveClientRight); else if (command == "detachclient") return new CurrentWindowCmd(&FluxboxWindow::detachCurrentClient); else if (command == "windowmenu") return new CurrentWindowCmd(&FluxboxWindow::popupMenu); return 0; } REGISTER_COMMAND_PARSER(minimizewindow, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(minimize, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(iconify, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(maximizewindow, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(maximize, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(maximizevertical, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(maximizehorizontal, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(raise, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(lower, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(close, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(killwindow, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(kill, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(shade, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(shadewindow, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(shadeon, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(shadeoff, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(stick, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(stickwindow, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(toggledecor, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(nexttab, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(prevtab, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(movetableft, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(movetabright, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(detachclient, createCurrentWindowCmd, void); REGISTER_COMMAND_PARSER(windowmenu, createCurrentWindowCmd, void); } // end anonymous namespace void WindowHelperCmd::execute() { if (WindowCmd::window() || FocusControl::focusedFbWindow()) real_execute(); } FluxboxWindow &WindowHelperCmd::fbwindow() { // will exist from execute above FluxboxWindow *tmp = WindowCmd::window(); if (tmp) return *tmp; return *FocusControl::focusedFbWindow(); } bool WindowHelperBoolCmd::execute() { if (WindowCmd::window() || FocusControl::focusedFbWindow()) return real_execute(); return false; } FluxboxWindow &WindowHelperBoolCmd::fbwindow() { // will exist from execute above FluxboxWindow *tmp = WindowCmd::window(); if (tmp) return *tmp; return *FocusControl::focusedFbWindow(); } WinClient &WindowHelperBoolCmd::winclient() { // will exist from execute above WinClient *tmp = WindowCmd::client(); if (tmp) return *tmp; return *FocusControl::focusedWindow(); } void CurrentWindowCmd::real_execute() { (fbwindow().*m_action)(); } namespace { FbTk::Command *parseIntCmd(const string &command, const string &args, bool trusted) { int num = 1; FbTk_istringstream iss(args.c_str()); iss >> num; if (command == "sethead") return new SetHeadCmd(num); else if (command == "tab") return new GoToTabCmd(num); else if (command == "sendtonextworkspace") return new SendToNextWorkspaceCmd(num); else if (command == "sendtoprevworkspace") return new SendToNextWorkspaceCmd(-num); else if (command == "taketonextworkspace") return new SendToNextWorkspaceCmd(num, true); else if (command == "taketoprevworkspace") return new SendToNextWorkspaceCmd(-num, true); else if (command == "sendtoworkspace") return new SendToWorkspaceCmd(num); else if (command == "taketoworkspace") return new SendToWorkspaceCmd(num, true); else if (command == "sendtonexthead") return new SendToNextHeadCmd(num); else if (command == "sendtoprevhead") return new SendToNextHeadCmd(-num); return 0; } REGISTER_COMMAND_PARSER(sethead, parseIntCmd, void); REGISTER_COMMAND_PARSER(tab, parseIntCmd, void); REGISTER_COMMAND_PARSER(sendtonextworkspace, parseIntCmd, void); REGISTER_COMMAND_PARSER(sendtoprevworkspace, parseIntCmd, void); REGISTER_COMMAND_PARSER(taketonextworkspace, parseIntCmd, void); REGISTER_COMMAND_PARSER(taketoprevworkspace, parseIntCmd, void); REGISTER_COMMAND_PARSER(sendtoworkspace, parseIntCmd, void); REGISTER_COMMAND_PARSER(taketoworkspace, parseIntCmd, void); REGISTER_COMMAND_PARSER(sendtonexthead, parseIntCmd, void); REGISTER_COMMAND_PARSER(sendtoprevhead, parseIntCmd, void); FbTk::Command *parseFocusCmd(const string &command, const string &args, bool trusted) { ClientPattern pat(args.c_str()); if (!pat.error()) return FbTk::CommandParser::instance().parse("GoToWindow 1 " + args); return new CurrentWindowCmd((CurrentWindowCmd::Action) &FluxboxWindow::focus); } REGISTER_COMMAND_PARSER(activate, parseFocusCmd, void); REGISTER_COMMAND_PARSER(focus, parseFocusCmd, void); class ActivateTabCmd: public WindowHelperCmd { public: explicit ActivateTabCmd() { } protected: void real_execute() { WinClient* winclient = fbwindow().winClientOfLabelButtonWindow( Fluxbox::instance()->lastEvent().xany.window); if (winclient && winclient != &fbwindow().winClient()) { fbwindow().setCurrentClient(*winclient, true); } } }; REGISTER_COMMAND(activatetab, ActivateTabCmd, void); class SetXPropCmd: public WindowHelperCmd { public: explicit SetXPropCmd(const FbTk::FbString& name, const FbTk::FbString& value) : m_name(name), m_value(value) { } protected: void real_execute() { WinClient& client = fbwindow().winClient(); Atom prop = XInternAtom(client.display(), m_name.c_str(), False); client.changeProperty(prop, XInternAtom(client.display(), "UTF8_STRING", False), 8, PropModeReplace, (unsigned char*)m_value.c_str(), m_value.size()); } private: FbTk::FbString m_name; FbTk::FbString m_value; }; FbTk::Command *parseSetXPropCmd(const string &command, const string &args, bool trusted) { SetXPropCmd* cmd = 0; if (trusted) { FbTk::FbString name = args; FbTk::StringUtil::removeFirstWhitespace(name); FbTk::StringUtil::removeTrailingWhitespace(name); if (name.size() > 1 && name[0] != '=') { // the smallest valid argument is 'X=' FbTk::FbString value; size_t eq = name.find('='); if (eq != name.npos && eq != name.size()) { value.assign(name, eq + 1, name.size()); name.resize(eq); } cmd = new SetXPropCmd(name, value); } } return cmd; } REGISTER_COMMAND_PARSER(setxprop, parseSetXPropCmd, void); } // end anonymous namespace void SetHeadCmd::real_execute() { int num = m_head; int total = fbwindow().screen().numHeads(); if (num < 0) num += total + 1; num = FbTk::Util::clamp(num, 1, total); fbwindow().setOnHead(num); } void SendToWorkspaceCmd::real_execute() { int num = m_workspace_num; int total = fbwindow().screen().numberOfWorkspaces(); if (num < 0) num += total + 1; num = FbTk::Util::clamp(num, 1, total); fbwindow().screen().sendToWorkspace(num-1, &fbwindow(), m_take); } void SendToNextWorkspaceCmd::real_execute() { int total = fbwindow().screen().numberOfWorkspaces(); const int ws_nr = (total + (fbwindow().workspaceNumber() + m_delta % total)) % total; fbwindow().screen().sendToWorkspace(ws_nr, &fbwindow(), m_take); } void SendToNextHeadCmd::real_execute() { int total = fbwindow().screen().numHeads(); if (total < 2) return; int num = (total + fbwindow().getOnHead() - 1 + (m_delta % total)) % total; fbwindow().setOnHead(1 + num); } void GoToTabCmd::real_execute() { int num = m_tab_num; if (num < 0) num += fbwindow().numClients() + 1; num = FbTk::Util::clamp(num, 1, fbwindow().numClients()); FluxboxWindow::ClientList::iterator it = fbwindow().clientList().begin(); while (--num > 0) ++it; (*it)->focus(); } REGISTER_COMMAND(startmoving, StartMovingCmd, void); void StartMovingCmd::real_execute() { int x; int y; const XEvent &last = Fluxbox::instance()->lastEvent(); switch (last.type) { case ButtonPress: x = last.xbutton.x_root; y = last.xbutton.y_root; break; case MotionNotify: x = last.xmotion.x_root; y = last.xmotion.y_root; break; default: return; } fbwindow().startMoving(x, y); } FbTk::Command *StartResizingCmd::parse(const string &cmd, const string &args, bool trusted) { FluxboxWindow::ResizeModel mode = FluxboxWindow::DEFAULTRESIZE; int corner_size_px = 0; int corner_size_pc = 0; std::vector tokens; FbTk::StringUtil::stringtok >(tokens, args); if (!tokens.empty()) { string arg = FbTk::StringUtil::toLower(tokens[0]); if (arg == "center") mode = FluxboxWindow::CENTERRESIZE; else if (arg == "topleft") mode = FluxboxWindow::TOPLEFTRESIZE; else if (arg == "top") mode = FluxboxWindow::TOPRESIZE; else if (arg == "topright") mode = FluxboxWindow::TOPRIGHTRESIZE; else if (arg == "left") mode = FluxboxWindow::LEFTRESIZE; else if (arg == "right") mode = FluxboxWindow::RIGHTRESIZE; else if (arg == "bottomleft") mode = FluxboxWindow::BOTTOMLEFTRESIZE; else if (arg == "bottom") mode = FluxboxWindow::BOTTOMRESIZE; else if (arg == "bottomright") mode = FluxboxWindow::BOTTOMRIGHTRESIZE; else if (arg == "nearestcorner") { mode = FluxboxWindow::EDGEORCORNERRESIZE; corner_size_pc = 100; } else if (arg == "nearestedge") { mode = FluxboxWindow::EDGEORCORNERRESIZE; } else if (arg == "nearestcorneroredge") { mode = FluxboxWindow::EDGEORCORNERRESIZE; /* The NearestCornerOrEdge can be followed by a corner size in * one of three forms: * * * % * If no corner size is given then it defaults to 50 pixels, 30%. */ if (tokens.size() > 1) { const char * size1 = tokens[1].c_str(); if (size1[strlen(size1)-1] == '%') corner_size_pc = atoi(size1); else { corner_size_px = atoi(size1); if (tokens.size() > 2) corner_size_pc = atoi(tokens[2].c_str()); } } else { corner_size_px = 50; corner_size_pc = 30; } } } return new StartResizingCmd(mode, corner_size_px, corner_size_pc); } REGISTER_COMMAND_PARSER(startresizing, StartResizingCmd::parse, void); void StartResizingCmd::real_execute() { int x; int y; const XEvent &last = Fluxbox::instance()->lastEvent(); switch (last.type) { case ButtonPress: x = last.xbutton.x_root; y = last.xbutton.y_root; break; case MotionNotify: x = last.xmotion.x_root; y = last.xmotion.y_root; break; default: return; } x -= fbwindow().x() - fbwindow().frame().window().borderWidth(); y -= fbwindow().y() - fbwindow().frame().window().borderWidth(); fbwindow().startResizing(x, y, fbwindow().getResizeDirection( x, y, m_mode, m_corner_size_px, m_corner_size_pc)); } REGISTER_COMMAND(starttabbing, StartTabbingCmd, void); void StartTabbingCmd::real_execute() { const XEvent &last = Fluxbox::instance()->lastEvent(); if (last.type == ButtonPress) { const XButtonEvent &be = last.xbutton; fbwindow().startTabbing(be); } } FbTk::Command *MoveCmd::parse(const string &command, const string &args, bool trusted) { FbTk_istringstream is(args.c_str()); int dx = 0, dy = 0; is >> dx >> dy; if (command == "moveright") dy = 0; else if (command == "moveleft") { dy = 0; dx = -dx; } else if (command == "movedown") { dy = dx; dx = 0; } else if (command == "moveup") { dy = -dx; dx = 0; } return new MoveCmd(dx, dy); } REGISTER_COMMAND_PARSER(move, MoveCmd::parse, void); REGISTER_COMMAND_PARSER(moveright, MoveCmd::parse, void); REGISTER_COMMAND_PARSER(moveleft, MoveCmd::parse, void); REGISTER_COMMAND_PARSER(moveup, MoveCmd::parse, void); REGISTER_COMMAND_PARSER(movedown, MoveCmd::parse, void); MoveCmd::MoveCmd(const int step_size_x, const int step_size_y) : m_step_size_x(step_size_x), m_step_size_y(step_size_y) { } void MoveCmd::real_execute() { if (fbwindow().isMaximized() || fbwindow().isFullscreen()) { if (fbwindow().screen().getMaxDisableMove()) { return; } fbwindow().setMaximizedState(WindowState::MAX_NONE); } fbwindow().move(fbwindow().x() + m_step_size_x, fbwindow().y() + m_step_size_y); } namespace { template static void parseToken(Container &container, int &d, bool &is_relative, bool &ignore) { if (container.size() < 1) return; d = 0; is_relative = false; ignore = false; if (container[0] == '*') { ignore = true; } else if (container[container.size() - 1] == '%') { // its a percent is_relative = true; d = atoi(container.substr(0, container.size() - 1).c_str()); } else { d = atoi(container.c_str()); } } } FbTk::Command *ResizeCmd::parse(const string &command, const string &args, bool trusted) { typedef std::vector StringTokens; StringTokens tokens; FbTk::StringUtil::stringtok(tokens, args); if (tokens.size() < 1) { return 0; } int dx, dy; bool is_relative_x = false, is_relative_y = false, ignore_x = false, ignore_y = false; if (command == "resizehorizontal") { parseToken(tokens[0], dx, is_relative_x, ignore_x); dy = 0; } else if (command == "resizevertical") { parseToken(tokens[0], dy, is_relative_y, ignore_y); dx = 0; } else { if (tokens.size() < 2) { return 0; } parseToken(tokens[0], dx, is_relative_x, ignore_x); parseToken(tokens[1], dy, is_relative_y, ignore_y); } if (command == "resizeto") { return new ResizeToCmd(dx, dy, is_relative_x, is_relative_y); } return new ResizeCmd(dx, dy, is_relative_x, is_relative_y); } REGISTER_COMMAND_PARSER(resize, ResizeCmd::parse, void); REGISTER_COMMAND_PARSER(resizeto, ResizeCmd::parse, void); REGISTER_COMMAND_PARSER(resizehorizontal, ResizeCmd::parse, void); REGISTER_COMMAND_PARSER(resizevertical, ResizeCmd::parse, void); ResizeCmd::ResizeCmd(const int step_size_x, const int step_size_y, bool is_relative_x, bool is_relative_y) : m_step_size_x(step_size_x), m_step_size_y(step_size_y), m_is_relative_x(is_relative_x), m_is_relative_y(is_relative_y) { } void ResizeCmd::real_execute() { if (fbwindow().isMaximized() || fbwindow().isFullscreen()) { if (fbwindow().screen().getMaxDisableResize()) { return; } } disableMaximizationIfNeeded(fbwindow()); int dx = m_step_size_x, dy = m_step_size_y; int windowWidth = fbwindow().width(), windowHeight = fbwindow().height(); unsigned int widthInc = fbwindow().winClient().widthInc(), heightInc = fbwindow().winClient().heightInc(); if (m_is_relative_x) { // dx = floor(windowWidth * m_step_size_x / 100 / widthInc + 0.5); dx = static_cast(FbTk::RelCalcHelper::calPercentageValueOf(windowWidth, m_step_size_x) / widthInc); } if (m_is_relative_y) { // dy = floor(windowHeight * m_step_size_y / 100 / heightInc + 0.5); dy = static_cast(FbTk::RelCalcHelper::calPercentageValueOf(windowHeight, m_step_size_y) / heightInc); } int w = std::max(static_cast(windowWidth + dx * widthInc), fbwindow().frame().titlebarHeight() * 2 + 10); int h = std::max(static_cast(windowHeight + dy * heightInc), fbwindow().frame().titlebarHeight() + 10); fbwindow().resize(w, h); } FbTk::Command *MoveToCmd::parse(const string &cmd, const string &args, bool trusted) { typedef std::vector StringTokens; StringTokens tokens; FbTk::StringUtil::stringtok(tokens, args); if (tokens.size() < 2) return 0; FluxboxWindow::ReferenceCorner refc = FluxboxWindow::LEFTTOP; int x = 0, y = 0; bool ignore_x = false, ignore_y = false, is_relative_x = false, is_relative_y = false; parseToken(tokens[0], x, is_relative_x, ignore_x); parseToken(tokens[1], y, is_relative_y, ignore_y); if (tokens.size() >= 3) { refc = FluxboxWindow::getCorner(tokens[2]); if (refc == FluxboxWindow::ERROR) refc = FluxboxWindow::LEFTTOP; } return new MoveToCmd(x, y, ignore_x, ignore_y, is_relative_x, is_relative_y, refc); } REGISTER_COMMAND_PARSER(moveto, MoveToCmd::parse, void); void MoveToCmd::real_execute() { if (fbwindow().isMaximized() || fbwindow().isFullscreen()) { if (fbwindow().screen().getMaxDisableMove()) { return; } } disableMaximizationIfNeeded(fbwindow()); int x = m_pos_x, y = m_pos_y; int head = fbwindow().getOnHead(); if (m_ignore_x) { x = fbwindow().x(); } else { if (m_is_relative_x) { x = fbwindow().screen().calRelativeWidth(head, x); } fbwindow().translateXCoords(x, m_corner); } if (m_ignore_y) { y = fbwindow().y(); } else { if (m_is_relative_y) { y = fbwindow().screen().calRelativeHeight(head, y); } fbwindow().translateYCoords(y, m_corner); } fbwindow().move(x, y); } ResizeToCmd::ResizeToCmd(const int step_size_x, const int step_size_y, const bool is_relative_x, const bool is_relative_y) : m_step_size_x(step_size_x), m_step_size_y(step_size_y), m_is_relative_x(is_relative_x), m_is_relative_y(is_relative_y) { } void ResizeToCmd::real_execute() { if (fbwindow().isMaximized() || fbwindow().isFullscreen()) { if (fbwindow().screen().getMaxDisableResize()) { return; } } disableMaximizationIfNeeded(fbwindow()); int dx = m_step_size_x, dy = m_step_size_y; int head = fbwindow().getOnHead(); if (m_is_relative_x) { dx = fbwindow().screen().calRelativeWidth(head, dx); if(dx <= 0) { dx = fbwindow().width(); } } if (m_is_relative_y) { dy = fbwindow().screen().calRelativeHeight(head, dy); if(dy <= 0) { dy = fbwindow().height(); } } if (dx == 0) { dx = fbwindow().width(); } if (dy == 0) { dy = fbwindow().height(); } fbwindow().resize(dx, dy); } REGISTER_COMMAND(fullscreen, FullscreenCmd, void); void FullscreenCmd::real_execute() { fbwindow().setFullscreen(!fbwindow().isFullscreen()); } FbTk::Command *SetLayerCmd::parse(const string &command, const string &args, bool trusted) { int l = ResourceLayer::getNumFromString(args); return (l == -1) ? 0 : new SetLayerCmd(l); } REGISTER_COMMAND_PARSER(setlayer, SetLayerCmd::parse, void); void SetLayerCmd::real_execute() { fbwindow().moveToLayer(m_layer); } FbTk::Command *ChangeLayerCmd::parse(const string &command, const string &args, bool trusted) { int num = 2; FbTk_istringstream iss(args.c_str()); iss >> num; if (command == "raiselayer") return new ChangeLayerCmd(-num); else if (command == "lowerlayer") return new ChangeLayerCmd(num); return 0; } REGISTER_COMMAND_PARSER(raiselayer, ChangeLayerCmd::parse, void); REGISTER_COMMAND_PARSER(lowerlayer, ChangeLayerCmd::parse, void); void ChangeLayerCmd::real_execute() { fbwindow().changeLayer(m_diff); } namespace { class SetTitleDialog: public TextDialog, private FbTk::SignalTracker { public: SetTitleDialog(FluxboxWindow &win, const string &title): TextDialog(win.screen(), title), window(win) { join(win.dieSig(), FbTk::MemFunIgnoreArgs(*this, &SetTitleDialog::windowDied)); setText(win.title()); } private: // only attached signal is window destruction void windowDied() { delete this; } void exec(const std::string &text) { window.winClient().setTitle(text); } FluxboxWindow &window; }; } // end anonymous namespace REGISTER_COMMAND(settitledialog, SetTitleDialogCmd, void); void SetTitleDialogCmd::real_execute() { _FB_USES_NLS; SetTitleDialog *win = new SetTitleDialog(fbwindow(), _FB_XTEXT(Windowmenu, SetTitle, "Set Title", "Change the title of the window")); win->show(); } REGISTER_COMMAND_WITH_ARGS(settitle, SetTitleCmd, void); void SetTitleCmd::real_execute() { fbwindow().winClient().setTitle(title); } REGISTER_COMMAND_WITH_ARGS(setdecor, SetDecorCmd, void); SetDecorCmd::SetDecorCmd(const std::string &args): m_mask(WindowState::getDecoMaskFromString(args)) { } void SetDecorCmd::real_execute() { fbwindow().setDecorationMask(m_mask); } FbTk::Command *SetAlphaCmd::parse(const string &command, const string &args, bool trusted) { typedef std::vector StringTokens; StringTokens tokens; FbTk::StringUtil::stringtok(tokens, args); int focused, unfocused; bool relative, un_rel; if (tokens.empty()) { // set default alpha focused = unfocused = 256; relative = un_rel = false; } else { relative = un_rel = (tokens[0][0] == '+' || tokens[0][0] == '-'); focused = unfocused = atoi(tokens[0].c_str()); } if (tokens.size() > 1) { // set different unfocused alpha un_rel = (tokens[1][0] == '+' || tokens[1][0] == '-'); unfocused = atoi(tokens[1].c_str()); } return new SetAlphaCmd(focused, relative, unfocused, un_rel); } REGISTER_COMMAND_PARSER(setalpha, SetAlphaCmd::parse, void); SetAlphaCmd::SetAlphaCmd(int focused, bool relative, int unfocused, bool un_relative) : m_focus(focused), m_unfocus(unfocused), m_relative(relative), m_un_relative(un_relative) { } void SetAlphaCmd::real_execute() { if (m_focus == 256 && m_unfocus == 256) { // made up signal to return to default fbwindow().setDefaultAlpha(); return; } fbwindow().setFocusedAlpha(m_relative ? FbTk::Util::clamp(fbwindow().getFocusedAlpha() + m_focus, 0, 255) : m_focus); fbwindow().setUnfocusedAlpha(m_un_relative ? FbTk::Util::clamp(fbwindow().getUnfocusedAlpha() + m_unfocus, 0, 255) : m_unfocus); } REGISTER_COMMAND_WITH_ARGS(matches, MatchCmd, bool); bool MatchCmd::real_execute() { return m_pat.match(winclient()); } fluxbox-1.3.5/src/PaxHeaders.25974/CurrentWindowCmd.hh0000644000175000017500000000013212106662425020622 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.251812462 30 ctime=1360750008.707811614 fluxbox-1.3.5/src/CurrentWindowCmd.hh0000644000175000017500000002000112106662425016642 0ustar00mgmg00000000000000// CurrentWindowCmd.hh for Fluxbox - an X11 Window manager // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef CURRENTWINDOWCMD_HH #define CURRENTWINDOWCMD_HH #include "FbTk/Command.hh" #include "Window.hh" #include "ClientPattern.hh" /// helper class for window commands /// calls real_execute if there's a focused window or a window in button press/release window class WindowHelperCmd: public FbTk::Command { public: explicit WindowHelperCmd() { } void execute(); protected: FluxboxWindow &fbwindow(); virtual void real_execute() = 0; }; class WindowHelperBoolCmd: public FbTk::Command { public: explicit WindowHelperBoolCmd() { } bool execute(); protected: FluxboxWindow &fbwindow(); WinClient &winclient(); virtual bool real_execute() = 0; }; /// command that calls FluxboxWindow:: on execute() /// similar to FbTk::SimpleCommand class CurrentWindowCmd: public WindowHelperCmd { public: typedef void (FluxboxWindow::* Action)(); explicit CurrentWindowCmd(Action action): m_action(action) { } void real_execute(); private: Action m_action; }; class SetHeadCmd : public WindowHelperCmd { public: explicit SetHeadCmd(int head) : m_head(head) { } protected: void real_execute(); private: const int m_head; }; class SendToWorkspaceCmd: public WindowHelperCmd { public: explicit SendToWorkspaceCmd(int workspace_num, bool take = false): m_workspace_num(workspace_num), m_take(take) { } protected: void real_execute(); private: const int m_workspace_num; const bool m_take; }; class SendToNextWorkspaceCmd: public WindowHelperCmd { public: explicit SendToNextWorkspaceCmd(int delta, bool take = false): m_delta(delta), m_take(take) { } protected: void real_execute(); private: const int m_delta; const bool m_take; }; class SendToNextHeadCmd: public WindowHelperCmd { public: explicit SendToNextHeadCmd(int delta): m_delta(delta) { } protected: void real_execute(); private: const int m_delta; }; // goto tab class GoToTabCmd: public WindowHelperCmd { public: explicit GoToTabCmd(int tab_num):m_tab_num(tab_num) { } protected: void real_execute(); private: const int m_tab_num; }; // begin moving with mouse class StartMovingCmd: public WindowHelperCmd { public: StartMovingCmd() { } protected: void real_execute(); }; // begin resizing with mouse class StartResizingCmd: public WindowHelperCmd { public: explicit StartResizingCmd(FluxboxWindow::ResizeModel mode, int corner_size_px, int corner_size_pc): m_mode(mode), m_corner_size_px(corner_size_px), m_corner_size_pc(corner_size_pc) { } static FbTk::Command *parse(const std::string &command, const std::string &args, bool trusted); protected: void real_execute(); private: const FluxboxWindow::ResizeModel m_mode; const int m_corner_size_px; // Corner size in pixels const int m_corner_size_pc; // and in percent of half window width/height }; // begin tabbing with mouse class StartTabbingCmd: public WindowHelperCmd { public: StartTabbingCmd() { } protected: void real_execute(); }; // move cmd, relative position class MoveCmd: public WindowHelperCmd { public: explicit MoveCmd(const int step_size_x, const int step_size_y); static FbTk::Command *parse(const std::string &command, const std::string &args, bool trusted); protected: void real_execute(); private: const int m_step_size_x; const int m_step_size_y; }; // resize cmd, relative size class ResizeCmd: public WindowHelperCmd{ public: explicit ResizeCmd(int step_size_x, int step_size_y, bool is_relative_x, bool is_relative_y); static FbTk::Command *parse(const std::string &command, const std::string &args, bool trusted); protected: void real_execute(); private: const int m_step_size_x; const int m_step_size_y; const bool m_is_relative_x; const bool m_is_relative_y; }; class MoveToCmd: public WindowHelperCmd { public: explicit MoveToCmd(int pos_x, int pos_y, bool ignore_x, bool ignore_y, bool is_relative_x, bool is_relative_y, FluxboxWindow::ReferenceCorner refc): m_pos_x(pos_x), m_pos_y(pos_y), m_ignore_x(ignore_x), m_ignore_y(ignore_y), m_is_relative_x(is_relative_x), m_is_relative_y(is_relative_y), m_corner(refc) { } static FbTk::Command *parse(const std::string &command, const std::string &args, bool trusted); protected: void real_execute(); private: int m_pos_x, m_pos_y; bool m_ignore_x, m_ignore_y, m_is_relative_x, m_is_relative_y; FluxboxWindow::ReferenceCorner m_corner; }; // resize cmd class ResizeToCmd: public WindowHelperCmd{ public: explicit ResizeToCmd(int step_size_x, int step_size_y, bool is_relative_x, bool is_relative_y); protected: void real_execute(); private: const int m_step_size_x; const int m_step_size_y; const bool m_is_relative_x; const bool m_is_relative_y; }; class FullscreenCmd: public WindowHelperCmd{ public: explicit FullscreenCmd() { } protected: void real_execute(); }; class SetTitleDialogCmd: public WindowHelperCmd { public: explicit SetTitleDialogCmd() { } protected: void real_execute(); }; class SetTitleCmd: public WindowHelperCmd { public: explicit SetTitleCmd(std::string newtitle): title(newtitle) { } protected: void real_execute(); private: std::string title; }; class SetDecorCmd: public WindowHelperCmd { public: explicit SetDecorCmd(const std::string &args); protected: void real_execute(); private: unsigned int m_mask; }; class SetAlphaCmd: public WindowHelperCmd { public: SetAlphaCmd(int focus, bool rel, int unfocus, bool unrel); static FbTk::Command *parse(const std::string &command, const std::string &args, bool trusted); protected: void real_execute(); private: int m_focus, m_unfocus; int m_relative, m_un_relative; }; class SetLayerCmd: public WindowHelperCmd { public: explicit SetLayerCmd(int layer): m_layer(layer) { } static FbTk::Command *parse(const std::string &command, const std::string &args, bool trusted); protected: void real_execute(); private: int m_layer; }; class ChangeLayerCmd: public WindowHelperCmd { public: explicit ChangeLayerCmd(int diff): m_diff(diff) { } static FbTk::Command *parse(const std::string &command, const std::string &args, bool trusted); protected: void real_execute(); private: int m_diff; }; class MatchCmd: public WindowHelperBoolCmd { public: MatchCmd(const std::string &pat): m_pat(pat.c_str()) { }; protected: bool real_execute(); private: ClientPattern m_pat; }; #endif // CURRENTWINDOWCMD_HH fluxbox-1.3.5/src/PaxHeaders.25974/Xutil.cc0000644000175000017500000000013212106662425016457 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.247812462 30 ctime=1360750008.707811614 fluxbox-1.3.5/src/Xutil.cc0000644000175000017500000001010512106662425014503 0ustar00mgmg00000000000000// Xutil.cc for Fluxbox - an X11 Window manager // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "Xutil.hh" #include "Debug.hh" #include "FbTk/I18n.hh" #include "FbTk/App.hh" #include #include #include #ifdef HAVE_CSTRING #include #else #include #endif using std::string; using std::strlen; using std::endl; namespace Xutil { FbTk::FbString getWMName(Window window) { if (window == None) return FbTk::FbString(""); Display *display = FbTk::App::instance()->display(); XTextProperty text_prop; text_prop.value = 0; char **list = 0; int num = 0; _FB_USES_NLS; FbTk::FbString name; if (XGetWMName(display, window, &text_prop)) { if (text_prop.value && text_prop.nitems > 0) { if (text_prop.encoding != XA_STRING) { text_prop.nitems = strlen((char *) text_prop.value); XmbTextPropertyToTextList(display, &text_prop, &list, &num); if (num > 0 && list != 0) name = FbTk::FbStringUtil::LocaleStrToFb(static_cast(*list)); else name = text_prop.value ? FbTk::FbStringUtil::XStrToFb((char *)text_prop.value) : ""; if (list) XFreeStringList(list); } else name = text_prop.value ? FbTk::FbStringUtil::XStrToFb((char *)text_prop.value) : ""; XFree(text_prop.value); } else { // default name name = _FB_XTEXT(Window, Unnamed, "Unnamed", "Default name for a window without a WM_NAME"); } } else { // default name name = _FB_XTEXT(Window, Unnamed, "Unnamed", "Default name for a window without a WM_NAME"); } return name; } // The name of this particular instance FbTk::FbString getWMClassName(Window win) { XClassHint ch; FbTk::FbString instance_name; if (XGetClassHint(FbTk::App::instance()->display(), win, &ch) == 0) { fbdbg<<"Xutil: Failed to read class hint!"<(ch.res_name); XFree(ch.res_name); ch.res_name = 0; } else instance_name = ""; } return instance_name; } // the name of the general class of the app FbTk::FbString getWMClassClass(Window win) { XClassHint ch; FbTk::FbString class_name; if (XGetClassHint(FbTk::App::instance()->display(), win, &ch) == 0) { fbdbg<<"Xutil: Failed to read class hint!"<(ch.res_class); XFree(ch.res_class); ch.res_class = 0; } else class_name = ""; } return class_name; } } // end namespace Xutil fluxbox-1.3.5/src/PaxHeaders.25974/Xutil.hh0000644000175000017500000000013212106662425016471 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.247812462 30 ctime=1360750008.711811614 fluxbox-1.3.5/src/Xutil.hh0000644000175000017500000000302112106662425014514 0ustar00mgmg00000000000000// Xutil.hh for Fluxbox - an X11 Window manager // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef XUTIL_HH #define XUTIL_HH #include #include "FbTk/FbString.hh" namespace Xutil { FbTk::FbString getWMName(Window window); FbTk::FbString getWMClassName(Window win); FbTk::FbString getWMClassClass(Window win); } // end namespace Xutil #endif // XUTIL_HH fluxbox-1.3.5/src/PaxHeaders.25974/Xinerama.hh0000644000175000017500000000013212106662425017130 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.247812462 30 ctime=1360750008.711811614 fluxbox-1.3.5/src/Xinerama.hh0000644000175000017500000001016412106662425015161 0ustar00mgmg00000000000000// Xinerama.hh for Fluxbox - helpful tools for multiple heads // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef XINERAMA_HH #define XINERAMA_HH #include "FbMenu.hh" #include "fluxbox.hh" #include "Screen.hh" #include "FbTk/RefCount.hh" #include "FbTk/SimpleCommand.hh" #include "FbTk/RadioMenuItem.hh" // provides a generic way for giving an object a xinerama head menu // The object must have two functions: // int getOnHead(), and // void setOnHead(int) /// this class holds the xinerama items template class XineramaHeadMenuItem : public FbTk::RadioMenuItem { public: XineramaHeadMenuItem(const FbTk::FbString &label, ItemType &object, int headnum, FbTk::RefCount > &cmd): FbTk::RadioMenuItem(label,cmd), m_object(object), m_headnum(headnum) {} XineramaHeadMenuItem(const FbTk::FbString &label, ItemType &object, int headnum): FbTk::RadioMenuItem(label), m_object(object), m_headnum(headnum) {} bool isSelected() const { return m_object.getOnHead() == m_headnum; } void click(int button, int time, unsigned int mods) { m_object.saveOnHead(m_headnum); FbTk::RadioMenuItem::click(button, time, mods); } private: ItemType &m_object; int m_headnum; }; /// Create a xinerama menu template class XineramaHeadMenu : public ToggleMenu { public: XineramaHeadMenu(FbTk::ThemeProxy &tm, BScreen &screen, FbTk::ImageControl &imgctrl, FbTk::Layer &layer, ItemType &item, const FbTk::FbString & title = ""); void reloadHeads(); private: ItemType &m_object; BScreen &m_screen; }; template XineramaHeadMenu::XineramaHeadMenu( FbTk::ThemeProxy &tm, BScreen &screen, FbTk::ImageControl &imgctrl, FbTk::Layer &layer, ItemType &item, const FbTk::FbString & title): ToggleMenu(tm, imgctrl, layer), m_object(item), m_screen(screen) { setLabel(title); reloadHeads(); } template void XineramaHeadMenu::reloadHeads() { removeAll(); FbTk::RefCount > saverc_cmd(new FbTk::SimpleCommand( *Fluxbox::instance(), &Fluxbox::save_rc)); for (int i=1; i <= m_screen.numHeads(); ++i) { // TODO: nls /* sprintf(tname, I18n::instance()-> getMessage( FBNLS::ScreenSet, FBNLS::XineramaDefaultHeadFormat, "Head %d"), i); //m_id starts at 0 */ std::string tname("Head "); tname += FbTk::StringUtil::number2String(i); insert(new XineramaHeadMenuItem( tname.c_str(), m_object, i, saverc_cmd)); } // TODO: nls insert(new XineramaHeadMenuItem( "All Heads", m_object, 0, saverc_cmd)); updateMenu(); } #endif // XINERAMA_HH fluxbox-1.3.5/src/PaxHeaders.25974/Strut.hh0000644000175000017500000000013212106662425016505 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.243812462 30 ctime=1360750008.711811614 fluxbox-1.3.5/src/Strut.hh0000644000175000017500000000432012106662425014533 0ustar00mgmg00000000000000// Strut.hh for Fluxbox Window Manager // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef STRUT_HH #define STRUT_HH class Strut { public: Strut(int head, int left, int right, int top, int bottom, Strut* next = 0) :m_head(head), m_left(left), m_right(right), m_top(top), m_bottom(bottom), m_next(next) { } int head() const { return m_head; } int left() const { return m_left; } int right() const { return m_right; } int bottom() const { return m_bottom; } int top() const { return m_top; } Strut* next() const { return m_next; } bool operator == (const Strut &test) const { return (head() == test.head() && left() == test.left() && right() == test.right() && top() == test.top() && bottom() == test.bottom()); } private: Strut():m_head(0), m_left(0), m_right(0), m_top(0), m_bottom(0), m_next(0) {} int m_head; int m_left, m_right, m_top, m_bottom; Strut *m_next; ///< link to struts on all heads }; #endif // STRUT_HH fluxbox-1.3.5/src/PaxHeaders.25974/WinClient.cc0000644000175000017500000000013212106662425017246 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.243812462 30 ctime=1360750008.711811614 fluxbox-1.3.5/src/WinClient.cc0000644000175000017500000004342312106662425015303 0ustar00mgmg00000000000000// WinClient.cc for Fluxbox - an X11 Window manager // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "WinClient.hh" #include "Window.hh" #include "fluxbox.hh" #include "FocusControl.hh" #include "Screen.hh" #include "FbAtoms.hh" #include "Xutil.hh" #include "Debug.hh" #include "FbTk/EventManager.hh" #include "FbTk/MultLayers.hh" #include #include #include #include #include #ifdef HAVE_CASSERT #include #else #include #endif #ifdef HAVE_CSTRING #include #else #include #endif using std::string; using std::list; using std::mem_fun; using std::endl; using std::cerr; using std::hex; using std::dec; namespace { void sendMessage(const WinClient& win, Atom atom, Time time) { XEvent ce; ce.xclient.type = ClientMessage; ce.xclient.message_type = FbAtoms::instance()->getWMProtocolsAtom(); ce.xclient.display = win.display(); ce.xclient.window = win.window(); ce.xclient.format = 32; ce.xclient.data.l[0] = atom; ce.xclient.data.l[1] = time; ce.xclient.data.l[2] = 0l; ce.xclient.data.l[3] = 0l; ce.xclient.data.l[4] = 0l; XSendEvent(win.display(), win.window(), false, NoEventMask, &ce); } } // end of anonymous namespace WinClient::TransientWaitMap WinClient::s_transient_wait; WinClient::WinClient(Window win, BScreen &screen, FluxboxWindow *fbwin): Focusable(screen, fbwin), FbTk::FbWindow(win), transient_for(0), window_group(0), old_bw(0), initial_state(0), normal_hint_flags(0), wm_hint_flags(0), m_modal_count(0), m_modal(false), accepts_input(false), send_focus_message(false), send_close_message(false), m_title_override(false), m_icon_override(false), m_window_type(WindowState::TYPE_NORMAL), m_mwm_hint(0), m_strut(0) { old_bw = borderWidth(); updateWMProtocols(); updateMWMHints(); updateWMHints(); updateWMNormalHints(); updateWMClassHint(); updateTitle(); Fluxbox::instance()->saveWindowSearch(win, this); if (window_group != None) Fluxbox::instance()->saveGroupSearch(window_group, this); // search for this in transient waiting list if (s_transient_wait.find(win) != s_transient_wait.end()) { // Found transients that are waiting for this. // For each transient that waits call updateTransientInfo for_each(s_transient_wait[win].begin(), s_transient_wait[win].end(), mem_fun(&WinClient::updateTransientInfo)); // clear transient waiting list for this window s_transient_wait.erase(win); } // also check if this window is a transient // this needs to be done before creating an fbwindow, so this doesn't get // tabbed using the apps file updateTransientInfo(); } WinClient::~WinClient() { fbdbg<<__FILE__<<"(~"<<__FUNCTION__<<")[this="<remove(window()); Fluxbox *fluxbox = Fluxbox::instance(); if (window()) fluxbox->removeWindowSearch(window()); clearStrut(); // // clear transients and transient_for // if (transient_for != 0) { assert(transient_for != this); transient_for->transientList().remove(this); if (m_modal) transient_for->removeModal(); } while (!transients.empty()) { transients.back()->transient_for = 0; transients.pop_back(); } accepts_input = send_focus_message = false; if (fbwindow() != 0) fbwindow()->removeClient(*this); // this takes care of any focus issues dieSig().emit(*this); // This fixes issue 1 (see WinClient.hh): // If transients die before the transient_for is created transient_for = 0; removeTransientFromWaitingList(); s_transient_wait.erase(window()); if (window_group != 0) { fluxbox->removeGroupSearch(window_group); window_group = 0; } if (m_mwm_hint != 0) XFree(m_mwm_hint); } bool WinClient::acceptsFocus() const { return ((accepts_input || send_focus_message) && // focusing fbpanel messes up quite a few things m_window_type != WindowState::TYPE_DOCK && m_window_type != WindowState::TYPE_SPLASH); } bool WinClient::sendFocus() { if (accepts_input) { setInputFocus(RevertToPointerRoot, CurrentTime); FocusControl::setExpectingFocus(this); return true; } if (!send_focus_message) return false; fbdbg<<"WinClient::"<<__FUNCTION__<<": this = "<getWMTakeFocusAtom(), Fluxbox::instance()->getLastTime()); FocusControl::setExpectingFocus(this); return true; } void WinClient::sendClose(bool forceful) { if (forceful || !send_close_message) XKillClient(display(), window()); else { // send WM_DELETE message sendMessage(*this, FbAtoms::instance()->getWMDeleteAtom(), CurrentTime); } } bool WinClient::getAttrib(XWindowAttributes &attr) const { return XGetWindowAttributes(display(), window(), &attr); } bool WinClient::getWMName(XTextProperty &textprop) const { return XGetWMName(display(), window(), &textprop); } bool WinClient::getWMIconName(XTextProperty &textprop) const { return XGetWMIconName(display(), window(), &textprop); } string WinClient::getWMRole() const { Atom wm_role = XInternAtom(FbTk::App::instance()->display(), "WM_WINDOW_ROLE", False); return textProperty(wm_role); } void WinClient::updateWMClassHint() { m_instance_name = Xutil::getWMClassName(window()); m_class_name = Xutil::getWMClassClass(window()); } void WinClient::updateTransientInfo() { // remove this from parent if (transientFor() != 0) { transientFor()->transientList().remove(this); if (m_modal) transientFor()->removeModal(); } transient_for = 0; // determine if this is a transient window Window win = 0; if (!XGetTransientForHint(display(), window(), &win)) { fbdbg<<__FUNCTION__<<": window() = 0x"<searchWindow(win); // if we did not find a transient WinClient but still // have a transient X window, then we have to put the // X transient_for window in a waiting list and update this clients transient // list later when the transient_for has a Winclient if (!transient_for) { // We might also already waiting for an old transient_for; // // this call fixes issue 2: // If transients changes to new transient_for before the old transient_for is created. // (see comment in WinClient.hh) // removeTransientFromWaitingList(); s_transient_wait[win].push_back(this); } fbdbg<<__FUNCTION__<<": transient_for window = 0x"<addModal(); else transient_for->removeModal(); } // TODO: we're not implementing the following part of EWMH spec: // "if WM_TRANSIENT_FOR is not set or set to the root window the dialog is // modal for its window group." } bool WinClient::validateClient() const { FbTk::App::instance()->sync(false); XEvent e; if (( XCheckTypedWindowEvent(display(), window(), DestroyNotify, &e) || XCheckTypedWindowEvent(display(), window(), UnmapNotify, &e)) && XPutBackEvent(display(), &e)) { Fluxbox::instance()->ungrab(); return false; } return true; } void WinClient::setStrut(Strut *strut) { clearStrut(); m_strut = strut; } void WinClient::clearStrut() { if (m_strut != 0) { screen().clearStrut(m_strut); screen().updateAvailableWorkspaceArea(); m_strut = 0; } } bool WinClient::focus() { if (fbwindow() == 0) return false; else return fbwindow()->setCurrentClient(*this, true); } bool WinClient::isFocused() const { return (fbwindow() ? fbwindow()->isFocused() && &fbwindow()->winClient() == this : false); } void WinClient::setAttentionState(bool value) { Focusable::setAttentionState(value); if (fbwindow() && !fbwindow()->isFocused()) fbwindow()->setAttentionState(value); } void WinClient::updateWMProtocols() { Atom *proto = 0; int num_return = 0; FbAtoms *fbatoms = FbAtoms::instance(); if (XGetWMProtocols(display(), window(), &proto, &num_return)) { // defaults send_focus_message = false; send_close_message = false; for (int i = 0; i < num_return; ++i) { if (proto[i] == fbatoms->getWMDeleteAtom()) send_close_message = true; else if (proto[i] == fbatoms->getWMTakeFocusAtom()) send_focus_message = true; } XFree(proto); if (fbwindow()) fbwindow()->updateFunctions(); } else { fbdbg<<"Warning: Failed to read WM Protocols. "< remove_list; // The worst case complexity is huge, but since we usually do not (virtualy never) // have a large transient waiting list the time spent here is neglectable TransientWaitMap::iterator t_it = s_transient_wait.begin(); TransientWaitMap::iterator t_it_end = s_transient_wait.end(); for (; t_it != t_it_end; ++t_it) { (*t_it).second.remove(this); // if the list is empty, add it to remove list // so we can erase it later if ((*t_it).second.empty()) remove_list.push_back((*t_it).first); } // erase empty waiting lists list::iterator it = remove_list.begin(); list::iterator it_end = remove_list.end(); for (; it != it_end; ++it) s_transient_wait.erase(*it); } fluxbox-1.3.5/src/PaxHeaders.25974/WinClient.hh0000644000175000017500000000013212106662425017260 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.243812462 30 ctime=1360750008.715811614 fluxbox-1.3.5/src/WinClient.hh0000644000175000017500000001530212106662425015310 0ustar00mgmg00000000000000// WinClient.hh for Fluxbox - an X11 Window manager // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef WINCLIENT_HH #define WINCLIENT_HH #include "Window.hh" #include "WindowState.hh" #include "FbTk/FbWindow.hh" #include "FbTk/FbString.hh" class BScreen; class Strut; /// Holds client window info class WinClient: public Focusable, public FbTk::FbWindow { public: typedef std::list TransientList; // this structure only contains 3 elements... the Motif 2.0 structure contains // 5... we only need the first 3... so that is all we will define typedef struct MwmHints { unsigned long flags; // Motif wm flags unsigned long functions; // Motif wm functions unsigned long decorations; // Motif wm decorations } MwmHints; WinClient(Window win, BScreen &screen, FluxboxWindow *fbwin = 0); ~WinClient(); bool sendFocus(); // returns whether we sent a message or not // i.e. whether we assume the focus will get taken bool acceptsFocus() const; // will this window accept focus (according to hints) void sendClose(bool forceful = false); // not aware of anything that makes this false at present bool isClosable() const { return true; } /// updates from wm class hints void updateWMClassHint(); void updateWMProtocols(); // override the title with this void setTitle(const FbTk::FbString &title); void updateTitle(); /// updates transient window information void updateTransientInfo(); // override the icon with this void setIcon(const FbTk::PixmapWithMask& pm); // update some thints void updateMWMHints(); void updateWMHints(); void updateWMNormalHints(); void setStrut(Strut *strut); void clearStrut(); bool focus(); // calls Window->setCurrentClient to give focus to this client bool isFocused() const; void setAttentionState(bool value); void setGroupLeftWindow(Window win); void setFluxboxWindow(FluxboxWindow *win); // does this client have a pending unmap or destroy event? bool validateClient() const; // // accessors // bool getAttrib(XWindowAttributes &attr) const; bool getWMName(XTextProperty &textprop) const; bool getWMIconName(XTextProperty &textprop) const; std::string getWMRole() const; WindowState::WindowType getWindowType() const { return m_window_type; } void setWindowType(WindowState::WindowType type) { m_window_type = type; } long getCardinalProperty(Atom prop,bool*exists=NULL) const { return FbTk::FbWindow::cardinalProperty(prop,exists); } FbTk::FbString getTextProperty(Atom prop,bool*exists=NULL) const { return FbTk::FbWindow::textProperty(prop,exists); } WinClient *transientFor() { return transient_for; } const WinClient *transientFor() const { return transient_for; } TransientList &transientList() { return transients; } const TransientList &transientList() const { return transients; } bool isTransient() const { return transient_for != 0; } bool isModal() const { return m_modal_count > 0; } bool isStateModal() const { return m_modal; } void setStateModal(bool state); int gravity() const { return m_size_hints.win_gravity; } bool hasGroupLeftWindow() const; // grouping is tracked by remembering the window to the left in the group Window getGroupLeftWindow() const; const MwmHints *getMwmHint() const { return m_mwm_hint; } const SizeHints &sizeHints() const { return m_size_hints; } unsigned int minWidth() const { return m_size_hints.min_width; } unsigned int minHeight() const { return m_size_hints.min_height; } unsigned int maxWidth() const { return m_size_hints.max_width; } unsigned int maxHeight() const { return m_size_hints.max_height; } unsigned int widthInc() const { return m_size_hints.width_inc; } unsigned int heightInc() const { return m_size_hints.height_inc; } static const int PropMwmHintsElements = 3; /** !! TODO !! remove or move these to private */ WinClient *transient_for; // which window are we a transient for? std::list transients; // which windows are our transients? Window window_group; int old_bw; unsigned long initial_state, normal_hint_flags, wm_hint_flags; private: /// removes client from any waiting list and clears empty waiting lists void removeTransientFromWaitingList(); // some transient of ours (or us) is modal void addModal() { ++m_modal_count; } // some transient (or us) is no longer modal void removeModal() { --m_modal_count; } // number of transients which we are modal for int m_modal_count; bool m_modal; bool accepts_input, send_focus_message, send_close_message; bool m_title_override; bool m_icon_override; WindowState::WindowType m_window_type; MwmHints *m_mwm_hint; SizeHints m_size_hints; Strut *m_strut; // map transient_for X window to winclient transient // (used if transient_for FbWindow was created after transient) // Since a lot of transients can be created before transient_for // we need to map transient_for window to a list of transients // // Stuff to worry about: // 1) If transients die before the transient_for is created // 2) If transients changes to a new transient_for before old transient_for is created // ( 3) Transient_for is never created // This is not a big deal since the key value will be cleared // once the list is empty ) typedef std::map TransientWaitMap; static TransientWaitMap s_transient_wait; }; #endif // WINCLIENT_HH fluxbox-1.3.5/src/PaxHeaders.25974/FbMenu.cc0000644000175000017500000000013212106662425016526 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.239812462 30 ctime=1360750008.715811614 fluxbox-1.3.5/src/FbMenu.cc0000644000175000017500000000527512106662425014566 0ustar00mgmg00000000000000// FbMenu.cc for fluxbox // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "FbMenu.hh" #include "fluxbox.hh" #include "Screen.hh" #include "WindowCmd.hh" #include "FbTk/AutoReloadHelper.hh" FluxboxWindow *FbMenu::s_window = 0; FbMenu::FbMenu(FbTk::ThemeProxy &tm, FbTk::ImageControl &imgctrl, FbTk::Layer &layer): FbTk::Menu(tm, imgctrl), m_layeritem(fbwindow(), layer) { fbwindow().setWindowRole("fluxbox-menu"); } void FbMenu::buttonPressEvent(XButtonEvent &be) { WinClient *old = WindowCmd::client(); WindowCmd::setWindow(s_window); FbTk::Menu::buttonPressEvent(be); WindowCmd::setClient(old); } void FbMenu::buttonReleaseEvent(XButtonEvent &be) { BScreen *screen = Fluxbox::instance()->findScreen(screenNumber()); if (be.window == titleWindow() && isMoving() && screen) { // menu stopped moving, so update head int head = screen->getHead(be.x_root, be.y_root); setScreen(screen->getHeadX(head), screen->getHeadY(head), screen->getHeadWidth(head), screen->getHeadHeight(head)); } // now get on with the show WinClient *old = WindowCmd::client(); WindowCmd::setWindow(s_window); FbTk::Menu::buttonReleaseEvent(be); WindowCmd::setClient(old); } void FbMenu::keyPressEvent(XKeyEvent &ke) { WinClient *old = WindowCmd::client(); WindowCmd::setWindow(s_window); FbTk::Menu::keyPressEvent(ke); WindowCmd::setClient(old); } fluxbox-1.3.5/src/PaxHeaders.25974/FbMenu.hh0000644000175000017500000000013212106662425016540 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.239812462 30 ctime=1360750008.715811614 fluxbox-1.3.5/src/FbMenu.hh0000644000175000017500000000443112106662425014571 0ustar00mgmg00000000000000// FbMenu.hh for Fluxbox Window Manager // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBMENU_HH #define FBMENU_HH #include #include "FbTk/Menu.hh" #include "FbTk/LayerItem.hh" #include "FbTk/AutoReloadHelper.hh" class FluxboxWindow; namespace FbTk { class MenuTheme; } /// a layered and shaped menu class FbMenu:public FbTk::Menu { public: FbMenu(FbTk::ThemeProxy &tm, FbTk::ImageControl &imgctrl, FbTk::Layer &layer); virtual ~FbMenu() { } void raise() { m_layeritem.raise(); } void lower() { m_layeritem.lower(); } void buttonPressEvent(XButtonEvent &be); void buttonReleaseEvent(XButtonEvent &be); void keyPressEvent(XKeyEvent &ke); void setReloadHelper(FbTk::AutoReloadHelper *helper) { m_reloader.reset(helper); } FbTk::AutoReloadHelper *reloadHelper() { return m_reloader.get(); } static void setWindow(FluxboxWindow *win) { s_window = win; } static FluxboxWindow *window() { return s_window; } private: FbTk::LayerItem m_layeritem; std::auto_ptr m_reloader; static FluxboxWindow *s_window; }; #endif // FBMENU_HH fluxbox-1.3.5/src/PaxHeaders.25974/Layer.hh0000644000175000017500000000013212106662425016440 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.235812462 30 ctime=1360750008.715811614 fluxbox-1.3.5/src/Layer.hh0000644000175000017500000000662412106662425014477 0ustar00mgmg00000000000000// Layer.hh for Fluxbox Window Manager // Copyright (c) 2006 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef RESOURCE_LAYER_HH #define RESOURCE_LAYER_HH #include "FbTk/StringUtil.hh" /** * (This is not the layer->raise/lower handling stuff, @see FbTk::Layer) * Class to store layer numbers (special Resource type) * we have a special resource type because we need to be able to name certain layers * a Resource wouldn't allow this */ class ResourceLayer { public: enum { MENU = 0, ABOVE_DOCK = 2, DOCK = 4, TOP = 6, NORMAL = 8, BOTTOM = 10, DESKTOP = 12, NUM_LAYERS = 13 }; explicit ResourceLayer(int i) : m_num(i) {}; static int getNumFromString(const std::string &str) { int tempnum = 0; std::string v = FbTk::StringUtil::toLower(str); if (FbTk::StringUtil::extractNumber(str, tempnum)) return tempnum; if (v == "menu") return ::ResourceLayer::MENU; if (v == "abovedock") return ::ResourceLayer::ABOVE_DOCK; if (v == "dock") return ::ResourceLayer::DOCK; if (v == "top") return ::ResourceLayer::TOP; if (v == "normal") return ::ResourceLayer::NORMAL; if (v == "bottom") return ::ResourceLayer::BOTTOM; if (v == "desktop") return ::ResourceLayer::DESKTOP; return -1; } static std::string getString(int num) { switch (num) { case ::ResourceLayer::MENU: return std::string("Menu"); case ::ResourceLayer::ABOVE_DOCK: return std::string("AboveDock"); case ::ResourceLayer::DOCK: return std::string("Dock"); case ::ResourceLayer::TOP: return std::string("Top"); case ::ResourceLayer::NORMAL: return std::string("Normal"); case ::ResourceLayer::BOTTOM: return std::string("Bottom"); case ::ResourceLayer::DESKTOP: return std::string("Desktop"); default: return FbTk::StringUtil::number2String(num); } } int getNum() const { return m_num; } std::string getString() const { return getString(m_num); } ResourceLayer &operator=(int num) { m_num = num; return *this; } private: int m_num; }; #endif // RESOURCE_LAYER_HH fluxbox-1.3.5/src/PaxHeaders.25974/LayerMenu.cc0000644000175000017500000000013212106662425017253 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.235812462 30 ctime=1360750008.715811614 fluxbox-1.3.5/src/LayerMenu.cc0000644000175000017500000000565112106662425015311 0ustar00mgmg00000000000000// LayerMenu.cc // Copyright (c) 2005 - 2006 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "LayerMenu.hh" #include "FbCommands.hh" #include "Layer.hh" #include "FbTk/RefCount.hh" #include "FbTk/SimpleCommand.hh" #include "FbTk/I18n.hh" LayerMenu::LayerMenu(FbTk::ThemeProxy &tm, FbTk::ImageControl &imgctrl, FbTk::Layer &layer, LayerObject *object, bool save_rc): ToggleMenu(tm, imgctrl, layer) { _FB_USES_NLS; struct { int set; int base; FbTk::FbString default_str; int layernum; } layer_menuitems[] = { //TODO: nls {0, 0, _FB_XTEXT(Layer, AboveDock, "Above Dock", "Layer above dock"), ResourceLayer::ABOVE_DOCK}, {0, 0, _FB_XTEXT(Layer, Dock, "Dock", "Layer dock"), ResourceLayer::DOCK}, {0, 0, _FB_XTEXT(Layer, Top, "Top", "Layer top"), ResourceLayer::TOP}, {0, 0, _FB_XTEXT(Layer, Normal, "Normal", "Layer normal"), ResourceLayer::NORMAL}, {0, 0, _FB_XTEXT(Layer, Bottom, "Bottom", "Layer bottom"), ResourceLayer::BOTTOM}, {0, 0, _FB_XTEXT(Layer, Desktop, "Desktop", "Layer desktop"), ResourceLayer::DESKTOP}, }; FbTk::RefCount > saverc_cmd(new FbCommands::SaveResources()); for (size_t i=0; i < 6; ++i) { // TODO: fetch nls string if (save_rc) { insert(new LayerMenuItem(layer_menuitems[i].default_str, object, layer_menuitems[i].layernum, saverc_cmd)); } else { insert(new LayerMenuItem(layer_menuitems[i].default_str, object, layer_menuitems[i].layernum)); } } updateMenu(); } // update which items appear disabled whenever we show the menu void LayerMenu::show() { frameWindow().updateBackground(false); clearWindow(); FbTk::Menu::show(); } fluxbox-1.3.5/src/PaxHeaders.25974/LayerMenu.hh0000644000175000017500000000013212106662425017265 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.235812462 30 ctime=1360750008.719811614 fluxbox-1.3.5/src/LayerMenu.hh0000644000175000017500000000513612106662425015321 0ustar00mgmg00000000000000// LayerMenu.hh for Fluxbox - fluxbox toolkit // Copyright (c) 2003-2004 Henrik Kinnunen (fluxgen at fluxbox dot org) // and Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef LAYERMENU_HH #define LAYERMENU_HH #include "ToggleMenu.hh" #include "FbTk/RadioMenuItem.hh" class LayerObject { public: virtual void moveToLayer(int layer_number) = 0; virtual int layerNumber() const = 0; virtual ~LayerObject() { } }; /// this class holds the layermenu items class LayerMenuItem : public FbTk::RadioMenuItem { public: LayerMenuItem(const FbTk::FbString &label, LayerObject *object, int layernum, FbTk::RefCount > &cmd): FbTk::RadioMenuItem(label, cmd), m_object(object), m_layernum(layernum) {} LayerMenuItem(const FbTk::FbString &label, LayerObject *object, int layernum): FbTk::RadioMenuItem(label), m_object(object), m_layernum(layernum) {} bool isSelected() const { return m_object->layerNumber() == m_layernum; } void click(int button, int time, unsigned int mods) { m_object->moveToLayer(m_layernum); FbTk::RadioMenuItem::click(button, time, mods); } private: LayerObject *m_object; int m_layernum; }; /// Create a layer menu inside from the given menu class LayerMenu : public ToggleMenu { public: LayerMenu(FbTk::ThemeProxy &tm, FbTk::ImageControl &imgctrl, FbTk::Layer &layer, LayerObject *item, bool save_rc); void show(); }; #endif // LAYERMENU_HH fluxbox-1.3.5/src/PaxHeaders.25974/FbCommands.cc0000644000175000017500000000013212106662425017363 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.231812462 30 ctime=1360750008.719811614 fluxbox-1.3.5/src/FbCommands.cc0000644000175000017500000004530712106662425015423 0ustar00mgmg00000000000000// FbCommands.cc for Fluxbox // Copyright (c) 2003 - 2008 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "FbCommands.hh" #include "fluxbox.hh" #include "Screen.hh" #include "ScreenPlacement.hh" #include "CommandDialog.hh" #include "FocusControl.hh" #include "Workspace.hh" #include "Window.hh" #include "Keys.hh" #include "MenuCreator.hh" #include "FbTk/Theme.hh" #include "FbTk/Menu.hh" #include "FbTk/CommandParser.hh" #include "FbTk/StringUtil.hh" #include "FbTk/stringstream.hh" #include #include #include #include #include #ifdef HAVE_CSTDLIB #include #else #include #endif #ifdef HAVE_CSTRING #include #else #include #endif #ifdef HAVE_CONFIG_H #include "config.h" #endif // HAVE_CONFIG_H #if defined(__EMX__) && defined(HAVE_PROCESS_H) #include // for P_NOWAIT #endif // __EMX__ using std::string; using std::pair; using std::set; using std::ofstream; using std::endl; using std::ios; namespace { void showMenu(BScreen &screen, FbTk::Menu &menu) { // check if menu has changed if (typeid(menu) == typeid(FbMenu)) { FbMenu *fbmenu = static_cast(&menu); if (fbmenu->reloadHelper()) fbmenu->reloadHelper()->checkReload(); } FbMenu::setWindow(FocusControl::focusedFbWindow()); Window ignored_w; int ignored_i; unsigned int ignored_ui; int x = 0; int y = 0; XQueryPointer(menu.fbwindow().display(), screen.rootWindow().window(), &ignored_w, &ignored_w, &x, &y, &ignored_i, &ignored_i, &ignored_ui); screen.placementStrategy() .placeAndShowMenu(menu, x, y, false); } } namespace FbCommands { using FbTk::Command; REGISTER_UNTRUSTED_COMMAND_WITH_ARGS(exec, FbCommands::ExecuteCmd, void); REGISTER_UNTRUSTED_COMMAND_WITH_ARGS(execute, FbCommands::ExecuteCmd, void); REGISTER_UNTRUSTED_COMMAND_WITH_ARGS(execcommand, FbCommands::ExecuteCmd, void); ExecuteCmd::ExecuteCmd(const string &cmd, int screen_num):m_cmd(cmd), m_screen_num(screen_num) { } void ExecuteCmd::execute() { run(); } int ExecuteCmd::run() { #if defined(__EMX__) || defined(_WIN32) #ifndef PATH_MAX #define PATH_MAX 1024 #endif char comspec[PATH_MAX] = {0}; char * env_var = getenv("COMSPEC"); if (env_var != NULL) { strncpy(comspec, env_var, PATH_MAX - 1); comspec[PATH_MAX - 1] = '\0'; } else { strncpy(comspec, "cmd.exe", 7); comspec[7] = '\0'; } return spawnlp(P_NOWAIT, comspec, comspec, "/c", m_cmd.c_str(), static_cast(NULL)); #else pid_t pid = fork(); if (pid) return pid; // 'display' is given as 'host:number.screen'. we want to give the // new app a good home, so we remove '.screen' from what is given // us from the xserver and replace it with the screen_num of the Screen // the user currently points at with the mouse string display = DisplayString(FbTk::App::instance()->display()); int screen_num = m_screen_num; if (screen_num < 0) { if (Fluxbox::instance()->mouseScreen() == 0) screen_num = 0; else screen_num = Fluxbox::instance()->mouseScreen()->screenNumber(); } // strip away the '.screen' size_t dot = display.rfind(':'); dot = display.find('.', dot); if (dot != string::npos) { // 'display' has actually a '.screen' part display.erase(dot); } display += '.'; display += FbTk::StringUtil::number2String(screen_num); FbTk::App::setenv("DISPLAY", display.c_str()); // get shell path from the environment // this process exits immediately, so we don't have to worry about memleaks const char *shell = getenv("SHELL"); if (!shell) shell = "/bin/sh"; setsid(); execl(shell, shell, "-c", m_cmd.c_str(), static_cast(NULL)); exit(EXIT_SUCCESS); return pid; // compiler happy -> we are happy ;) #endif } FbTk::Command *ExportCmd::parse(const string &command, const string &args, bool trusted) { string name = args; FbTk::StringUtil::removeFirstWhitespace(name); if (command != "setresourcevalue") FbTk::StringUtil::removeTrailingWhitespace(name); size_t pos = name.find_first_of(command == "export" ? "=" : " \t"); if (pos == string::npos || pos == name.size() || !trusted) return 0; string value = name.substr(pos + 1); name = name.substr(0, pos); if (command == "setresourcevalue") return new SetResourceValueCmd(name, value); return new ExportCmd(name, value); } REGISTER_COMMAND_PARSER(setenv, ExportCmd::parse, void); REGISTER_COMMAND_PARSER(export, ExportCmd::parse, void); REGISTER_COMMAND_PARSER(setresourcevalue, ExportCmd::parse, void); ExportCmd::ExportCmd(const string& name, const string& value) : m_name(name), m_value(value) { } void ExportCmd::execute() { FbTk::App::instance()->setenv(m_name.c_str(), m_value.c_str()); } REGISTER_COMMAND(exit, FbCommands::ExitFluxboxCmd, void); REGISTER_COMMAND(quit, FbCommands::ExitFluxboxCmd, void); void ExitFluxboxCmd::execute() { Fluxbox::instance()->shutdown(); } REGISTER_COMMAND(saverc, FbCommands::SaveResources, void); void SaveResources::execute() { Fluxbox::instance()->save_rc(); } REGISTER_COMMAND_PARSER(restart, RestartFluxboxCmd::parse, void); FbTk::Command *RestartFluxboxCmd::parse(const string &command, const string &args, bool trusted) { if (!trusted && !args.empty()) return 0; return new RestartFluxboxCmd(args); } RestartFluxboxCmd::RestartFluxboxCmd(const string &cmd):m_cmd(cmd){ } void RestartFluxboxCmd::execute() { Fluxbox::instance()->restart(m_cmd.c_str()); } REGISTER_COMMAND(reconfigure, FbCommands::ReconfigureFluxboxCmd, void); REGISTER_COMMAND(reconfig, FbCommands::ReconfigureFluxboxCmd, void); void ReconfigureFluxboxCmd::execute() { Fluxbox::instance()->reconfigure(); } REGISTER_COMMAND(reloadstyle, FbCommands::ReloadStyleCmd, void); void ReloadStyleCmd::execute() { SetStyleCmd cmd(Fluxbox::instance()->getStyleFilename()); cmd.execute(); } REGISTER_COMMAND_WITH_ARGS(setstyle, FbCommands::SetStyleCmd, void); SetStyleCmd::SetStyleCmd(const string &filename):m_filename(filename) { } void SetStyleCmd::execute() { if (FbTk::ThemeManager::instance().load(m_filename, Fluxbox::instance()->getStyleOverlayFilename())) { Fluxbox::instance()->saveStyleFilename(m_filename.c_str()); Fluxbox::instance()->save_rc(); } } REGISTER_COMMAND_WITH_ARGS(keymode, FbCommands::KeyModeCmd, void); KeyModeCmd::KeyModeCmd(const string &arguments):m_keymode(arguments),m_end_args("None Escape") { string::size_type second_pos = m_keymode.find_first_of(" \t", 0); if (second_pos != string::npos) { // ok we have arguments, parsing them here m_end_args = m_keymode.substr(second_pos); m_keymode.erase(second_pos); // remove argument from command } if (m_keymode != "default") Fluxbox::instance()->keys()->addBinding(m_keymode + ": " + m_end_args + " :keymode default"); } void KeyModeCmd::execute() { Fluxbox::instance()->keys()->keyMode(m_keymode); } REGISTER_COMMAND(hidemenus, FbCommands::HideMenuCmd, void); void HideMenuCmd::execute() { FbTk::Menu::hideShownMenu(); } FbTk::Command *ShowClientMenuCmd::parse(const string &command, const string &args, bool trusted) { int opts; string pat; FocusableList::parseArgs(args, opts, pat); return new ShowClientMenuCmd(opts, pat); } REGISTER_COMMAND_PARSER(clientmenu, ShowClientMenuCmd::parse, void); void ShowClientMenuCmd::execute() { BScreen *screen = Fluxbox::instance()->mouseScreen(); if (screen == 0) return; // TODO: ClientMenu only accepts lists of FluxboxWindows for now // when that's fixed, use a FocusableList for m_list const FocusableList *list = FocusableList::getListFromOptions(*screen, m_option); m_list.clear(); FocusControl::Focusables::const_iterator it = list->clientList().begin(), it_end = list->clientList().end(); for (; it != it_end; ++it) { if (typeid(**it) == typeid(FluxboxWindow) && m_pat.match(**it)) m_list.push_back(static_cast(*it)); } m_menu.reset(new ClientMenu(*screen, m_list, false)); // dont listen to list changes ::showMenu(*screen, *m_menu.get()); } REGISTER_COMMAND_WITH_ARGS(custommenu, FbCommands::ShowCustomMenuCmd, void); ShowCustomMenuCmd::ShowCustomMenuCmd(const string &arguments) : custom_menu_file(arguments) {} void ShowCustomMenuCmd::execute() { BScreen *screen = Fluxbox::instance()->mouseScreen(); if (screen == 0) return; if (!m_menu.get() || screen->screenNumber() != m_menu->screenNumber()) { m_menu.reset(screen->createMenu("")); m_menu->setReloadHelper(new FbTk::AutoReloadHelper()); m_menu->reloadHelper()->setReloadCmd(FbTk::RefCount >(new FbTk::SimpleCommand(*this, &ShowCustomMenuCmd::reload))); m_menu->reloadHelper()->setMainFile(custom_menu_file); } else m_menu->reloadHelper()->checkReload(); ::showMenu(*screen, *m_menu.get()); } void ShowCustomMenuCmd::reload() { m_menu->removeAll(); m_menu->setLabel(FbTk::BiDiString("")); MenuCreator::createFromFile(custom_menu_file, *m_menu.get(), m_menu->reloadHelper()); } REGISTER_COMMAND(rootmenu, FbCommands::ShowRootMenuCmd, void); void ShowRootMenuCmd::execute() { BScreen *screen = Fluxbox::instance()->mouseScreen(); if (screen == 0) return; ::showMenu(*screen, screen->rootMenu()); } REGISTER_COMMAND(workspacemenu, FbCommands::ShowWorkspaceMenuCmd, void); void ShowWorkspaceMenuCmd::execute() { BScreen *screen = Fluxbox::instance()->mouseScreen(); if (screen == 0) return; ::showMenu(*screen, screen->workspaceMenu()); } REGISTER_COMMAND_WITH_ARGS(setworkspacename, FbCommands::SetWorkspaceNameCmd, void); SetWorkspaceNameCmd::SetWorkspaceNameCmd(const string &name, int spaceid): m_name(name), m_workspace(spaceid) { if (name.empty()) m_name = "empty"; } void SetWorkspaceNameCmd::execute() { BScreen *screen = Fluxbox::instance()->mouseScreen(); if (screen == 0) { screen = Fluxbox::instance()->keyScreen(); if (screen == 0) return; } if (m_workspace < 0) { screen->currentWorkspace()->setName(m_name); } else { Workspace *space = screen->getWorkspace(m_workspace); if (space == 0) return; space->setName(m_name); } } REGISTER_COMMAND(setworkspacenamedialog, FbCommands::WorkspaceNameDialogCmd, void); void WorkspaceNameDialogCmd::execute() { BScreen *screen = Fluxbox::instance()->mouseScreen(); if (screen == 0) return; CommandDialog *win = new CommandDialog(*screen, "Set Workspace Name:", "SetWorkspaceName "); win->setText(screen->currentWorkspace()->name()); win->show(); } REGISTER_COMMAND(commanddialog, FbCommands::CommandDialogCmd, void); void CommandDialogCmd::execute() { BScreen *screen = Fluxbox::instance()->mouseScreen(); if (screen == 0) return; FbTk::FbWindow *win = new CommandDialog(*screen, "Fluxbox Command"); win->show(); } SetResourceValueCmd::SetResourceValueCmd(const string &resname, const string &value): m_resname(resname), m_value(value) { } void SetResourceValueCmd::execute() { BScreen *screen = Fluxbox::instance()->mouseScreen(); if (screen == 0) return; screen->resourceManager().setResourceValue(m_resname, m_value); Fluxbox::instance()->save_rc(); } REGISTER_COMMAND(setresourcevaluedialog, FbCommands::SetResourceValueDialogCmd, void); void SetResourceValueDialogCmd::execute() { BScreen *screen = Fluxbox::instance()->mouseScreen(); if (screen == 0) return; FbTk::FbWindow *win = new CommandDialog(*screen, "Type resource name and the value", "SetResourceValue "); win->show(); } REGISTER_UNTRUSTED_COMMAND_WITH_ARGS(bindkey, FbCommands::BindKeyCmd, void); BindKeyCmd::BindKeyCmd(const string &keybind):m_keybind(keybind) { } void BindKeyCmd::execute() { Keys* keys = Fluxbox::instance()->keys(); if (keys && keys->addBinding(m_keybind)) { ofstream ofile(keys->filename().c_str(), ios::app); if (!ofile) return; ofile< *DeiconifyCmd::parse(const string &command, const string &args, bool trusted) { FbTk_istringstream iss(args.c_str()); string mode; string d; Destination dest; iss >> mode; if (iss.fail()) mode="lastworkspace"; mode= FbTk::StringUtil::toLower(mode); iss >> d; if (iss.fail()) d="current"; d = FbTk::StringUtil::toLower(d); if (d == "origin" ) dest = ORIGIN; else if (d == "originquiet") dest = ORIGINQUIET; else dest = CURRENT; if (mode == "all") return new DeiconifyCmd(DeiconifyCmd::ALL, dest); else if (mode == "allworkspace") return new DeiconifyCmd(DeiconifyCmd::ALLWORKSPACE, dest); else if (mode == "last") return new DeiconifyCmd(DeiconifyCmd::LAST, dest); // lastworkspace, default return new DeiconifyCmd(DeiconifyCmd::LASTWORKSPACE, dest); } REGISTER_COMMAND_PARSER(deiconify, DeiconifyCmd::parse, void); DeiconifyCmd::DeiconifyCmd(Mode mode, Destination dest) : m_mode(mode), m_dest(dest) { } void DeiconifyCmd::execute() { BScreen *screen = Fluxbox::instance()->mouseScreen(); if (screen == 0) return; // we need to make a copy of the list of icons, or else our iterator can // become invalid BScreen::Icons icon_list = screen->iconList(); BScreen::Icons::reverse_iterator it = icon_list.rbegin(); BScreen::Icons::reverse_iterator itend= icon_list.rend(); unsigned int workspace_num= screen->currentWorkspaceID(); unsigned int old_workspace_num; const bool change_ws= m_dest == ORIGIN; switch(m_mode) { case ALL: case ALLWORKSPACE: for(; it != itend; ++it) { old_workspace_num= (*it)->workspaceNumber(); if (m_mode == ALL || old_workspace_num == workspace_num || (*it)->isStuck()) { if (m_dest == ORIGIN || m_dest == ORIGINQUIET) screen->sendToWorkspace(old_workspace_num, (*it), change_ws); (*it)->deiconify(); } } break; case LAST: case LASTWORKSPACE: default: for (; it != itend; ++it) { old_workspace_num= (*it)->workspaceNumber(); if(m_mode == LAST || old_workspace_num == workspace_num || (*it)->isStuck()) { if ((m_dest == ORIGIN || m_dest == ORIGINQUIET) && m_mode != LASTWORKSPACE) screen->sendToWorkspace(old_workspace_num, (*it), change_ws); else (*it)->deiconify(); break; } } break; }; } REGISTER_COMMAND_WITH_ARGS(clientpatterntest, FbCommands::ClientPatternTestCmd, void); void ClientPatternTestCmd::execute() { std::vector< const FluxboxWindow* > matches; std::string result; std::string pat; int opts; ClientPattern* cp; Display* dpy; Atom atom_utf8; Atom atom_fbcmd_result; Fluxbox::ScreenList::const_iterator screen; const Fluxbox::ScreenList screens(Fluxbox::instance()->screenList()); dpy = Fluxbox::instance()->display(); atom_utf8 = XInternAtom(dpy, "UTF8_STRING", False); atom_fbcmd_result = XInternAtom(dpy, "_FLUXBOX_ACTION_RESULT", False); FocusableList::parseArgs(m_args, opts, pat); cp = new ClientPattern(pat.c_str()); if (!cp->error()) { const FocusableList* windows; FocusControl::Focusables::const_iterator wit; FocusControl::Focusables::const_iterator wit_end; for (screen = screens.begin(); screen != screens.end(); screen++) { windows = FocusableList::getListFromOptions(**screen, opts|FocusableList::LIST_GROUPS); wit = windows->clientList().begin(); wit_end = windows->clientList().end(); for ( ; wit != wit_end; wit++) { if (typeid(**wit) == typeid(FluxboxWindow) && cp->match(**wit)) { matches.push_back(static_cast(*wit)); } } } if (!matches.empty()) { std::vector< const FluxboxWindow* >::const_iterator win; for (win = matches.begin(); win != matches.end(); win++) { result += "0x"; result += FbTk::StringUtil::number2HexString((*win)->clientWindow()); result += "\t"; result += (*win)->title().logical(); result += "\n"; } } else { result += "0\n"; } } else { result = "-1\t"; result += FbTk::StringUtil::number2String(cp->error_col()); result += "\n"; } // write result to _FLUXBOX_ACTION_RESULT property for (screen = screens.begin(); screen != screens.end(); screen++) { (*screen)->rootWindow().changeProperty(atom_fbcmd_result, atom_utf8, 8, PropModeReplace, (unsigned char*)result.c_str(), result.size()); } } } // end namespace FbCommands fluxbox-1.3.5/src/PaxHeaders.25974/FbCommands.hh0000644000175000017500000000013212106662425017375 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.231812462 30 ctime=1360750008.719811614 fluxbox-1.3.5/src/FbCommands.hh0000644000175000017500000001375312106662425015435 0ustar00mgmg00000000000000// FbCommands.hh for Fluxbox // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. // \file contains basic commands to restart, reconfigure, execute command and exit fluxbox #ifndef FBCOMMANDS_HH #define FBCOMMANDS_HH #include "FbTk/Command.hh" #include #include "ClientMenu.hh" #include "ClientPattern.hh" #include "FocusableList.hh" namespace FbCommands { /// executes a system command class ExecuteCmd: public FbTk::Command { public: ExecuteCmd(const std::string &cmd, int screen_num = -1); void execute(); /** * same as execute but returns pid */ int run(); private: std::string m_cmd; const int m_screen_num; }; /// sets environment class ExportCmd : public FbTk::Command { public: ExportCmd(const std::string& name, const std::string& value); void execute(); static FbTk::Command *parse(const std::string &command, const std::string &args, bool trusted); private: std::string m_name; std::string m_value; }; /// exit fluxbox class ExitFluxboxCmd: public FbTk::Command { public: void execute(); }; /// saves resources class SaveResources: public FbTk::Command { public: void execute(); }; /// restarts fluxbox class RestartFluxboxCmd: public FbTk::Command { public: RestartFluxboxCmd(const std::string &cmd); void execute(); static FbTk::Command *parse(const std::string &command, const std::string &args, bool trusted); private: std::string m_cmd; }; /// reconfigures fluxbox class ReconfigureFluxboxCmd: public FbTk::Command { public: void execute(); }; class ReloadStyleCmd: public FbTk::Command { public: void execute(); }; class SetStyleCmd: public FbTk::Command { public: explicit SetStyleCmd(const std::string &filename); void execute(); private: std::string m_filename; }; class KeyModeCmd: public FbTk::Command { public: explicit KeyModeCmd(const std::string &arguments); void execute(); private: std::string m_keymode; std::string m_end_args; }; class HideMenuCmd: public FbTk::Command { public: void execute(); }; class ShowClientMenuCmd: public FbTk::Command { public: ShowClientMenuCmd(int option, std::string &pat): m_option(option|FocusableList::LIST_GROUPS), m_pat(pat.c_str()) { } void execute(); static FbTk::Command *parse(const std::string &command, const std::string &args, bool trusted); private: const int m_option; const ClientPattern m_pat; std::list m_list; std::auto_ptr m_menu; }; class ShowCustomMenuCmd: public FbTk::Command { public: explicit ShowCustomMenuCmd(const std::string &arguments); void execute(); void reload(); private: std::string custom_menu_file; std::auto_ptr m_menu; }; class ShowRootMenuCmd: public FbTk::Command { public: void execute(); }; class ShowWorkspaceMenuCmd: public FbTk::Command { public: void execute(); }; class SetWorkspaceNameCmd: public FbTk::Command { public: SetWorkspaceNameCmd(const std::string &name, int spaceid = -1); void execute(); private: std::string m_name; int m_workspace; }; class WorkspaceNameDialogCmd: public FbTk::Command { public: void execute(); }; class CommandDialogCmd: public FbTk::Command { public: void execute(); }; class SetResourceValueCmd: public FbTk::Command { public: SetResourceValueCmd(const std::string &resourcename, const std::string &value); void execute(); private: const std::string m_resname; const std::string m_value; }; class SetResourceValueDialogCmd: public FbTk::Command { public: void execute(); }; class BindKeyCmd: public FbTk::Command { public: BindKeyCmd(const std::string &keybind); void execute(); private: const std::string m_keybind; }; /// deiconifies iconified windows class DeiconifyCmd: public FbTk::Command { public: enum Mode { LAST, LASTWORKSPACE, ALL, ALLWORKSPACE }; enum Destination { CURRENT, /// deiconification on current workspace ORIGIN, /// deiconification on origin workspace, change to that ws ORIGINQUIET /// deiconification on origin workspace, dont change ws }; DeiconifyCmd(Mode mode= LASTWORKSPACE, Destination dest= CURRENT); void execute(); static FbTk::Command *parse(const std::string &command, const std::string &args, bool trusted); private: Mode m_mode; Destination m_dest; }; /// test client pattern class ClientPatternTestCmd: public FbTk::Command { public: ClientPatternTestCmd(const std::string& args) : m_args(args) { }; void execute(); private: std::string m_args; }; } // end namespace FbCommands #endif // FBCOMMANDS_HH fluxbox-1.3.5/src/PaxHeaders.25974/Workspace.hh0000644000175000017500000000013212106662425017322 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.231812462 30 ctime=1360750008.719811614 fluxbox-1.3.5/src/Workspace.hh0000644000175000017500000000620312106662425015352 0ustar00mgmg00000000000000// Workspace.hh for Fluxbox // Copyright (c) 2002 - 2008 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Workspace.hh for Blackbox - an X11 Window manager // Copyright (c) 1997 - 2000 Brad Hughes (bhughes@tcac.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef WORKSPACE_HH #define WORKSPACE_HH #include "ClientMenu.hh" #include "FbTk/NotCopyable.hh" #include "FbTk/Signal.hh" #include #include class BScreen; class FluxboxWindow; /** * Handles a single workspace */ class Workspace: private FbTk::NotCopyable { public: typedef std::list Windows; Workspace(BScreen &screen, const std::string &name, unsigned int workspaceid = 0); ~Workspace(); /// Set workspace name void setName(const FbTk::FbString& name); /// Deiconify all windows on this workspace void showAll(); void hideAll(bool interrupt_moving); /// Iconify all windows on this workspace void removeAll(unsigned int dest); void reconfigure(); void shutdown(); /// Add @a win to this workspace, placing it if @a place is true void addWindow(FluxboxWindow &win); int removeWindow(FluxboxWindow *win, bool still_alive); void updateClientmenu(); BScreen &screen() { return m_screen; } const BScreen &screen() const { return m_screen; } FbTk::Menu &menu() { return m_clientmenu; } const FbTk::Menu &menu() const { return m_clientmenu; } /// name of this workspace const FbTk::FbString &name() const { return m_name; } /** @return the number of this workspace, note: obsolete, should be in BScreen */ unsigned int workspaceID() const { return m_id; } const Windows &windowList() const { return m_windowlist; } Windows &windowList() { return m_windowlist; } size_t numberOfWindows() const; private: void placeWindow(FluxboxWindow &win); BScreen &m_screen; Windows m_windowlist; FbTk::Signal<> m_clientlist_sig; ClientMenu m_clientmenu; FbTk::FbString m_name; ///< name of this workspace unsigned int m_id; ///< id, obsolete, this should be in BScreen }; #endif // WORKSPACE_HH fluxbox-1.3.5/src/PaxHeaders.25974/Workspace.cc0000644000175000017500000000013212106662425017310 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.227812462 30 ctime=1360750008.723811614 fluxbox-1.3.5/src/Workspace.cc0000644000175000017500000001303212106662425015336 0ustar00mgmg00000000000000// Workspace.cc for Fluxbox // Copyright (c) 2001 - 2008 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Workspace.cc for Blackbox - an X11 Window manager // Copyright (c) 1997 - 2000 Brad Hughes (bhughes at tcac.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "Workspace.hh" #include "Screen.hh" #include "Window.hh" #include "WinClient.hh" #include "FbWinFrame.hh" #include "FocusControl.hh" #include "PlacementStrategy.hh" #include "FbTk/I18n.hh" #include "FbTk/StringUtil.hh" #include "FbTk/FbString.hh" #include "FbTk/MemFun.hh" // use GNU extensions #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif // _GNU_SOURCE #ifdef HAVE_CONFIG_H #include "config.h" #endif // HAVE_CONFIG_H #include #include #ifdef HAVE_CSTDIO #include #else #include #endif #ifdef HAVE_CSTRING #include #else #include #endif #include using std::string; Workspace::Workspace(BScreen &scrn, const string &name, unsigned int id): m_screen(scrn), m_clientmenu(scrn, m_windowlist, false), m_name(name), m_id(id) { m_clientlist_sig.connect(FbTk::MemFun(m_clientmenu, &ClientMenu::refreshMenu)); menu().setInternalMenu(); setName(name); } Workspace::~Workspace() { } void Workspace::addWindow(FluxboxWindow &w) { // we don't need to add a window that already exist in our list if (find(m_windowlist.begin(), m_windowlist.end(), &w) != m_windowlist.end()) return; w.setWorkspace(m_id); m_windowlist.push_back(&w); m_clientlist_sig.emit(); } // still_alive is true if the window will continue to exist after // this event. Particularly, this isn't the removeWindow for // the destruction of the window. Because if so, the focus revert // is done in another place int Workspace::removeWindow(FluxboxWindow *w, bool still_alive) { if (w == 0) return -1; // if w is focused and alive, remove the focus ... except if it // is a transient window. removing the focus from such a window // leads in a wild race between BScreen::reassociateWindow(), // BScreen::changeWorkspaceID(), FluxboxWindow::focus() etc. which // finally leads to crash. if (w->isFocused() && !w->isTransient() && still_alive) FocusControl::unfocusWindow(w->winClient(), true, true); m_windowlist.remove(w); m_clientlist_sig.emit(); return m_windowlist.size(); } void Workspace::showAll() { Windows::iterator it = m_windowlist.begin(); Windows::iterator it_end = m_windowlist.end(); for (; it != it_end; ++it) (*it)->show(); } void Workspace::hideAll(bool interrupt_moving) { Windows::reverse_iterator it = m_windowlist.rbegin(); Windows::reverse_iterator it_end = m_windowlist.rend(); for (; it != it_end; ++it) { if (! (*it)->isStuck()) (*it)->hide(interrupt_moving); } } void Workspace::removeAll(unsigned int dest) { Windows tmp_list(m_windowlist); Windows::iterator it = tmp_list.begin(); Windows::iterator it_end = tmp_list.end(); for (; it != it_end; ++it) m_screen.sendToWorkspace(dest, *it, false); } void Workspace::reconfigure() { menu().reconfigure(); Windows::iterator it = m_windowlist.begin(); Windows::iterator it_end = m_windowlist.end(); for (; it != it_end; ++it) { if ((*it)->winClient().validateClient()) (*it)->reconfigure(); } } size_t Workspace::numberOfWindows() const { return m_windowlist.size(); } void Workspace::setName(const string &name) { if (!name.empty() && name != "") { if (name == m_name) return; m_name = name; } else { //if name == 0 then set default name from nls _FB_USES_NLS; char tname[128]; sprintf(tname, _FB_XTEXT(Workspace, DefaultNameFormat, "Workspace %d", "Default workspace names, with a %d for the workspace number").c_str(), m_id + 1); //m_id starts at 0 m_name = tname; } screen().updateWorkspaceName(m_id); menu().setLabel(FbTk::BiDiString(m_name)); menu().updateMenu(); } /** Calls restore on all windows on the workspace and then clears the m_windowlist */ void Workspace::shutdown() { // note: when the window dies it'll remove it self from the list while (!m_windowlist.empty()) { //delete window (the window removes it self from m_windowlist) delete m_windowlist.back(); } } void Workspace::updateClientmenu() { m_clientlist_sig.emit(); } fluxbox-1.3.5/src/PaxHeaders.25974/WindowState.hh0000644000175000017500000000013212106662425017634 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.227812462 30 ctime=1360750008.723811614 fluxbox-1.3.5/src/WindowState.hh0000644000175000017500000001120012106662425015655 0ustar00mgmg00000000000000// WindowState.hh // Copyright (c) 2008 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef WINDOWSTATE_HH #define WINDOWSTATE_HH #include "Layer.hh" #include #include #include class SizeHints { public: SizeHints(): min_width(1), max_width(0), min_height(1), max_height(0), width_inc(1), height_inc(1), base_width(0), base_height(0), min_aspect_x(0), max_aspect_x(1), min_aspect_y(1), max_aspect_y(0), win_gravity(0) { } void reset(const XSizeHints &sizehint); void apply(unsigned int &w, unsigned int &h, bool maximizing = false) const; bool valid(unsigned int width, unsigned int height) const; void displaySize(unsigned int &i, unsigned int &j, unsigned int width, unsigned int height) const; bool isResizable() const; unsigned int min_width, max_width, min_height, max_height, width_inc, height_inc, base_width, base_height, min_aspect_x, max_aspect_x, min_aspect_y, max_aspect_y; int win_gravity; }; class WindowState { public: /** * Types of maximization */ enum MaximizeMode { MAX_NONE = 0, ///< normal state MAX_HORZ = 1, ///< maximize horizontal MAX_VERT = 2, ///< maximize vertical MAX_FULL = 3 ///< maximize full }; /** This enumeration represents individual decoration attributes, they can be OR-d together to get a mask. Useful for saving. */ enum DecorationMask { DECORM_TITLEBAR = (1<<0), DECORM_HANDLE = (1<<1), DECORM_BORDER = (1<<2), DECORM_ICONIFY = (1<<3), DECORM_MAXIMIZE = (1<<4), DECORM_CLOSE = (1<<5), DECORM_MENU = (1<<6), DECORM_STICKY = (1<<7), DECORM_SHADE = (1<<8), DECORM_TAB = (1<<9), DECORM_ENABLED = (1<<10), DECORM_LAST = (1<<11) // useful for getting "All" }; enum Decoration { DECOR_NONE = 0, DECOR_NORMAL = DECORM_LAST - 1, DECOR_TINY = DECORM_TITLEBAR|DECORM_ICONIFY, DECOR_TOOL = DECORM_TITLEBAR, DECOR_BORDER = DECORM_BORDER, DECOR_TAB = DECORM_BORDER|DECORM_TAB }; enum WindowType { TYPE_NORMAL, TYPE_DOCK, TYPE_DESKTOP, TYPE_SPLASH, TYPE_DIALOG, TYPE_MENU, TYPE_TOOLBAR }; WindowState(): size_hints(), deco_mask(DECOR_NORMAL), type(TYPE_NORMAL), focused(false), shaded(false), fullscreen(false), stuck(false), iconic(false), focus_hidden(false), icon_hidden(false), maximized(0), layernum(ResourceLayer::NORMAL), x(0), y(0), width(1), height(1) { } void saveGeometry(int x, int y, unsigned int width, unsigned int height, bool force = false); // returns what the state should be set to, without actually setting it int queryToggleMaximized(int type) const; bool useBorder() const; bool useHandle() const; bool useTabs() const; bool useTitlebar() const; bool isMaximized() const { return maximized == MAX_FULL; } bool isMaximizedHorz() const { return maximized & MAX_HORZ; } bool isMaximizedVert() const { return maximized & MAX_VERT; } static int getDecoMaskFromString(const std::string &str); SizeHints size_hints; unsigned int deco_mask; WindowType type; bool focused, shaded, fullscreen, stuck, iconic, focus_hidden, icon_hidden; int maximized, layernum; int x, y; unsigned int width, height; }; #endif // WINDOWSTATE_HH fluxbox-1.3.5/src/PaxHeaders.25974/WindowState.cc0000644000175000017500000000013212106662425017622 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.223812462 30 ctime=1360750008.723811614 fluxbox-1.3.5/src/WindowState.cc0000644000175000017500000002341512106662425015656 0ustar00mgmg00000000000000// WindowState.cc // Copyright (c) 2008 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "WindowState.hh" #include "FbTk/StringUtil.hh" #ifdef HAVE_CONFIG_H #include "config.h" #endif // HAVE_CONFIG_H #ifdef HAVE_CSTDLIB #include #else #include #endif #include bool WindowState::useBorder() const { return !fullscreen && maximized != MAX_FULL && deco_mask & DECORM_BORDER; } bool WindowState::useHandle() const { return !fullscreen && !shaded && deco_mask & DECORM_HANDLE && size_hints.isResizable(); } bool WindowState::useTabs() const { return !fullscreen && deco_mask & DECORM_TAB; } bool WindowState::useTitlebar() const { return !fullscreen && deco_mask & DECORM_TITLEBAR; } void WindowState::saveGeometry(int new_x, int new_y, unsigned int new_w, unsigned int new_h, bool force) { if ((fullscreen || maximized == MAX_FULL) && !force) return; if (!(maximized & MAX_HORZ) || force) { x = new_x; width = new_w; } if (!(maximized & MAX_VERT) || force) { y = new_y; if (!shaded || force) height = new_h; } } int WindowState::queryToggleMaximized(int type) const { if (type == MAX_NONE) return maximized; int new_max = maximized; // toggle maximize vertically? // when _don't_ we want to toggle? // - type is horizontal maximize, or // - type is full and we are not maximized horz but already vertically if (type != MAX_HORZ && (type != MAX_FULL || maximized != MAX_VERT)) new_max ^= MAX_VERT; // maximize horizontally? if (type != MAX_VERT && (type != MAX_FULL || maximized != MAX_HORZ)) new_max ^= MAX_HORZ; return new_max; } int WindowState::getDecoMaskFromString(const std::string &str_label) { std::string label = FbTk::StringUtil::toLower(str_label); if (label == "none") return DECOR_NONE; if (label == "normal") return DECOR_NORMAL; if (label == "tiny") return DECOR_TINY; if (label == "tool") return DECOR_TOOL; if (label == "border") return DECOR_BORDER; if (label == "tab") return DECOR_TAB; int mask = -1; FbTk::StringUtil::extractNumber(str_label, mask); return mask; } bool SizeHints::isResizable() const { return max_width == 0 || max_height == 0 || max_width > min_width || max_height > min_height; } void SizeHints::reset(const XSizeHints &sizehint) { if (sizehint.flags & PMinSize) { min_width = sizehint.min_width; min_height = sizehint.min_height; } else min_width = min_height = 1; if (sizehint.flags & PBaseSize) { base_width = sizehint.base_width; base_height = sizehint.base_height; if (!(sizehint.flags & PMinSize)) { min_width = base_width; min_height = base_height; } } else base_width = base_height = 0; if (sizehint.flags & PMaxSize) { max_width = sizehint.max_width; max_height = sizehint.max_height; } else max_width = max_height = 0; // unbounded if (sizehint.flags & PResizeInc) { width_inc = sizehint.width_inc; height_inc = sizehint.height_inc; } else width_inc = height_inc = 1; if (sizehint.flags & PAspect) { min_aspect_x = sizehint.min_aspect.x; min_aspect_y = sizehint.min_aspect.y; max_aspect_x = sizehint.max_aspect.x; max_aspect_y = sizehint.max_aspect.y; } else { min_aspect_x = max_aspect_y = 0; min_aspect_y = max_aspect_x = 1; } if (sizehint.flags & PWinGravity) win_gravity = sizehint.win_gravity; else win_gravity = NorthWestGravity; // some sanity checks if (width_inc == 0) width_inc = 1; if (height_inc == 0) height_inc = 1; if (base_width > min_width) min_width = base_width; if (base_height > min_height) min_height = base_height; } namespace { void closestPointToAspect(unsigned int &ret_x, unsigned int &ret_y, unsigned int point_x, unsigned int point_y, unsigned int aspect_x, unsigned int aspect_y) { double u = static_cast(point_x * aspect_x + point_y * aspect_y) / static_cast(aspect_x * aspect_x + aspect_y * aspect_y); ret_x = static_cast(u * aspect_x); ret_y = static_cast(u * aspect_y); } unsigned int increaseToMultiple(unsigned int val, unsigned int inc) { return val % inc ? val + inc - (val % inc) : val; } unsigned int decreaseToMultiple(unsigned int val, unsigned int inc) { return val % inc ? val - (val % inc) : val; } } // end of anonymous namespace /** * Changes width and height to the nearest (lower) value * that conforms to it's size hints. * * display_* give the values that would be displayed * to the user when resizing. * We use pointers for display_* since they are optional. * * See ICCCM section 4.1.2.3 */ void SizeHints::apply(unsigned int &width, unsigned int &height, bool make_fit) const { /* aspect ratios are applied exclusive to the base size * * min_aspect_x width max_aspect_x * ------------ < ------- < ------------ * min_aspect_y height max_aspect_y * * The trick is how to get back to the aspect ratio with minimal * change - do we modify x, y or both? * A: we minimise the distance between the current point, and * the target aspect ratio (consider them as x,y coordinates) * Consider that the aspect ratio is a line, and the current * w/h is a point, so we're just using the formula for * shortest distance from a point to a line! */ // make respective to base_size unsigned int w = width - base_width, h = height - base_height; if (min_aspect_y > 0 && w * min_aspect_y < min_aspect_x * h) { closestPointToAspect(w, h, w, h, min_aspect_x, min_aspect_y); // new w must be > old w, new h must be < old h w = increaseToMultiple(w, width_inc); h = decreaseToMultiple(h, height_inc); } else if (max_aspect_x > 0 && w * max_aspect_y > max_aspect_x * h) { closestPointToAspect(w, h, w, h, max_aspect_x, max_aspect_y); // new w must be < old w, new h must be > old h w = decreaseToMultiple(w, width_inc); h = increaseToMultiple(h, height_inc); } // Check minimum size if (w + base_width < min_width) { w = increaseToMultiple(min_width - base_width, width_inc); // need to check maximum aspect again if (max_aspect_x > 0 && w * max_aspect_y > max_aspect_x * h) h = increaseToMultiple(w * max_aspect_y / max_aspect_x, height_inc); } if (h + base_height < min_height) { h = increaseToMultiple(min_height - base_height, height_inc); // need to check minimum aspect again if (min_aspect_y > 0 && w * min_aspect_y < min_aspect_x * h) w = increaseToMultiple(h * min_aspect_x / min_aspect_y, width_inc); } unsigned int max_w = (make_fit && (width < max_width || max_width == 0)) ? width : max_width; unsigned int max_h = (make_fit && (height < max_height || max_height == 0)) ? height : max_height; // Check maximum size if (max_w > 0 && w + base_width > max_w) w = max_w - base_width; if (max_h > 0 && h + base_height > max_h) h = max_h - base_height; w = decreaseToMultiple(w, width_inc); h = decreaseToMultiple(h, height_inc); // need to check aspects one more time if (min_aspect_y > 0 && w * min_aspect_y < min_aspect_x * h) h = decreaseToMultiple(w * min_aspect_y / min_aspect_x, height_inc); if (max_aspect_x > 0 && w * max_aspect_y > max_aspect_x * h) w = decreaseToMultiple(h * max_aspect_x / max_aspect_y, width_inc); width = w + base_width; height = h + base_height; } // check if the given width and height satisfy the size hints bool SizeHints::valid(unsigned int w, unsigned int h) const { if (w < min_width || h < min_height) return false; if (w > max_width || h > max_height) return false; if ((w - base_width) % width_inc != 0) return false; if ((h - base_height) % height_inc != 0) return false; if (min_aspect_x * (h - base_height) > (w - base_width) * min_aspect_y) return false; if (max_aspect_x * (h - base_height) < (w - base_width) * max_aspect_y) return false; return true; } void SizeHints::displaySize(unsigned int &i, unsigned int &j, unsigned int width, unsigned int height) const { i = (width - base_width) / width_inc; j = (height - base_height) / height_inc; } fluxbox-1.3.5/src/PaxHeaders.25974/Window.hh0000644000175000017500000000013212106662425016633 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.223812462 30 ctime=1360750008.723811614 fluxbox-1.3.5/src/Window.hh0000644000175000017500000005175412106662425014676 0ustar00mgmg00000000000000// Window.hh for Fluxbox Window Manager // Copyright (c) 2001 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Window.hh for Blackbox - an X11 Window manager // Copyright (c) 1997 - 2000 Brad Hughes (bhughes at tcac.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef WINDOW_HH #define WINDOW_HH #include "FbWinFrame.hh" #include "Focusable.hh" #include "FocusableTheme.hh" #include "FocusControl.hh" #include "WinButton.hh" #include "FbTk/DefaultValue.hh" #include "FbTk/Timer.hh" #include "FbTk/FbTime.hh" #include "FbTk/EventHandler.hh" #include "FbTk/LayerItem.hh" #include "FbTk/Signal.hh" #include #include #include #include class WinClient; class FbWinFrameTheme; class BScreen; class FbMenu; namespace FbTk { class TextButton; class MenuTheme; class ImageControl; class Layer; } /// Creates the window frame and handles any window event for it class FluxboxWindow: public Focusable, public FbTk::EventHandler, private FbTk::SignalTracker { public: /// Motif wm Hints enum { MwmHintsFunctions = (1l << 0), ///< use motif wm functions MwmHintsDecorations = (1l << 1) ///< use motif wm decorations }; /// Motif wm functions enum MwmFunc{ MwmFuncAll = (1l << 0), ///< all motif wm functions MwmFuncResize = (1l << 1), ///< resize MwmFuncMove = (1l << 2), ///< move MwmFuncIconify = (1l << 3), ///< iconify MwmFuncMaximize = (1l << 4), ///< maximize MwmFuncClose = (1l << 5) ///< close }; /// Motif wm decorations enum MwmDecor { MwmDecorAll = (1l << 0), /// all decorations MwmDecorBorder = (1l << 1), /// border MwmDecorHandle = (1l << 2), /// handle MwmDecorTitle = (1l << 3), /// title MwmDecorMenu = (1l << 4), /// menu MwmDecorIconify = (1l << 5), /// iconify MwmDecorMaximize = (1l << 6) /// maximize }; /// Different resize modes when resizing a window enum ResizeModel { CENTERRESIZE, ///< resizes from center TOPLEFTRESIZE, ///< resizes top left corner TOPRESIZE, ///< resizes top edge TOPRIGHTRESIZE, ///< resizes top right corner LEFTRESIZE, ///< resizes left edge RIGHTRESIZE, ///< resizes right edge BOTTOMLEFTRESIZE, ///< resizes bottom left corner BOTTOMRESIZE, ///< resizes bottom edge BOTTOMRIGHTRESIZE, ///< resizes bottom right corner EDGEORCORNERRESIZE, ///< resizes nearest edge or corner DEFAULTRESIZE = BOTTOMRIGHTRESIZE ///< default resize mode }; /** * Reference corner for moves and resizes */ enum ReferenceCorner { ERROR = -1, LEFTTOP = 0, TOP = 1, RIGHTTOP = 2, RIGHT = 3, RIGHTBOTTOM = 4, BOTTOM = 5, LEFTBOTTOM = 6, LEFT = 7, CENTER = 8 }; typedef std::list ClientList; /// create a window from a client FluxboxWindow(WinClient &client); virtual ~FluxboxWindow(); /// attach client to our client list and remove it from old window void attachClient(WinClient &client, int x=-1, int y=-1); /// detach client (remove it from list) and create a new window for it bool detachClient(WinClient &client); /// detach current working client if we have more than one void detachCurrentClient(); /// remove client from client list bool removeClient(WinClient &client); /// set new current client and raise it bool setCurrentClient(WinClient &client, bool setinput = true); /** * Searches for a client * @param win the client X window * @return pointer to client matching the window or NULL */ WinClient *findClient(Window win); /// select next client void nextClient(); /// select previous client void prevClient(); /// move the current client to the left void moveClientLeft(); /// move the current client to the right void moveClientRight(); /** * Move a client to the right of dest. * @param win the client to move * @param dest the left-of-client */ void moveClientRightOf(WinClient &win, WinClient &dest); /** * Move a client to the right of dest. * @param win the client to move * @param dest the left-of-client */ void moveClientLeftOf(WinClient &win, WinClient &dest); /** * Move client to place specified by pixel position * @param win the client to move * @param x position * @param y position */ void moveClientTo(WinClient &win, int x, int y); /** * Take focus. * @see Focusable * @return true if it took focus. */ bool focus(); bool focusRequestFromClient(WinClient &from); /// Raises the window and takes focus (if possible). void raiseAndFocus() { raise(); focus(); } /// sets the internal focus flag void setFocusFlag(bool flag); /// make this window visible void show(); /// hide window void hide(bool interrupt_moving = true); /// iconify window void iconify(); /** * Deiconify window * @param do_raise raise the window when its been deiconfied */ void deiconify(bool do_raise = true); // ------------------ // Per window transparency addons int getFocusedAlpha() const { return frame().getAlpha(true); } int getUnfocusedAlpha() const { return frame().getAlpha(false); } void setFocusedAlpha(int alpha) { frame().setAlpha(true, alpha); } void setUnfocusedAlpha(int alpha) { frame().setAlpha(false, alpha); } void updateAlpha(bool focused, int alpha) { frame().setAlpha(focused, alpha); } bool getUseDefaultAlpha() const { return frame().getUseDefaultAlpha(); } void setDefaultAlpha() { frame().setDefaultAlpha(); } // ------------------ /// close current client void close(); /// kill current client void kill(); /// set fullscreen void setFullscreen(bool flag); /// toggle maximize void maximize(int type = WindowState::MAX_FULL); /// sets the maximized state void setMaximizedState(int type); /// maximizes the window horizontal void maximizeHorizontal(); /// maximizes the window vertical void maximizeVertical(); /// maximizes the window fully void maximizeFull(); /// disables maximization, without restoring the old size void disableMaximization(); /// toggles shade void shade(); /// shades window void shadeOn(); /// unshades window void shadeOff(); /// sets shaded state void setShaded(bool val); /// toggles sticky void stick(); /// sets stuck state void setStuck(bool val); /// toggles iconic void toggleIconic(); /// sets iconic state void setIconic(bool val); void raise(); void lower(); void tempRaise(); void changeLayer(int diff); /// moves the window to a new layer void moveToLayer(int layernum, bool force = false); int getOnHead() const; void setOnHead(int head); /// sets the window focus hidden state void placeWindow(int head); void setFocusHidden(bool value); /// sets the window icon hidden state void setIconHidden(bool value); /// sets whether or not the window normally gets focus when mapped void setFocusNew(bool value) { m_focus_new = value; } /// sets whether or not the window gets focused with mouse void setMouseFocus(bool value) { m_mouse_focus = value; } /// sets whether or not the window gets focused with click void setClickFocus(bool value) { m_click_focus = value; } void reconfigure(); void installColormap(bool); void restore(WinClient *client, bool remap); void restore(bool remap); /// move frame to x, y void move(int x, int y); /// resize frame to width, height void resize(unsigned int width, unsigned int height); /// move and resize frame to pox x,y and size width, height void moveResize(int x, int y, unsigned int width, unsigned int height, bool send_event = false); /// move to pos x,y and resize client window to size width, height void moveResizeForClient(int x, int y, unsigned int width, unsigned int height, int gravity = ForgetGravity, unsigned int client_bw = 0); /** * Determines maximum size using all clients that this window can have. * @param width will be filled in with maximum width * @param height will be filled in with maximum height */ void getMaxSize(unsigned int* width, unsigned int* height) const; void setWorkspace(int n); void updateFunctions(); /** * Show window meny at at given position * @param mx position * @param my position */ void showMenu(int mx, int my); /** popup window menu at specific location * @param x * @param y */ void popupMenu(int x, int y); // popup menu on last button press position void popupMenu(); /** @name event handlers */ //@{ void handleEvent(XEvent &event); void keyPressEvent(XKeyEvent &ke); void buttonPressEvent(XButtonEvent &be); void buttonReleaseEvent(XButtonEvent &be); void motionNotifyEvent(XMotionEvent &me); void destroyNotifyEvent(XDestroyWindowEvent &dwe); void mapRequestEvent(XMapRequestEvent &mre); void mapNotifyEvent(XMapEvent &mapev); void unmapNotifyEvent(XUnmapEvent &unmapev); void exposeEvent(XExposeEvent &ee); void configureRequestEvent(XConfigureRequestEvent &ce); void propertyNotifyEvent(WinClient &client, Atom a); void enterNotifyEvent(XCrossingEvent &ev); void leaveNotifyEvent(XCrossingEvent &ev); //@} void applyDecorations(); void toggleDecoration(); unsigned int decorationMask() const; void setDecorationMask(unsigned int mask, bool apply = true); /** * Start moving process, grabs the pointer and draws move rectangle * @param x position of pointer * @param y position of pointer */ void startMoving(int x, int y); /** * Stop moving process * @param interrupted whether the move was interrupted by hide or destroy */ void stopMoving(bool interrupted = false); /** * Starts resizing process * @param x start position * @param y start position * @param dir the resize direction */ void startResizing(int x, int y, ReferenceCorner dir); /// determine which edge or corner to resize ReferenceCorner getResizeDirection(int x, int y, ResizeModel model, int corner_size_px, int corner_size_pc) const; /// stops the resizing void stopResizing(bool interrupted = false); /// starts tabbing void startTabbing(const XButtonEvent &be); /// determine the reference corner from a string static ReferenceCorner getCorner(std::string str); /// convert to coordinates on the root window void translateXCoords(int &x, ReferenceCorner dir = LEFTTOP) const; void translateYCoords(int &y, ReferenceCorner dir = LEFTTOP) const; void translateCoords(int &x, int &y, ReferenceCorner dir = LEFTTOP) const; /** @name accessors */ //@{ // whether this window can be tabbed with other windows, // and others tabbed with it void setTabable(bool tabable) { functions.tabable = tabable; } bool isTabable() const { return functions.tabable; } void setMovable(bool movable) { functions.move = movable; } void setResizable(bool resizable) { functions.resize = resizable; } bool isFocusHidden() const { return m_state.focus_hidden; } bool isIconHidden() const { return m_state.icon_hidden; } bool isManaged() const { return m_initialized; } bool isVisible() const; bool isIconic() const { return m_state.iconic; } bool isShaded() const { return m_state.shaded; } bool isFullscreen() const { return m_state.fullscreen; } bool isMaximized() const { return m_state.isMaximized(); } bool isMaximizedVert() const { return m_state.isMaximizedVert(); } bool isMaximizedHorz() const { return m_state.isMaximizedHorz(); } int maximizedState() const { return m_state.maximized; } bool isIconifiable() const { return functions.iconify; } bool isMaximizable() const { return functions.maximize; } bool isResizable() const { return functions.resize; } bool isClosable() const { return functions.close; } bool isMoveable() const { return functions.move; } bool isStuck() const { return m_state.stuck; } bool isFocusNew() const { return m_focus_new; } bool hasTitlebar() const { return decorations.titlebar; } bool isMoving() const { return moving; } bool isResizing() const { return resizing; } bool isGroupable() const; int numClients() const { return m_clientlist.size(); } bool empty() const { return m_clientlist.empty(); } ClientList &clientList() { return m_clientlist; } const ClientList &clientList() const { return m_clientlist; } WinClient &winClient() { return *m_client; } const WinClient &winClient() const { return *m_client; } WinClient* winClientOfLabelButtonWindow(Window w); bool isTyping() const; const FbTk::LayerItem &layerItem() const { return m_frame.layerItem(); } FbTk::LayerItem &layerItem() { return m_frame.layerItem(); } Window clientWindow() const; FbTk::FbWindow &fbWindow(); const FbTk::FbWindow &fbWindow() const; FbMenu &menu(); const FbMenu &menu() const; const FbTk::FbWindow &parent() const { return m_parent; } FbTk::FbWindow &parent() { return m_parent; } bool acceptsFocus() const; bool isModal() const; const FbTk::PixmapWithMask &icon() const; const FbTk::BiDiString &title() const; const FbTk::FbString &getWMClassName() const; const FbTk::FbString &getWMClassClass() const; std::string getWMRole() const; long getCardinalProperty(Atom prop,bool*exists=NULL) const; FbTk::FbString getTextProperty(Atom prop,bool*exists=NULL) const; void setWindowType(WindowState::WindowType type); bool isTransient() const; int x() const { return frame().x(); } int y() const { return frame().y(); } unsigned int width() const { return frame().width(); } unsigned int height() const { return frame().height(); } int normalX() const { return m_state.x; } int normalY() const { return m_state.y; } unsigned int normalWidth() const { return m_state.width; } unsigned int normalHeight() const { return m_state.height; } int xOffset() const { return frame().xOffset(); } int yOffset() const { return frame().yOffset(); } int widthOffset() const { return frame().widthOffset(); } int heightOffset() const { return frame().heightOffset(); } unsigned int workspaceNumber() const { return m_workspace_number; } int layerNum() const { return m_state.layernum; } void setLayerNum(int layernum); unsigned int titlebarHeight() const; int initialState() const; FbWinFrame &frame() { return m_frame; } const FbWinFrame &frame() const { return m_frame; } /** @name signals @{ */ FbTk::Signal &stateSig() { return m_statesig; } FbTk::Signal &layerSig() { return m_layersig; } FbTk::Signal &hintSig() { return m_hintsig; } FbTk::Signal &workspaceSig() { return m_workspacesig; } /** @} */ // end group signals //@} bool oplock; ///< Used to help stop transient loops occurring by locking a window during certain operations private: /// signal callback for title changes by clients void setTitle(const std::string &title, Focusable &client); void setupWindow(); void updateButtons(); void init(); void updateClientLeftWindow(); void grabButtons(); void themeReconfigured(); /** * Calculates insertition position in the list by * using pixel position x and y. * @param x position * @param y position * @return iterator position for insertion */ ClientList::iterator getClientInsertPosition(int x, int y); /// try to attach current attaching client to a window at pos x, y void attachTo(int x, int y, bool interrupted = false); bool getState(); void updateMWMHintsFromClient(WinClient &client); void updateSizeHints(); void associateClientWindow(); void setState(unsigned long stateval, bool setting_up); /// set the layer of a fullscreen window void setFullscreenLayer(); void attachWorkAreaSig(); // modifies left and top if snap is necessary void doSnapping(int &left, int &top); // user_w/h return the values that should be shown to the user void fixSize(); void moveResizeClient(WinClient &client); /// sends configurenotify to all clients void sendConfigureNotify(); static void grabPointer(Window grab_window, Bool owner_events, unsigned int event_mask, int pointer_mode, int keyboard_mode, Window confine_to, Cursor cursor, Time time); static void ungrabPointer(Time time); void associateClient(WinClient &client); /// Called when focused changed, and is attached when it is not in fullscreen mode void focusedWindowChanged(BScreen &screen, FluxboxWindow *focused_win, WinClient* client); /// Called when workspace area on screen changed. void workspaceAreaChanged(BScreen &screen); void frameExtentChanged(); // state and hint signals FbTk::Signal m_workspacesig, m_statesig, m_layersig, m_hintsig; uint64_t m_creation_time; uint64_t m_last_keypress_time; FbTk::Timer m_timer; // Window states bool moving, resizing, m_initialized; WinClient *m_attaching_tab; Display *display; /// display connection int m_button_grab_x, m_button_grab_y; // handles last button press event for move int m_last_resize_x, m_last_resize_y; // handles last button press event for resize int m_last_move_x, m_last_move_y; // handles last pos for non opaque moving int m_last_resize_h, m_last_resize_w; // handles height/width for resize "window" int m_last_pressed_button; unsigned int m_workspace_number; unsigned long m_current_state; // NormalState | IconicState | Withdrawn unsigned int m_old_decoration_mask; ClientList m_clientlist; WinClient *m_client; ///< current client typedef std::map Client2ButtonMap; Client2ButtonMap m_labelbuttons; SizeHints m_size_hint; struct { bool titlebar:1, handle:1, border:1, iconify:1, maximize:1, close:1, menu:1, sticky:1, shade:1, tab:1, enabled:1; } decorations; std::vector m_titlebar_buttons[2]; bool m_toggled_decos; struct { bool resize:1, move:1, iconify:1, maximize:1, close:1, tabable:1; } functions; typedef FbTk::ConstObjectAccessor BoolAcc; /// if the window is normally focused when mapped FbTk::DefaultValue m_focus_new; /// if the window is focused with EnterNotify FbTk::DefaultValue m_mouse_focus; bool m_click_focus; ///< if the window is focused by clicking int m_last_button_x, ///< last known x position of the mouse button m_last_button_y; ///< last known y position of the mouse button FocusableTheme m_button_theme; FocusableTheme m_theme; WindowState m_state; FbWinFrame m_frame; ///< the actual window frame bool m_placed; ///< determine whether or not we should place the window int m_old_layernum; FbTk::FbWindow &m_parent; ///< window on which we draw move/resize rectangle (the "root window") ReferenceCorner m_resize_corner; //< the current corner used while resizing static int s_num_grabs; ///< number of XGrabPointer's }; #endif // WINDOW_HH fluxbox-1.3.5/src/PaxHeaders.25974/Window.cc0000644000175000017500000000013212106662425016621 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.223812462 30 ctime=1360750008.723811614 fluxbox-1.3.5/src/Window.cc0000644000175000017500000037161212106662425014662 0ustar00mgmg00000000000000// Window.cc for Fluxbox Window Manager // Copyright (c) 2001 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Window.cc for Blackbox - an X11 Window manager // Copyright (c) 1997 - 2000 Brad Hughes (bhughes at tcac.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "Window.hh" #include "WinClient.hh" #include "fluxbox.hh" #include "Keys.hh" #include "Screen.hh" #include "FbWinFrameTheme.hh" #include "FbAtoms.hh" #include "RootTheme.hh" #include "Workspace.hh" #include "FbWinFrame.hh" #include "WinButton.hh" #include "WinButtonTheme.hh" #include "WindowCmd.hh" #ifdef REMEMBER #include "Remember.hh" #endif #include "MenuCreator.hh" #include "FocusControl.hh" #include "IconButton.hh" #include "ScreenPlacement.hh" #include "RectangleUtil.hh" #include "Debug.hh" #include "FbTk/StringUtil.hh" #include "FbTk/Compose.hh" #include "FbTk/CommandParser.hh" #include "FbTk/EventManager.hh" #include "FbTk/KeyUtil.hh" #include "FbTk/SimpleCommand.hh" #include "FbTk/Select2nd.hh" #include "FbTk/MemFun.hh" #ifdef HAVE_CONFIG_H #include "config.h" #endif // HAVE_CONFIG_H #ifdef SHAPE #include #endif // SHAPE //use GNU extensions #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif // _GNU_SOURCE #include #include #ifdef HAVE_CSTRING #include #else #include #endif #ifdef HAVE_CSTDIO #include #else #include #endif #include #ifdef HAVE_CASSERT #include #else #include #endif #include #include using std::endl; using std::string; using std::vector; using std::bind2nd; using std::mem_fun; using std::equal_to; using std::max; using std::swap; using std::dec; using std::hex; using namespace FbTk; namespace { // X event scanner for enter/leave notifies - adapted from twm typedef struct scanargs { Window w; Bool leave, inferior, enter; } scanargs; // look for valid enter or leave events (that may invalidate the earlier one we are interested in) extern "C" int queueScanner(Display *, XEvent *e, char *args) { if (e->type == LeaveNotify && e->xcrossing.window == ((scanargs *) args)->w && e->xcrossing.mode == NotifyNormal) { ((scanargs *) args)->leave = true; ((scanargs *) args)->inferior = (e->xcrossing.detail == NotifyInferior); } else if (e->type == EnterNotify && e->xcrossing.mode == NotifyUngrab) ((scanargs *) args)->enter = true; return false; } /// returns the deepest transientFor, asserting against a close loop WinClient *getRootTransientFor(WinClient *client) { while (client && client->transientFor()) { assert(client != client->transientFor()); client = client->transientFor(); } return client; } void callForAllTransient(FluxboxWindow& win, void (*callFunc)(FluxboxWindow&)) { WinClient::TransientList::const_iterator it = win.winClient().transientList().begin(); WinClient::TransientList::const_iterator it_end = win.winClient().transientList().end(); for (; it != it_end; ++it) { if ((*it)->fbwindow() && !(*it)->fbwindow()->isIconic()) // TODO: should we also check if it is the active client? callFunc(*(*it)->fbwindow()); } } /// raise window and do the same for each transient of the current window void raiseFluxboxWindow(FluxboxWindow &win) { if (win.oplock) return; if (win.isIconic()) return; win.oplock = true; // we need to lock actual restacking so that raising above active transient // won't do anything nasty if (!win.winClient().transientList().empty()) win.screen().layerManager().lock(); win.layerItem().raise(); callForAllTransient(win, raiseFluxboxWindow); win.oplock = false; if (!win.winClient().transientList().empty()) win.screen().layerManager().unlock(); } /// lower window and do the same for each transient it holds void lowerFluxboxWindow(FluxboxWindow &win) { if (win.oplock) return; if (win.isIconic()) return; win.oplock = true; // we need to lock actual restacking so that raising above active transient // won't do anything nasty if (!win.winClient().transientList().empty()) win.screen().layerManager().lock(); // lower the windows from the top down, so they don't change stacking order const WinClient::TransientList& transients = win.winClient().transientList(); WinClient::TransientList::const_reverse_iterator it = transients.rbegin(); WinClient::TransientList::const_reverse_iterator it_end = transients.rend(); for (; it != it_end; ++it) { if ((*it)->fbwindow() && !(*it)->fbwindow()->isIconic()) // TODO: should we also check if it is the active client? lowerFluxboxWindow(*(*it)->fbwindow()); } win.layerItem().lower(); win.oplock = false; if (!win.winClient().transientList().empty()) win.screen().layerManager().unlock(); } /// raise window and do the same for each transient it holds void tempRaiseFluxboxWindow(FluxboxWindow &win) { if (win.oplock) return; win.oplock = true; if (!win.isIconic()) { win.layerItem().tempRaise(); } callForAllTransient(win, tempRaiseFluxboxWindow); win.oplock = false; } class SetClientCmd:public FbTk::Command { public: explicit SetClientCmd(WinClient &client):m_client(client) { } void execute() { m_client.focus(); } private: WinClient &m_client; }; /// helper class for some STL routines class ChangeProperty { public: ChangeProperty(Display *disp, Atom prop, int mode, unsigned char *state, int num):m_disp(disp), m_prop(prop), m_state(state), m_num(num), m_mode(mode){ } void operator () (FbTk::FbWindow *win) { XChangeProperty(m_disp, win->window(), m_prop, m_prop, 32, m_mode, m_state, m_num); } private: Display *m_disp; Atom m_prop; unsigned char *m_state; int m_num; int m_mode; }; // Helper class for getResizeDirection below // Tests whether a point is on an edge or the corner. struct TestCornerHelper { int corner_size_px, corner_size_pc; inline bool operator()(int xy, int wh) { /* The % checking must be right: 0% must fail, 100% must succeed. */ return xy < corner_size_px || 100 * xy < corner_size_pc * wh; } }; } int FluxboxWindow::s_num_grabs = 0; FluxboxWindow::FluxboxWindow(WinClient &client): Focusable(client.screen(), this), oplock(false), m_creation_time(0), moving(false), resizing(false), m_initialized(false), m_attaching_tab(0), display(FbTk::App::instance()->display()), m_button_grab_x(0), m_button_grab_y(0), m_last_move_x(0), m_last_move_y(0), m_last_resize_h(1), m_last_resize_w(1), m_last_pressed_button(0), m_workspace_number(0), m_current_state(0), m_old_decoration_mask(0), m_client(&client), m_toggled_decos(false), m_focus_new(BoolAcc(screen().focusControl(), &FocusControl::focusNew)), m_mouse_focus(BoolAcc(screen().focusControl(), &FocusControl::isMouseFocus)), m_click_focus(true), m_last_button_x(0), m_last_button_y(0), m_button_theme(*this, screen().focusedWinButtonTheme(), screen().unfocusedWinButtonTheme()), m_theme(*this, screen().focusedWinFrameTheme(), screen().unfocusedWinFrameTheme()), m_frame(client.screen(), client.depth(), m_state, m_theme), m_placed(false), m_old_layernum(0), m_parent(client.screen().rootWindow()), m_resize_corner(RIGHTBOTTOM) { join(m_theme.reconfigSig(), FbTk::MemFun(*this, &FluxboxWindow::themeReconfigured)); join(m_frame.frameExtentSig(), FbTk::MemFun(*this, &FluxboxWindow::frameExtentChanged)); init(); if (!isManaged()) return; // add the window to the focus list // always add to front on startup to keep the focus order the same if (m_focused || Fluxbox::instance()->isStartup()) screen().focusControl().addFocusWinFront(*this); else screen().focusControl().addFocusWinBack(*this); Fluxbox::instance()->keys()->registerWindow(frame().window().window(), *this, Keys::ON_WINDOW); } FluxboxWindow::~FluxboxWindow() { if (WindowCmd::window() == this) WindowCmd::setWindow(0); if (FbMenu::window() == this) FbMenu::setWindow(0); if ( Fluxbox::instance()->keys() != 0 ) { Fluxbox::instance()->keys()-> unregisterWindow(frame().window().window()); } const char* title = m_client ? m_client->title().logical().c_str() : "" ; fbdbg<<"starting ~FluxboxWindow("< 1"<getAttrib(wattrib) || !wattrib.screen || // no screen? ?? wattrib.override_redirect || // override redirect m_client->initial_state == WithdrawnState) // Slit client return; if (m_client->initial_state == IconicState) m_state.iconic = true; m_client->setFluxboxWindow(this); m_client->setGroupLeftWindow(None); // nothing to the left. if (Fluxbox::instance()->haveShape()) Shape::setShapeNotify(winClient()); //!! TODO init of client should be better // we don't want to duplicate code here and in attachClient m_clientlist.push_back(m_client); fbdbg<<"FluxboxWindow::init(this="< > raise_cmd(new FbTk::SimpleCommand(*this, &FluxboxWindow::raise)); m_timer.setCommand(raise_cmd); m_timer.fireOnce(true); /**************************************************/ /* Read state above here, apply state below here. */ /**************************************************/ if (m_client->isTransient() && m_client->transientFor()->fbwindow()) m_state.stuck = m_client->transientFor()->fbwindow()->isStuck(); if (!m_client->sizeHints().isResizable()) { functions.resize = functions.maximize = false; decorations.tab = false; //no tab for this window } associateClientWindow(); setWindowType(m_client->getWindowType()); if (fluxbox.isStartup()) m_placed = true; else if (m_client->isTransient() || m_client->normal_hint_flags & (PPosition|USPosition)) { int real_x = frame().x(); int real_y = frame().y(); if (screen().hasXinerama()) { // xinerama available => use head info if (0 != screen().getHead(real_x, real_y)) // if visible on some head m_placed = true; } else { // no xinerama available => use screen info if (real_x >= 0 && real_y >= 0 && real_x <= (signed) screen().width() && real_y <= (signed) screen().height()) // if visible on the screen m_placed = true; } } else setOnHead(screen().getCurrHead()); // we must do this now, or else resizing may not work properly applyDecorations(); Fluxbox::instance()->attachSignals(*this); // this window is managed, we are now allowed to modify actual state m_initialized = true; if (m_workspace_number >= screen().numberOfWorkspaces()) m_workspace_number = screen().currentWorkspaceID(); // if we're a transient then we should be on the same layer and workspace if (m_client->isTransient() && m_client->transientFor()->fbwindow() && m_client->transientFor()->fbwindow() != this) { layerItem().setLayer(m_client->transientFor()->fbwindow()->layerItem().getLayer()); m_state.layernum = m_client->transientFor()->fbwindow()->layerNum(); m_workspace_number = m_client->transientFor()->fbwindow()->workspaceNumber(); } else // if no parent then set default layer moveToLayer(m_state.layernum, m_state.layernum != ::ResourceLayer::NORMAL); fbdbg<<"FluxboxWindow::init("<transientFor()<transientFor() && m_client->transientFor()->fbwindow()) { fbdbg<<"FluxboxWindow::init("<title(): "<< m_client->transientFor()->fbwindow()->title().logical()<addWindow(*this); if (m_placed) moveResize(frame().x(), frame().y(), real_width, real_height); else placeWindow(getOnHead()); setFocusFlag(false); // update graphics before mapping if (m_state.stuck) { m_state.stuck = false; stick(); } if (m_state.shaded) { // start shaded m_state.shaded = false; shade(); } if (m_state.iconic) { m_state.iconic = false; iconify(); } else if (m_workspace_number == screen().currentWorkspaceID()) { m_state.iconic = true; deiconify(false); // check if we should prevent this window from gaining focus m_focused = false; // deiconify sets this if (!Fluxbox::instance()->isStartup() && m_focus_new) { m_focused = focusRequestFromClient(*m_client); if (!m_focused) lower(); } } if (m_state.fullscreen) { m_state.fullscreen = false; setFullscreen(true); } if (m_state.maximized) { int tmp = m_state.maximized; m_state.maximized = WindowState::MAX_NONE; setMaximizedState(tmp); } m_workspacesig.emit(*this); m_creation_time = FbTk::FbTime::mono(); frame().frameExtentSig().emit(); setupWindow(); FbTk::App::instance()->sync(false); } /// attach a client to this window and destroy old window void FluxboxWindow::attachClient(WinClient &client, int x, int y) { //!! TODO: check for isGroupable in client if (client.fbwindow() == this) return; menu().hide(); // reparent client win to this frame frame().setClientWindow(client); bool was_focused = false; WinClient *focused_win = 0; // get the current window on the end of our client list Window leftwin = None; if (!clientList().empty()) leftwin = clientList().back()->window(); client.setGroupLeftWindow(leftwin); if (client.fbwindow() != 0) { FluxboxWindow *old_win = client.fbwindow(); // store old window if (FocusControl::focusedFbWindow() == old_win) was_focused = true; ClientList::iterator client_insert_pos = getClientInsertPosition(x, y); FbTk::TextButton *button_insert_pos = NULL; if (client_insert_pos != m_clientlist.end()) button_insert_pos = m_labelbuttons[*client_insert_pos]; // make sure we set new window search for each client ClientList::iterator client_it = old_win->clientList().begin(); ClientList::iterator client_it_end = old_win->clientList().end(); for (; client_it != client_it_end; ++client_it) { // reparent window to this frame().setClientWindow(**client_it); moveResizeClient(**client_it); // create a labelbutton for this client and // associate it with the pointer associateClient(*(*client_it)); //null if we want the new button at the end of the list if (x >= 0 && button_insert_pos) frame().moveLabelButtonLeftOf(*m_labelbuttons[*client_it], *button_insert_pos); } // add client and move over all attached clients // from the old window to this list m_clientlist.splice(client_insert_pos, old_win->m_clientlist); updateClientLeftWindow(); old_win->m_client = 0; delete old_win; } else { // client.fbwindow() == 0 associateClient(client); moveResizeClient(client); // right now, this block only happens with new windows or on restart bool is_startup = Fluxbox::instance()->isStartup(); // we use m_focused as a signal to focus the window when mapped if (m_focus_new && !is_startup) m_focused = focusRequestFromClient(client); focused_win = (m_focus_new || is_startup) ? &client : m_client; m_clientlist.push_back(&client); } // make sure that the state etc etc is updated for the new client // TODO: one day these should probably be neatened to only act on the // affected clients if possible m_statesig.emit(*this); m_workspacesig.emit(*this); m_layersig.emit(*this); if (was_focused) { // don't ask me why, but client doesn't seem to keep focus in new window // and we don't seem to get a FocusIn event from setInputFocus client.focus(); FocusControl::setFocusedWindow(&client); } else { if (!focused_win) focused_win = screen().focusControl().lastFocusedWindow(*this); if (focused_win) { setCurrentClient(*focused_win, false); if (isIconic() && m_focused) deiconify(); } } frame().reconfigure(); } /// detach client from window and create a new window for it bool FluxboxWindow::detachClient(WinClient &client) { if (client.fbwindow() != this || numClients() <= 1) return false; Window leftwin = None; ClientList::iterator client_it, client_it_after; client_it = client_it_after = find(clientList().begin(), clientList().end(), &client); if (client_it != clientList().begin()) leftwin = (*(--client_it))->window(); if (++client_it_after != clientList().end()) (*client_it_after)->setGroupLeftWindow(leftwin); removeClient(client); screen().createWindow(client); return true; } void FluxboxWindow::detachCurrentClient() { // should only operate if we had more than one client if (numClients() <= 1) return; WinClient &client = *m_client; detachClient(*m_client); if (client.fbwindow() != 0) client.fbwindow()->show(); } /// removes client from client list, does not create new fluxboxwindow for it bool FluxboxWindow::removeClient(WinClient &client) { if (client.fbwindow() != this || numClients() == 0) return false; fbdbg<<"("<<__FUNCTION__<<")["<flags & MwmHintsFunctions) { if (hint->functions & MwmFuncAll) { functions.resize = functions.move = functions.iconify = functions.maximize = functions.close = true; } else { functions.resize = functions.move = functions.iconify = functions.maximize = functions.close = false; if (hint->functions & MwmFuncResize) functions.resize = true; if (hint->functions & MwmFuncMove) functions.move = true; if (hint->functions & MwmFuncIconify) functions.iconify = true; if (hint->functions & MwmFuncMaximize) functions.maximize = true; if (hint->functions & MwmFuncClose) functions.close = true; } } } void FluxboxWindow::updateFunctions() { if (!m_client) return; bool changed = false; if (m_client->isClosable() != functions.close) { functions.close = m_client->isClosable(); changed = true; } if (changed) setupWindow(); } void FluxboxWindow::move(int x, int y) { moveResize(x, y, frame().width(), frame().height()); } void FluxboxWindow::resize(unsigned int width, unsigned int height) { // don't set window as placed, since we're only resizing bool placed = m_placed; moveResize(frame().x(), frame().y(), width, height); m_placed = placed; } // send_event is just an override void FluxboxWindow::moveResize(int new_x, int new_y, unsigned int new_width, unsigned int new_height, bool send_event) { m_placed = true; send_event = send_event || frame().x() != new_x || frame().y() != new_y; if ((new_width != frame().width() || new_height != frame().height()) && isResizable() && !isShaded()) { if ((((signed) frame().width()) + new_x) < 0) new_x = 0; if ((((signed) frame().height()) + new_y) < 0) new_y = 0; frame().moveResize(new_x, new_y, new_width, new_height); setFocusFlag(m_focused); send_event = true; } else if (send_event) frame().move(new_x, new_y); if (send_event && ! moving) { sendConfigureNotify(); } if (!moving) { m_last_resize_x = new_x; m_last_resize_y = new_y; /* Ignore all EnterNotify events until the pointer actually moves */ screen().focusControl().ignoreAtPointer(); } } void FluxboxWindow::moveResizeForClient(int new_x, int new_y, unsigned int new_width, unsigned int new_height, int gravity, unsigned int client_bw) { m_placed = true; frame().moveResizeForClient(new_x, new_y, new_width, new_height, gravity, client_bw); setFocusFlag(m_focused); m_state.shaded = false; sendConfigureNotify(); if (!moving) { m_last_resize_x = new_x; m_last_resize_y = new_y; } } void FluxboxWindow::getMaxSize(unsigned int* width, unsigned int* height) const { if (width) *width = m_size_hint.max_width; if (height) *height = m_size_hint.max_height; } // returns whether the focus was "set" to this window // it doesn't guarantee that it has focus, but says that we have // tried. A FocusIn event should eventually arrive for that // window if it actually got the focus, then setFocusFlag is called, // which updates all the graphics etc bool FluxboxWindow::focus() { if (((signed) (frame().x() + frame().width())) < 0) { if (((signed) (frame().y() + frame().height())) < 0) { moveResize(frame().window().borderWidth(), frame().window().borderWidth(), frame().width(), frame().height()); } else if (frame().y() > (signed) screen().height()) { moveResize(frame().window().borderWidth(), screen().height() - frame().height(), frame().width(), frame().height()); } else { moveResize(frame().window().borderWidth(), frame().y() + frame().window().borderWidth(), frame().width(), frame().height()); } } else if (frame().x() > (signed) screen().width()) { if (((signed) (frame().y() + frame().height())) < 0) { moveResize(screen().width() - frame().width(), frame().window().borderWidth(), frame().width(), frame().height()); } else if (frame().y() > (signed) screen().height()) { moveResize(screen().width() - frame().width(), screen().height() - frame().height(), frame().width(), frame().height()); } else { moveResize(screen().width() - frame().width(), frame().y() + frame().window().borderWidth(), frame().width(), frame().height()); } } if (! m_client->validateClient()) return false; if (screen().currentWorkspaceID() != workspaceNumber() && !isStuck()) { // fetch the window to the current workspace if minimized if (isIconic()) screen().sendToWorkspace(screen().currentWorkspaceID(), this, false); // warp to the workspace of the window else screen().changeWorkspaceID(workspaceNumber(), false); } if (isIconic()) { deiconify(); m_focused = true; // signal to mapNotifyEvent to set focus when mapped return true; // the window probably will get focused, just not yet } // this needs to be here rather than setFocusFlag because // FocusControl::revertFocus will return before FocusIn events arrive m_screen.focusControl().setScreenFocusedWindow(*m_client); fbdbg<<"FluxboxWindow::"<<__FUNCTION__<<" isModal() = "<isModal()<isStateModal()) return (*it)->focus(); } } if (m_client->isModal()) return false; return m_client->sendFocus(); } // don't hide the frame directly, use this function void FluxboxWindow::hide(bool interrupt_moving) { fbdbg<<"("<<__FUNCTION__<<")["<fbwindow()) (*it)->fbwindow()->iconify(); } // focus revert is done elsewhere (based on signal) } void FluxboxWindow::deiconify(bool do_raise) { if (numClients() == 0 || !m_state.iconic || oplock) return; oplock = true; // reassociate first, so it gets removed from screen's icon list screen().reassociateWindow(this, m_workspace_number, false); m_state.iconic = false; m_statesig.emit(*this); // deiconify all transients ClientList::iterator client_it = clientList().begin(); ClientList::iterator client_it_end = clientList().end(); for (; client_it != client_it_end; ++client_it) { WinClient::TransientList::iterator trans_it = (*client_it)->transientList().begin(); WinClient::TransientList::iterator trans_it_end = (*client_it)->transientList().end(); for (; trans_it != trans_it_end; ++trans_it) { if ((*trans_it)->fbwindow()) (*trans_it)->fbwindow()->deiconify(false); } } if (m_workspace_number != screen().currentWorkspaceID()) return; show(); // focus new, OR if it's the only window on the workspace // but not on startup: focus will be handled after creating everything // we use m_focused as a signal to focus the window when mapped if (screen().currentWorkspace()->numberOfWindows() == 1 || m_focus_new || m_client->isTransient()) m_focused = true; oplock = false; if (do_raise) raise(); } /** setFullscreen mode: - maximize as big as the screen is, dont care about slit / toolbar - raise to toplayer */ void FluxboxWindow::setFullscreen(bool flag) { if (!m_initialized) { // this will interfere with window placement, so we delay it m_state.fullscreen = flag; return; } if (flag && !isFullscreen()) { m_old_layernum = layerNum(); m_state.fullscreen = true; frame().applyState(); setFullscreenLayer(); // calls stateSig().emit() if (!isFocused()) { join(screen().focusedWindowSig(), FbTk::MemFun(*this, &FluxboxWindow::focusedWindowChanged)); } } else if (!flag && isFullscreen()) { m_state.fullscreen = false; frame().applyState(); moveToLayer(m_old_layernum); stateSig().emit(*this); } attachWorkAreaSig(); } void FluxboxWindow::setFullscreenLayer() { FluxboxWindow *foc = FocusControl::focusedFbWindow(); // if another window on the same head is focused, make sure we can see it if (isFocused() || !foc || &foc->screen() != &screen() || getOnHead() != foc->getOnHead() || (foc->winClient().isTransient() && foc->winClient().transientFor()->fbwindow() == this)) { moveToLayer(::ResourceLayer::ABOVE_DOCK); } else { moveToLayer(::ResourceLayer::DESKTOP); } stateSig().emit(*this); } void FluxboxWindow::attachWorkAreaSig() { // notify when struts change, so we can resize accordingly // Subject checks for duplicates for us // XXX: this is no longer true with signals if (m_state.maximized || m_state.fullscreen) join(screen().workspaceAreaSig(), FbTk::MemFun(*this, &FluxboxWindow::workspaceAreaChanged)); else leave(screen().workspaceAreaSig()); } /** Maximize window both horizontal and vertical */ void FluxboxWindow::maximize(int type) { int new_max = m_state.queryToggleMaximized(type); setMaximizedState(new_max); } void FluxboxWindow::setMaximizedState(int type) { if (!m_initialized || type == m_state.maximized) { // this will interfere with window placement, so we delay it m_state.maximized = type; return; } if (isResizing()) stopResizing(); if (isShaded()) { // do not call ::shade() here to trigger frame().applyState() and // stateSig().emit() only once m_state.shaded = false; } m_state.maximized = type; frame().applyState(); attachWorkAreaSig(); // notify listeners that we changed state stateSig().emit(*this); } void FluxboxWindow::disableMaximization() { m_state.maximized = WindowState::MAX_NONE; // TODO: could be optional, if the window gets back to original size / // position after maximization is disabled m_state.saveGeometry(frame().x(), frame().y(), frame().width(), frame().height()); frame().applyState(); stateSig().emit(*this); } /** * Maximize window horizontal */ void FluxboxWindow::maximizeHorizontal() { maximize(WindowState::MAX_HORZ); } /** * Maximize window vertical */ void FluxboxWindow::maximizeVertical() { maximize(WindowState::MAX_VERT); } /** * Maximize window fully */ void FluxboxWindow::maximizeFull() { maximize(WindowState::MAX_FULL); } void FluxboxWindow::setWorkspace(int n) { unsigned int old_wkspc = m_workspace_number; m_workspace_number = n; // notify workspace change if (m_initialized && old_wkspc != m_workspace_number) { fbdbg<transientList().begin(); WinClient::TransientList::const_iterator it_end = (*client_it)->transientList().end(); for (; it != it_end; ++it) { if ((*it)->fbwindow()) (*it)->fbwindow()->setStuck(m_state.stuck); } } } void FluxboxWindow::setStuck(bool val) { if (val != m_state.stuck) stick(); } void FluxboxWindow::setIconic(bool val) { if (!val && isIconic()) deiconify(); if (val && !isIconic()) iconify(); } void FluxboxWindow::raise() { if (isIconic()) return; fbdbg<<"FluxboxWindow("<transientFor() && m_client != m_client->transientFor()->transientList().back()) { // remove and push back so this window gets raised last m_client->transientFor()->transientList().remove(m_client); m_client->transientFor()->transientList().push_back(m_client); } // raise this window and every transient in it with this one last if (client->fbwindow()) { // doing this on startup messes up the focus order if (!Fluxbox::instance()->isStartup() && client->fbwindow() != this && &client->fbwindow()->winClient() != client) // activate the client so the transient won't get pushed back down client->fbwindow()->setCurrentClient(*client, false); raiseFluxboxWindow(*client->fbwindow()); } } void FluxboxWindow::lower() { if (isIconic()) return; fbdbg<<"FluxboxWindow("<fbwindow()) lowerFluxboxWindow(*client->fbwindow()); } void FluxboxWindow::tempRaise() { // Note: currently, this causes a problem with cycling through minimized // clients if this window has more than one tab, since the window will not // match isIconic() when the rest of the tabs get checked if (isIconic()) deiconify(); // the root transient will get raised when we stop cycling // raising it here causes problems when it isn't the active tab tempRaiseFluxboxWindow(*this); } void FluxboxWindow::changeLayer(int diff) { moveToLayer(m_state.layernum+diff); } void FluxboxWindow::moveToLayer(int layernum, bool force) { fbdbg<<"FluxboxWindow("<= ::ResourceLayer::NUM_LAYERS) layernum = ::ResourceLayer::NUM_LAYERS - 1; if (!m_initialized) m_state.layernum = layernum; if ((m_state.layernum == layernum && !force) || !m_client) return; // get root window WinClient *client = getRootTransientFor(m_client); FluxboxWindow *win = client->fbwindow(); if (!win) return; win->layerItem().moveToLayer(layernum); // remember number just in case a transient happens to revisit this window layernum = win->layerItem().getLayerNum(); win->setLayerNum(layernum); // move all the transients, too ClientList::iterator client_it = win->clientList().begin(); ClientList::iterator client_it_end = win->clientList().end(); for (; client_it != client_it_end; ++client_it) { WinClient::TransientList::const_iterator it = (*client_it)->transientList().begin(); WinClient::TransientList::const_iterator it_end = (*client_it)->transientList().end(); for (; it != it_end; ++it) { FluxboxWindow *fbwin = (*it)->fbwindow(); if (fbwin && !fbwin->isIconic()) { fbwin->layerItem().moveToLayer(layernum); fbwin->setLayerNum(layernum); } } } } void FluxboxWindow::setFocusHidden(bool value) { m_state.focus_hidden = value; if (m_initialized) m_statesig.emit(*this); } void FluxboxWindow::setIconHidden(bool value) { m_state.icon_hidden = value; if (m_initialized) m_statesig.emit(*this); } // window has actually RECEIVED focus (got a FocusIn event) // so now we make it a focused frame etc void FluxboxWindow::setFocusFlag(bool focus) { if (!m_client) return; bool was_focused = isFocused(); m_focused = focus; fbdbg<<"FluxboxWindow("<notifyFocusChanged(); Fluxbox::instance()->keys()->doAction(focus ? FocusIn : FocusOut, 0, 0, Keys::ON_WINDOW, m_client); } } void FluxboxWindow::installColormap(bool install) { if (m_client == 0) return; Fluxbox *fluxbox = Fluxbox::instance(); fluxbox->grab(); if (! m_client->validateClient()) return; int i = 0, ncmap = 0; Colormap *cmaps = XListInstalledColormaps(display, m_client->window(), &ncmap); XWindowAttributes wattrib; if (cmaps) { //!! if (m_client->getAttrib(wattrib)) { if (install) { // install the window's colormap for (i = 0; i < ncmap; i++) { if (*(cmaps + i) == wattrib.colormap) { // this window is using an installed color map... do not install install = false; break; //end for-loop (we dont need to check more) } } // otherwise, install the window's colormap if (install) XInstallColormap(display, wattrib.colormap); } else { for (i = 0; i < ncmap; i++) { // uninstall the window's colormap if (*(cmaps + i) == wattrib.colormap) XUninstallColormap(display, wattrib.colormap); } } } XFree(cmaps); } fluxbox->ungrab(); } /** Sets state on each client in our list Use setting_up for setting startup state - it may not be committed yet That'll happen when its mapped */ void FluxboxWindow::setState(unsigned long new_state, bool setting_up) { m_current_state = new_state; if (numClients() == 0 || setting_up) return; unsigned long state[2]; state[0] = (unsigned long) m_current_state; state[1] = (unsigned long) None; for_each(m_clientlist.begin(), m_clientlist.end(), ChangeProperty(display, FbAtoms::instance()->getWMStateAtom(), PropModeReplace, (unsigned char *)state, 2)); ClientList::iterator it = clientList().begin(); ClientList::iterator it_end = clientList().end(); for (; it != it_end; ++it) { (*it)->setEventMask(NoEventMask); if (new_state == IconicState) (*it)->hide(); else if (new_state == NormalState) (*it)->show(); (*it)->setEventMask(PropertyChangeMask | StructureNotifyMask | FocusChangeMask | KeyPressMask); } } bool FluxboxWindow::getState() { Atom atom_return; bool ret = false; int foo; unsigned long *state, ulfoo, nitems; if (!m_client->property(FbAtoms::instance()->getWMStateAtom(), 0l, 2l, false, FbAtoms::instance()->getWMStateAtom(), &atom_return, &foo, &nitems, &ulfoo, (unsigned char **) &state) || !state) return false; if (nitems >= 1) { m_current_state = static_cast(state[0]); ret = true; } XFree(static_cast(state)); return ret; } /** Show the window menu at pos x, y */ void FluxboxWindow::showMenu(int x, int y) { menu().reloadHelper()->checkReload(); FbMenu::setWindow(this); screen().placementStrategy() .placeAndShowMenu(menu(), x, y, true); } void FluxboxWindow::popupMenu(int x, int y) { // hide menu if it was opened for this window before if (menu().isVisible() && FbMenu::window() == this) { menu().hide(); return; } menu().disableTitle(); showMenu(x, y); } /** Moves the menu to last button press position and shows it, if it's already visible it'll be hidden */ void FluxboxWindow::popupMenu() { if (m_last_button_x < x() || m_last_button_x > x() + static_cast(width())) m_last_button_x = x(); popupMenu(m_last_button_x, frame().titlebarHeight() + frame().y()); } /** Redirect any unhandled event to our handlers */ void FluxboxWindow::handleEvent(XEvent &event) { switch (event.type) { case ConfigureRequest: fbdbg<<"ConfigureRequest("<shaped) frame().setShapingClient(m_client, true); else frame().setShapingClient(0, true); FbTk::App::instance()->sync(false); break; } #endif // SHAPE break; } } void FluxboxWindow::mapRequestEvent(XMapRequestEvent &re) { // we're only concerned about client window event WinClient *client = findClient(re.window); if (client == 0) { fbdbg<<"("<<__FUNCTION__<<"): Can't find client!"<isFullscreen() && getOnHead() == cur->getOnHead()) && !cur->isTyping(); if (!ret) Fluxbox::instance()->attentionHandler().addAttention(from); return ret; } void FluxboxWindow::mapNotifyEvent(XMapEvent &ne) { WinClient *client = findClient(ne.window); if (!client || client != m_client) return; if (ne.override_redirect || !isVisible() || !client->validateClient()) return; m_state.iconic = false; // setting state will cause all tabs to be mapped, but we only want the // original tab to be focused if (m_current_state != NormalState) setState(NormalState, false); // we use m_focused as a signal that this should be focused when mapped if (m_focused) { m_focused = false; focus(); } } /** Unmaps frame window and client window if event.window == m_client->window */ void FluxboxWindow::unmapNotifyEvent(XUnmapEvent &ue) { WinClient *client = findClient(ue.window); if (client == 0) return; fbdbg<<"("<<__FUNCTION__<<"): 0x"<window()<getWMProtocolsAtom()) { client.updateWMProtocols(); } else if (atom == fbatoms->getMWMHintsAtom()) { client.updateMWMHints(); updateMWMHintsFromClient(client); #ifdef REMEMBER if (!m_toggled_decos) { Remember::instance().updateDecoStateFromClient(client); } #endif applyDecorations(); // update decorations (if they changed) } break; } } void FluxboxWindow::exposeEvent(XExposeEvent &ee) { frame().exposeEvent(ee); } void FluxboxWindow::configureRequestEvent(XConfigureRequestEvent &cr) { WinClient *client = findClient(cr.window); if (client == 0 || isIconic()) return; int old_x = frame().x(), old_y = frame().y(); unsigned int old_w = frame().width(); unsigned int old_h = frame().height() - frame().titlebarHeight() - frame().handleHeight(); int cx = old_x, cy = old_y, ignore = 0; unsigned int cw = old_w, ch = old_h; // make sure the new width/height would be ok with all clients, or else they // could try to resize the window back and forth if (cr.value_mask & CWWidth || cr.value_mask & CWHeight) { unsigned int new_w = (cr.value_mask & CWWidth) ? cr.width : cw; unsigned int new_h = (cr.value_mask & CWHeight) ? cr.height : ch; ClientList::iterator it = clientList().begin(); ClientList::iterator it_end = clientList().end(); for (; it != it_end; ++it) { if (*it != client && !(*it)->sizeHints().valid(new_w, new_h)) cr.value_mask = cr.value_mask & ~(CWWidth | CWHeight); } } // don't allow moving/resizing fullscreen or maximized windows if (isFullscreen() || (isMaximizedHorz() && screen().getMaxIgnoreIncrement())) cr.value_mask = cr.value_mask & ~(CWWidth | CWX); if (isFullscreen() || (isMaximizedVert() && screen().getMaxIgnoreIncrement())) cr.value_mask = cr.value_mask & ~(CWHeight | CWY); #ifdef REMEMBER // don't let misbehaving clients (e.g. MPlayer) move/resize their windows // just after creation if the user has a saved position/size if (m_creation_time) { uint64_t now = FbTk::FbTime::mono(); Remember& rinst = Remember::instance(); if (now > (m_creation_time + FbTk::FbTime::IN_SECONDS)) { m_creation_time = 0; } else if (rinst.isRemembered(*client, Remember::REM_MAXIMIZEDSTATE) || rinst.isRemembered(*client, Remember::REM_FULLSCREENSTATE)) { cr.value_mask = cr.value_mask & ~(CWWidth | CWHeight); cr.value_mask = cr.value_mask & ~(CWX | CWY); } else { if (rinst.isRemembered(*client, Remember::REM_DIMENSIONS)) cr.value_mask = cr.value_mask & ~(CWWidth | CWHeight); if (rinst.isRemembered(*client, Remember::REM_POSITION)) cr.value_mask = cr.value_mask & ~(CWX | CWY); } } #endif // REMEMBER if (cr.value_mask & CWBorderWidth) client->old_bw = cr.border_width; if ((cr.value_mask & CWX) && (cr.value_mask & CWY)) { cx = cr.x; cy = cr.y; frame().gravityTranslate(cx, cy, client->gravity(), client->old_bw, false); frame().setActiveGravity(client->gravity(), client->old_bw); } else if (cr.value_mask & CWX) { cx = cr.x; frame().gravityTranslate(cx, ignore, client->gravity(), client->old_bw, false); frame().setActiveGravity(client->gravity(), client->old_bw); } else if (cr.value_mask & CWY) { cy = cr.y; frame().gravityTranslate(ignore, cy, client->gravity(), client->old_bw, false); frame().setActiveGravity(client->gravity(), client->old_bw); } if (cr.value_mask & CWWidth) cw = cr.width; if (cr.value_mask & CWHeight) ch = cr.height; // the request is for client window so we resize the frame to it first if (old_w != cw || old_h != ch) { if (old_x != cx || old_y != cy) frame().moveResizeForClient(cx, cy, cw, ch); else frame().resizeForClient(cw, ch); } else if (old_x != cx || old_y != cy) { frame().move(cx, cy); } if (cr.value_mask & CWStackMode) { switch (cr.detail) { case Above: case TopIf: default: if ((isFocused() && focusRequestFromClient(*client)) || !FocusControl::focusedWindow()) { setCurrentClient(*client, true); raise(); } else if (getRootTransientFor(client) == getRootTransientFor(FocusControl::focusedWindow())) { setCurrentClient(*client, false); raise(); } break; case Below: case BottomIf: lower(); break; } } sendConfigureNotify(); } // keep track of last keypress in window, so we can decide not to focusNew void FluxboxWindow::keyPressEvent(XKeyEvent &ke) { // if there's a modifier key down, the user probably expects the new window if (FbTk::KeyUtil::instance().cleanMods(ke.state)) return; // we need to ignore modifier keys themselves, too KeySym ks; char keychar[1]; XLookupString(&ke, keychar, 1, &ks, 0); if (IsModifierKey(ks)) return; // if the key was return/enter, the user probably expects the window // e.g., typed the command in a terminal if (ks == XK_KP_Enter || ks == XK_Return) { // we'll actually reset the time for this one m_last_keypress_time = 0; return; } // otherwise, make a note that the user is typing m_last_keypress_time = FbTk::FbTime::mono(); } bool FluxboxWindow::isTyping() const { uint64_t diff = FbTk::FbTime::mono() - m_last_keypress_time; return ((diff / 1000) < screen().noFocusWhileTypingDelay()); } void FluxboxWindow::buttonPressEvent(XButtonEvent &be) { m_last_button_x = be.x_root; m_last_button_y = be.y_root; m_last_pressed_button = be.button; Keys *k = Fluxbox::instance()->keys(); int context = frame().getContext(be.window); if (k->doAction(be.type, be.state, be.button, context, &winClient(), be.time)) { return; } // if nothing was bound via keys-file then // - raise() if clickRaise is enabled // - hide open menues // - focus on clickFocus // - refeed the event into the queue so the app gets it if (frame().window().window() == be.window) { if (screen().clickRaises()) raise(); XAllowEvents(display, ReplayPointer, be.time); m_button_grab_x = be.x_root - frame().x() - frame().window().borderWidth(); m_button_grab_y = be.y_root - frame().y() - frame().window().borderWidth(); } FbTk::Menu::hideShownMenu(); if (!m_focused && acceptsFocus() && m_click_focus) focus(); } void FluxboxWindow::buttonReleaseEvent(XButtonEvent &re) { if (m_last_pressed_button == static_cast(re.button)) { m_last_pressed_button = 0; } if (isMoving()) stopMoving(); else if (isResizing()) stopResizing(); else if (m_attaching_tab) attachTo(re.x_root, re.y_root); else if (!frame().tabcontainer().tryButtonReleaseEvent(re)) { if (m_last_button_x == re.x_root && m_last_button_y == re.y_root) { Fluxbox::instance()->keys()->doAction(re.type, re.state, re.button, Keys::ON_WINDOW, &winClient(), re.time); } } } void FluxboxWindow::motionNotifyEvent(XMotionEvent &me) { if (isMoving() && me.window == parent()) { me.window = frame().window().window(); } int context = frame().getContext(me.window, me.x_root, me.y_root, m_last_button_x, m_last_button_y, true); if (Fluxbox::instance()->getIgnoreBorder() && m_attaching_tab == 0 && !(isMoving() || isResizing())) { if (context & Keys::ON_WINDOWBORDER) { return; } } // in case someone put MoveX :StartMoving etc into keys, we have // to activate it before doing the actual motionNotify code Fluxbox::instance()->keys()->doAction(me.type, me.state, m_last_pressed_button, context, &winClient(), me.time); if (moving) { XEvent e; // Warp to next or previous workspace?, must have moved sideways some int moved_x = me.x_root - m_last_resize_x; // save last event point m_last_resize_x = me.x_root; m_last_resize_y = me.y_root; // undraw rectangle before warping workspaces if (!screen().doOpaqueMove()) { parent().drawRectangle(screen().rootTheme()->opGC(), m_last_move_x, m_last_move_y, frame().width() + 2*frame().window().borderWidth()-1, frame().height() + 2*frame().window().borderWidth()-1); } if (moved_x && screen().isWorkspaceWarping()) { unsigned int cur_id = screen().currentWorkspaceID(); unsigned int new_id = cur_id; const int warpPad = screen().getEdgeSnapThreshold(); // 1) if we're inside the border threshold // 2) if we moved in the right direction if (me.x_root >= int(screen().width()) - warpPad - 1 && moved_x > 0) { //warp right new_id = (cur_id + 1) % screen().numberOfWorkspaces(); m_last_resize_x = 0; // move mouse back to x=0 } else if (me.x_root <= warpPad && moved_x < 0) { //warp left new_id = (cur_id + screen().numberOfWorkspaces() - 1) % screen().numberOfWorkspaces(); m_last_resize_x = screen().width() - 1; // move mouse to screen width - 1 } if (new_id != cur_id) { // remove motion events from queue to avoid repeated warps while (XCheckTypedEvent(display, MotionNotify, &e)) { // might as well update the y-coordinate m_last_resize_y = e.xmotion.y_root; } // move the pointer to (m_last_resize_x,m_last_resize_y) XWarpPointer(display, None, me.root, 0, 0, 0, 0, m_last_resize_x, m_last_resize_y); if (screen().doOpaqueMove()) screen().sendToWorkspace(new_id, this, true); else screen().changeWorkspaceID(new_id, false); } } int dx = m_last_resize_x - m_button_grab_x, dy = m_last_resize_y - m_button_grab_y; dx -= frame().window().borderWidth(); dy -= frame().window().borderWidth(); // dx = current left side, dy = current top doSnapping(dx, dy); // do not update display if another motion event is already pending if (XCheckTypedEvent(display, MotionNotify, &e)) { XPutBackEvent(display, &e); return; } if (!screen().doOpaqueMove()) { parent().drawRectangle(screen().rootTheme()->opGC(), dx, dy, frame().width() + 2*frame().window().borderWidth()-1, frame().height() + 2*frame().window().borderWidth()-1); m_last_move_x = dx; m_last_move_y = dy; } else { //moveResize(dx, dy, frame().width(), frame().height()); // need to move the base window without interfering with transparency frame().quietMoveResize(dx, dy, frame().width(), frame().height()); } screen().showPosition(dx, dy); // end if moving } else if (resizing) { int old_resize_x = m_last_resize_x; int old_resize_y = m_last_resize_y; int old_resize_w = m_last_resize_w; int old_resize_h = m_last_resize_h; int dx = me.x - m_button_grab_x; int dy = me.y - m_button_grab_y; if (m_resize_corner == LEFTTOP || m_resize_corner == LEFTBOTTOM || m_resize_corner == LEFT) { m_last_resize_w = frame().width() - dx; m_last_resize_x = frame().x() + dx; } if (m_resize_corner == LEFTTOP || m_resize_corner == RIGHTTOP || m_resize_corner == TOP) { m_last_resize_h = frame().height() - dy; m_last_resize_y = frame().y() + dy; } if (m_resize_corner == LEFTBOTTOM || m_resize_corner == BOTTOM || m_resize_corner == RIGHTBOTTOM) m_last_resize_h = frame().height() + dy; if (m_resize_corner == RIGHTBOTTOM || m_resize_corner == RIGHTTOP || m_resize_corner == RIGHT) m_last_resize_w = frame().width() + dx; if (m_resize_corner == CENTER) { // dx or dy must be at least 2 if (abs(dx) >= 2 || abs(dy) >= 2) { // take max and make it even int diff = 2 * (max(dx, dy) / 2); m_last_resize_h = frame().height() + diff; m_last_resize_w = frame().width() + diff; m_last_resize_x = frame().x() - diff/2; m_last_resize_y = frame().y() - diff/2; } } fixSize(); frame().displaySize(m_last_resize_w, m_last_resize_h); if (old_resize_x != m_last_resize_x || old_resize_y != m_last_resize_y || old_resize_w != m_last_resize_w || old_resize_h != m_last_resize_h ) { // draw over old rect parent().drawRectangle(screen().rootTheme()->opGC(), old_resize_x, old_resize_y, old_resize_w - 1 + 2 * frame().window().borderWidth(), old_resize_h - 1 + 2 * frame().window().borderWidth()); // draw resize rectangle parent().drawRectangle(screen().rootTheme()->opGC(), m_last_resize_x, m_last_resize_y, m_last_resize_w - 1 + 2 * frame().window().borderWidth(), m_last_resize_h - 1 + 2 * frame().window().borderWidth()); } } else if (m_attaching_tab != 0) { // // drag'n'drop code for tabs // // we already grabed and started to drag'n'drop tab // so we update drag'n'drop-rectangle int dx = me.x_root - m_button_grab_x, dy = me.y_root - m_button_grab_y; parent().drawRectangle(screen().rootTheme()->opGC(), m_last_move_x, m_last_move_y, m_last_resize_w, m_last_resize_h); parent().drawRectangle(screen().rootTheme()->opGC(), dx, dy, m_last_resize_w, m_last_resize_h); // change remembered position of rectangle m_last_move_x = dx; m_last_move_y = dy; } } void FluxboxWindow::enterNotifyEvent(XCrossingEvent &ev) { // ignore grab activates, or if we're not visible if (ev.mode == NotifyGrab || ev.mode == NotifyUngrab || !isVisible()) { return; } if (ev.window == frame().window()) Fluxbox::instance()->keys()->doAction(ev.type, ev.state, 0, Keys::ON_WINDOW, m_client); WinClient *client = 0; if (screen().focusControl().isMouseTabFocus()) { // determine if we're in a label button (tab) client = winClientOfLabelButtonWindow(ev.window); } if (ev.window == frame().window() || ev.window == m_client->window() || client) { if (m_mouse_focus && !isFocused() && acceptsFocus()) { // check that there aren't any subsequent leave notify events in the // X event queue XEvent dummy; scanargs sa; sa.w = ev.window; sa.enter = sa.leave = False; XCheckIfEvent(display, &dummy, queueScanner, (char *) &sa); if ((!sa.leave || sa.inferior) && !screen().focusControl().isCycling() && !screen().focusControl().isIgnored(ev.x_root, ev.y_root) ) { focus(); } } } if (screen().focusControl().isMouseTabFocus() && client && client != m_client && !screen().focusControl().isIgnored(ev.x_root, ev.y_root) ) { setCurrentClient(*client, isFocused()); } } void FluxboxWindow::leaveNotifyEvent(XCrossingEvent &ev) { // ignore grab activates, or if we're not visible if (ev.mode == NotifyGrab || ev.mode == NotifyUngrab || !isVisible()) { return; } // still inside? if (ev.x_root > frame().x() && ev.y_root > frame().y() && ev.x_root <= (int)(frame().x() + frame().width()) && ev.y_root <= (int)(frame().y() + frame().height())) return; Fluxbox::instance()->keys()->doAction(ev.type, ev.state, 0, Keys::ON_WINDOW, m_client); // I hope commenting this out is right - simon 21jul2003 //if (ev.window == frame().window()) //installColormap(false); } void FluxboxWindow::setTitle(const std::string& title, Focusable &client) { // only update focus title for current client if (&client != m_client) { return; } frame().setFocusTitle(title); // relay title to others that display the focus title titleSig().emit(title, *this); } void FluxboxWindow::frameExtentChanged() { if (m_initialized) { Fluxbox::instance()->updateFrameExtents(*this); sendConfigureNotify(); } } void FluxboxWindow::themeReconfigured() { frame().applyDecorations(); sendConfigureNotify(); } void FluxboxWindow::workspaceAreaChanged(BScreen &screen) { frame().applyState(); } // commit current decoration values to actual displayed things void FluxboxWindow::applyDecorations() { frame().setDecorationMask(decorationMask()); frame().applyDecorations(); } void FluxboxWindow::toggleDecoration() { //don't toggle decor if the window is shaded if (isShaded() || isFullscreen()) return; m_toggled_decos = !m_toggled_decos; if (m_toggled_decos) { m_old_decoration_mask = decorationMask(); if (decorations.titlebar | decorations.tab) setDecorationMask(WindowState::DECOR_NONE); else setDecorationMask(WindowState::DECOR_NORMAL); } else //revert back to old decoration setDecorationMask(m_old_decoration_mask); } unsigned int FluxboxWindow::decorationMask() const { unsigned int ret = 0; if (decorations.titlebar) ret |= WindowState::DECORM_TITLEBAR; if (decorations.handle) ret |= WindowState::DECORM_HANDLE; if (decorations.border) ret |= WindowState::DECORM_BORDER; if (decorations.iconify) ret |= WindowState::DECORM_ICONIFY; if (decorations.maximize) ret |= WindowState::DECORM_MAXIMIZE; if (decorations.close) ret |= WindowState::DECORM_CLOSE; if (decorations.menu) ret |= WindowState::DECORM_MENU; if (decorations.sticky) ret |= WindowState::DECORM_STICKY; if (decorations.shade) ret |= WindowState::DECORM_SHADE; if (decorations.tab) ret |= WindowState::DECORM_TAB; if (decorations.enabled) ret |= WindowState::DECORM_ENABLED; return ret; } void FluxboxWindow::setDecorationMask(unsigned int mask, bool apply) { decorations.titlebar = mask & WindowState::DECORM_TITLEBAR; decorations.handle = mask & WindowState::DECORM_HANDLE; decorations.border = mask & WindowState::DECORM_BORDER; decorations.iconify = mask & WindowState::DECORM_ICONIFY; decorations.maximize = mask & WindowState::DECORM_MAXIMIZE; decorations.close = mask & WindowState::DECORM_CLOSE; decorations.menu = mask & WindowState::DECORM_MENU; decorations.sticky = mask & WindowState::DECORM_STICKY; decorations.shade = mask & WindowState::DECORM_SHADE; decorations.tab = mask & WindowState::DECORM_TAB; decorations.enabled = mask & WindowState::DECORM_ENABLED; // we don't want to do this during initialization if (apply) applyDecorations(); } void FluxboxWindow::startMoving(int x, int y) { if (isMoving()) { return; } if (s_num_grabs > 0) { return; } if ((isMaximized() || isFullscreen()) && screen().getMaxDisableMove()) return; // save first event point m_last_resize_x = x; m_last_resize_y = y; m_button_grab_x = x - frame().x() - frame().window().borderWidth(); m_button_grab_y = y - frame().y() - frame().window().borderWidth(); moving = true; Fluxbox *fluxbox = Fluxbox::instance(); // grabbing (and masking) on the root window allows us to // freely map and unmap the window we're moving. grabPointer(screen().rootWindow().window(), False, ButtonMotionMask | ButtonReleaseMask, GrabModeAsync, GrabModeAsync, screen().rootWindow().window(), frame().theme()->moveCursor(), CurrentTime); if (menu().isVisible()) menu().hide(); fluxbox->maskWindowEvents(screen().rootWindow().window(), this); m_last_move_x = frame().x(); m_last_move_y = frame().y(); if (! screen().doOpaqueMove()) { fluxbox->grab(); parent().drawRectangle(screen().rootTheme()->opGC(), frame().x(), frame().y(), frame().width() + 2*frame().window().borderWidth()-1, frame().height() + 2*frame().window().borderWidth()-1); screen().showPosition(frame().x(), frame().y()); } } void FluxboxWindow::stopMoving(bool interrupted) { moving = false; Fluxbox *fluxbox = Fluxbox::instance(); fluxbox->maskWindowEvents(0, 0); if (! screen().doOpaqueMove()) { parent().drawRectangle(screen().rootTheme()->opGC(), m_last_move_x, m_last_move_y, frame().width() + 2*frame().window().borderWidth()-1, frame().height() + 2*frame().window().borderWidth()-1); if (!interrupted) { moveResize(m_last_move_x, m_last_move_y, frame().width(), frame().height()); if (m_workspace_number != screen().currentWorkspaceID()) screen().sendToWorkspace(screen().currentWorkspaceID(), this); focus(); } fluxbox->ungrab(); } else if (!interrupted) { moveResize(frame().x(), frame().y(), frame().width(), frame().height(), true); frame().notifyMoved(true); } screen().hidePosition(); ungrabPointer(CurrentTime); FbTk::App::instance()->sync(false); //make sure the redraw is made before we continue // if Head has been changed we want it to redraw by current state if (m_state.maximized || m_state.fullscreen) { frame().applyState(); attachWorkAreaSig(); stateSig().emit(*this); } } /** * Helper function that snaps a window to another window * We snap if we're closer than the x/ylimits. */ inline void snapToWindow(int &xlimit, int &ylimit, int left, int right, int top, int bottom, int oleft, int oright, int otop, int obottom) { // Only snap if we're adjacent to the edge we're looking at // for left + right, need to be in the right y range if (top <= obottom && bottom >= otop) { // left if (abs(left-oleft) < abs(xlimit)) xlimit = -(left-oleft); if (abs(right-oleft) < abs(xlimit)) xlimit = -(right-oleft); // right if (abs(left-oright) < abs(xlimit)) xlimit = -(left-oright); if (abs(right-oright) < abs(xlimit)) xlimit = -(right-oright); } // for top + bottom, need to be in the right x range if (left <= oright && right >= oleft) { // top if (abs(top-otop) < abs(ylimit)) ylimit = -(top-otop); if (abs(bottom-otop) < abs(ylimit)) ylimit = -(bottom-otop); // bottom if (abs(top-obottom) < abs(ylimit)) ylimit = -(top-obottom); if (abs(bottom-obottom) < abs(ylimit)) ylimit = -(bottom-obottom); } } /* * Do Whatever snapping magic is necessary, and return using the orig_left * and orig_top variables to indicate the new x,y position */ void FluxboxWindow::doSnapping(int &orig_left, int &orig_top) { /* * Snap to screen/head edges * Snap to windows */ if (screen().getEdgeSnapThreshold() == 0) return; // Keep track of our best offsets so far // We need to find things less than or equal to the threshold int dx = screen().getEdgeSnapThreshold() + 1; int dy = screen().getEdgeSnapThreshold() + 1; // we only care about the left/top etc that includes borders int borderW = 0; if (decorationMask() & (WindowState::DECORM_BORDER|WindowState::DECORM_HANDLE)) borderW = frame().window().borderWidth(); int top = orig_top; // orig include the borders int left = orig_left; int right = orig_left + width() + 2 * borderW; int bottom = orig_top + height() + 2 * borderW; // test against tabs too bool i_have_tabs = frame().externalTabMode(); int xoff = 0, yoff = 0, woff = 0, hoff = 0; if (i_have_tabs) { xoff = xOffset(); yoff = yOffset(); woff = widthOffset(); hoff = heightOffset(); } ///////////////////////////////////// // begin by checking the screen (or Xinerama head) edges int starth = 0; // head "0" == whole screen width + height, which we skip since the // sum of all the heads covers those edges, if >1 head if (screen().numHeads() > 0) starth=1; for (int h=starth; h <= screen().numHeads(); h++) { snapToWindow(dx, dy, left, right, top, bottom, screen().maxLeft(h), screen().maxRight(h), screen().maxTop(h), screen().maxBottom(h)); if (i_have_tabs) snapToWindow(dx, dy, left - xoff, right - xoff + woff, top - yoff, bottom - yoff + hoff, screen().maxLeft(h), screen().maxRight(h), screen().maxTop(h), screen().maxBottom(h)); } for (int h=starth; h <= screen().numHeads(); h++) { snapToWindow(dx, dy, left, right, top, bottom, screen().getHeadX(h), screen().getHeadX(h) + screen().getHeadWidth(h), screen().getHeadY(h), screen().getHeadY(h) + screen().getHeadHeight(h)); if (i_have_tabs) snapToWindow(dx, dy, left - xoff, right - xoff + woff, top - yoff, bottom - yoff + hoff, screen().getHeadX(h), screen().getHeadX(h) + screen().getHeadWidth(h), screen().getHeadY(h), screen().getHeadY(h) + screen().getHeadHeight(h)); } ///////////////////////////////////// // now check window edges Workspace::Windows &wins = screen().currentWorkspace()->windowList(); Workspace::Windows::iterator it = wins.begin(); Workspace::Windows::iterator it_end = wins.end(); unsigned int bw; for (; it != it_end; ++it) { if ((*it) == this) continue; // skip myself bw = (*it)->decorationMask() & (WindowState::DECORM_BORDER|WindowState::DECORM_HANDLE) ? (*it)->frame().window().borderWidth() : 0; snapToWindow(dx, dy, left, right, top, bottom, (*it)->x(), (*it)->x() + (*it)->width() + 2 * bw, (*it)->y(), (*it)->y() + (*it)->height() + 2 * bw); if (i_have_tabs) snapToWindow(dx, dy, left - xoff, right - xoff + woff, top - yoff, bottom - yoff + hoff, (*it)->x(), (*it)->x() + (*it)->width() + 2 * bw, (*it)->y(), (*it)->y() + (*it)->height() + 2 * bw); // also snap to the box containing the tabs (don't bother with actual // tab edges, since they're dynamic if ((*it)->frame().externalTabMode()) snapToWindow(dx, dy, left, right, top, bottom, (*it)->x() - (*it)->xOffset(), (*it)->x() - (*it)->xOffset() + (*it)->width() + 2 * bw + (*it)->widthOffset(), (*it)->y() - (*it)->yOffset(), (*it)->y() - (*it)->yOffset() + (*it)->height() + 2 * bw + (*it)->heightOffset()); if (i_have_tabs) snapToWindow(dx, dy, left - xoff, right - xoff + woff, top - yoff, bottom - yoff + hoff, (*it)->x() - (*it)->xOffset(), (*it)->x() - (*it)->xOffset() + (*it)->width() + 2 * bw + (*it)->widthOffset(), (*it)->y() - (*it)->yOffset(), (*it)->y() - (*it)->yOffset() + (*it)->height() + 2 * bw + (*it)->heightOffset()); } // commit if (dx <= screen().getEdgeSnapThreshold()) orig_left += dx; if (dy <= screen().getEdgeSnapThreshold()) orig_top += dy; } FluxboxWindow::ReferenceCorner FluxboxWindow::getResizeDirection(int x, int y, ResizeModel model, int corner_size_px, int corner_size_pc) const { if (model == TOPLEFTRESIZE) return LEFTTOP; if (model == TOPRESIZE) return TOP; if (model == TOPRIGHTRESIZE) return RIGHTTOP; if (model == LEFTRESIZE) return LEFT; if (model == RIGHTRESIZE) return RIGHT; if (model == BOTTOMLEFTRESIZE) return LEFTBOTTOM; if (model == BOTTOMRESIZE) return BOTTOM; if (model == CENTERRESIZE) return CENTER; if (model == EDGEORCORNERRESIZE) { int w = frame().width(); int h = frame().height(); int cx = w / 2; int cy = h / 2; TestCornerHelper test_corner = { corner_size_px, corner_size_pc }; if (x < cx && test_corner(x, cx)) { if (y < cy && test_corner(y, cy)) return LEFTTOP; else if (test_corner(h - y - 1, h - cy)) return LEFTBOTTOM; } else if (test_corner(w - x - 1, w - cx)) { if (y < cy && test_corner(y, cy)) return RIGHTTOP; else if (test_corner(h - y - 1, h - cy)) return RIGHTBOTTOM; } /* Nope, not a corner; find the nearest edge instead. */ if (cy - abs(y - cy) < cx - abs(x - cx)) // y is nearest return (y > cy) ? BOTTOM : TOP; else return (x > cx) ? RIGHT : LEFT; } return RIGHTBOTTOM; } void FluxboxWindow::startResizing(int x, int y, ReferenceCorner dir) { if (isResizing()) return; if (s_num_grabs > 0 || isShaded() || isIconic() ) return; if ((isMaximized() || isFullscreen()) && screen().getMaxDisableResize()) return; m_resize_corner = dir; resizing = true; disableMaximization(); const Cursor& cursor = (m_resize_corner == LEFTTOP) ? frame().theme()->upperLeftAngleCursor() : (m_resize_corner == RIGHTTOP) ? frame().theme()->upperRightAngleCursor() : (m_resize_corner == RIGHTBOTTOM) ? frame().theme()->lowerRightAngleCursor() : (m_resize_corner == LEFT) ? frame().theme()->leftSideCursor() : (m_resize_corner == RIGHT) ? frame().theme()->rightSideCursor() : (m_resize_corner == TOP) ? frame().theme()->topSideCursor() : (m_resize_corner == BOTTOM) ? frame().theme()->bottomSideCursor() : frame().theme()->lowerLeftAngleCursor(); grabPointer(fbWindow().window(), false, ButtonMotionMask | ButtonReleaseMask, GrabModeAsync, GrabModeAsync, None, cursor, CurrentTime); m_button_grab_x = x; m_button_grab_y = y; m_last_resize_x = frame().x(); m_last_resize_y = frame().y(); m_last_resize_w = frame().width(); m_last_resize_h = frame().height(); fixSize(); frame().displaySize(m_last_resize_w, m_last_resize_h); parent().drawRectangle(screen().rootTheme()->opGC(), m_last_resize_x, m_last_resize_y, m_last_resize_w - 1 + 2 * frame().window().borderWidth(), m_last_resize_h - 1 + 2 * frame().window().borderWidth()); } void FluxboxWindow::stopResizing(bool interrupted) { resizing = false; parent().drawRectangle(screen().rootTheme()->opGC(), m_last_resize_x, m_last_resize_y, m_last_resize_w - 1 + 2 * frame().window().borderWidth(), m_last_resize_h - 1 + 2 * frame().window().borderWidth()); screen().hideGeometry(); if (!interrupted) { fixSize(); moveResize(m_last_resize_x, m_last_resize_y, m_last_resize_w, m_last_resize_h); } ungrabPointer(CurrentTime); } WinClient* FluxboxWindow::winClientOfLabelButtonWindow(Window window) { WinClient* result = 0; Client2ButtonMap::iterator it = find_if(m_labelbuttons.begin(), m_labelbuttons.end(), Compose(bind2nd(equal_to(), window), Compose(mem_fun(&FbTk::Button::window), Select2nd()))); if (it != m_labelbuttons.end()) result = it->first; return result; } void FluxboxWindow::startTabbing(const XButtonEvent &be) { if (s_num_grabs > 0) return; m_attaching_tab = winClientOfLabelButtonWindow(be.window); // start drag'n'drop for tab grabPointer(be.window, False, ButtonMotionMask | ButtonReleaseMask, GrabModeAsync, GrabModeAsync, None, frame().theme()->moveCursor(), CurrentTime); // relative position on the button m_button_grab_x = be.x; m_button_grab_y = be.y; // position of the button m_last_move_x = be.x_root - be.x; m_last_move_y = be.y_root - be.y; // hijack extra vars for initial grab location m_last_resize_x = be.x_root; m_last_resize_y = be.y_root; Fluxbox::instance()->grab(); if (m_attaching_tab) { FbTk::TextButton &active_button = *m_labelbuttons[m_attaching_tab]; m_last_resize_w = active_button.width(); m_last_resize_h = active_button.height(); } else { m_attaching_tab = m_client; unsigned int bw = 2*frame().window().borderWidth()-1; m_last_resize_w = frame().width() + bw; m_last_resize_h = frame().height() + bw; } parent().drawRectangle(screen().rootTheme()->opGC(), m_last_move_x, m_last_move_y, m_last_resize_w, m_last_resize_h); menu().hide(); } void FluxboxWindow::attachTo(int x, int y, bool interrupted) { if (m_attaching_tab == 0) return; parent().drawRectangle(screen().rootTheme()->opGC(), m_last_move_x, m_last_move_y, m_last_resize_w, m_last_resize_h); ungrabPointer(CurrentTime); Fluxbox::instance()->ungrab(); // make sure we clean up here, since this object may be deleted inside attachClient WinClient *old_attached = m_attaching_tab; m_attaching_tab = 0; if (interrupted) return; int dest_x = 0, dest_y = 0; Window child = 0; if (XTranslateCoordinates(display, parent().window(), parent().window(), x, y, &dest_x, &dest_y, &child)) { bool inside_titlebar = false; // search for a fluxboxwindow WinClient *client = Fluxbox::instance()->searchWindow(child); FluxboxWindow *attach_to_win = 0; if (client) { inside_titlebar = client->fbwindow()->hasTitlebar() && client->fbwindow()->y() + static_cast(client->fbwindow()->titlebarHeight()) > dest_y; Fluxbox::TabsAttachArea area= Fluxbox::instance()->getTabsAttachArea(); if (area == Fluxbox::ATTACH_AREA_WINDOW) attach_to_win = client->fbwindow(); else if (area == Fluxbox::ATTACH_AREA_TITLEBAR && inside_titlebar) { attach_to_win = client->fbwindow(); } } if (attach_to_win != this && attach_to_win != 0 && attach_to_win->isTabable()) { attach_to_win->attachClient(*old_attached,x,y ); // we could be deleted here, DO NOT do anything else that alters this object } else if (attach_to_win != this || (attach_to_win == this && !inside_titlebar)) { // disconnect client if we didn't drop on a window WinClient &client = *old_attached; detachClient(*old_attached); // move window by relative amount of mouse movement // since just detached, move relative to old location if (client.fbwindow() != 0) { client.fbwindow()->move(frame().x() - m_last_resize_x + x, frame().y() - m_last_resize_y + y); } } else if( attach_to_win == this && attach_to_win->isTabable()) { //reording of tabs within a frame moveClientTo(*old_attached, x, y); } } } void FluxboxWindow::restore(WinClient *client, bool remap) { if (client->fbwindow() != this) return; XChangeSaveSet(display, client->window(), SetModeDelete); client->setEventMask(NoEventMask); int wx = frame().x(), wy = frame().y(); // don't move the frame, in case there are other tabs in it // just set the new coordinates on the reparented window frame().gravityTranslate(wx, wy, -client->gravity(), client->old_bw, false); // negative to invert // Why was this hide done? It broke vncviewer (and mplayer?), // since it would reparent when going fullscreen. // is it needed for anything? Reparent should imply unmap // ok, it should hide sometimes, e.g. if the reparent was sent by a client //client->hide(); // restore old border width client->setBorderWidth(client->old_bw); XEvent xev; if (! XCheckTypedWindowEvent(display, client->window(), ReparentNotify, &xev)) { fbdbg<<"FluxboxWindow::restore: reparent 0x"<window()<reparent(screen().rootWindow(), wx, wy, false); if (!remap) client->hide(); } if (remap) client->show(); installColormap(false); delete client; fbdbg<<"FluxboxWindow::restore: remap = "<acceptsFocus() : false); } bool FluxboxWindow::isModal() const { return (m_client ? m_client->isModal() : true); } const FbTk::PixmapWithMask &FluxboxWindow::icon() const { return (m_client ? m_client->icon() : m_icon); } const FbMenu &FluxboxWindow::menu() const { return screen().windowMenu(); } unsigned int FluxboxWindow::titlebarHeight() const { return frame().titlebarHeight(); } Window FluxboxWindow::clientWindow() const { if (m_client == 0) return 0; return m_client->window(); } const FbTk::BiDiString& FluxboxWindow::title() const { return (m_client ? m_client->title() : m_title); } const FbTk::FbString& FluxboxWindow::getWMClassName() const { return (m_client ? m_client->getWMClassName() : getWMClassName()); } const FbTk::FbString& FluxboxWindow::getWMClassClass() const { return (m_client ? m_client->getWMClassClass() : getWMClassClass()); } FbTk::FbString FluxboxWindow::getWMRole() const { return (m_client ? m_client->getWMRole() : "FluxboxWindow"); } long FluxboxWindow::getCardinalProperty(Atom prop,bool*exists) const { return (m_client ? m_client->getCardinalProperty(prop,exists) : Focusable::getCardinalProperty(prop,exists)); } FbTk::FbString FluxboxWindow::getTextProperty(Atom prop,bool*exists) const { return (m_client ? m_client->getTextProperty(prop,exists) : Focusable::getTextProperty(prop,exists)); } bool FluxboxWindow::isTransient() const { return (m_client && m_client->isTransient()); } int FluxboxWindow::initialState() const { return m_client->initial_state; } void FluxboxWindow::fixSize() { // m_last_resize_w / m_last_resize_h could be negative // due to user interactions. check here and limit unsigned int w = 1; unsigned int h = 1; if (m_last_resize_w > 0) w = m_last_resize_w; if (m_last_resize_h > 0) h = m_last_resize_h; frame().applySizeHints(w, h); m_last_resize_w = w; m_last_resize_h = h; // move X if necessary if (m_resize_corner == LEFTTOP || m_resize_corner == LEFTBOTTOM || m_resize_corner == LEFT) { m_last_resize_x = frame().x() + frame().width() - m_last_resize_w; } if (m_resize_corner == LEFTTOP || m_resize_corner == RIGHTTOP || m_resize_corner == TOP) { m_last_resize_y = frame().y() + frame().height() - m_last_resize_h; } } void FluxboxWindow::moveResizeClient(WinClient &client) { client.moveResize(frame().clientArea().x(), frame().clientArea().y(), frame().clientArea().width(), frame().clientArea().height()); client.sendConfigureNotify(frame().x() + frame().clientArea().x() + frame().window().borderWidth(), frame().y() + frame().clientArea().y() + frame().window().borderWidth(), frame().clientArea().width(), frame().clientArea().height()); } void FluxboxWindow::sendConfigureNotify() { ClientList::iterator client_it = m_clientlist.begin(); ClientList::iterator client_it_end = m_clientlist.end(); for (; client_it != client_it_end; ++client_it) { WinClient &client = *(*client_it); /* Send event telling where the root position of the client window is. (ie frame pos + client pos inside the frame = send pos) */ //!! moveResizeClient(client); } // end for } void FluxboxWindow::close() { if (WindowCmd::window() == this && WindowCmd::client()) WindowCmd::client()->sendClose(false); else if (m_client) m_client->sendClose(false); } void FluxboxWindow::kill() { if (WindowCmd::window() == this && WindowCmd::client()) WindowCmd::client()->sendClose(true); else if (m_client) m_client->sendClose(true); } void FluxboxWindow::setupWindow() { // sets up our window // we allow both to be done at once to share the commands using namespace FbTk; typedef FbTk::Resource > WinButtonsResource; string titlebar_name[2]; string titlebar_alt_name[2]; titlebar_name[0] = screen().name() + ".titlebar.left"; titlebar_alt_name[0] = screen().altName() + ".Titlebar.Left"; titlebar_name[1] = screen().name() + ".titlebar.right"; titlebar_alt_name[1] = screen().altName() + ".Titlebar.Right"; WinButtonsResource *titlebar_side[2]; ResourceManager &rm = screen().resourceManager(); // create resource for titlebar for (int i=0; i < 2; ++i) { titlebar_side[i] = dynamic_cast( rm.findResource( titlebar_name[i] ) ); if (titlebar_side[i] != 0) continue; // find next resource too WinButton::Type titlebar_left[] = { WinButton::STICK }; WinButton::Type titlebar_right[] = { WinButton::MINIMIZE, WinButton::MAXIMIZE, WinButton::CLOSE }; WinButton::Type *begin = 0; WinButton::Type *end = 0; if (i == 0) { begin = titlebar_left; end = titlebar_left + 1; } else { begin = titlebar_right; end = titlebar_right + 3; } titlebar_side[i] = new WinButtonsResource(rm, WinButtonsResource::Type(begin, end), titlebar_name[i], titlebar_alt_name[i]); screen().addManagedResource(titlebar_side[i]); } updateButtons(); // end setup frame } void FluxboxWindow::updateButtons() { string titlebar_name[2]; titlebar_name[0] = screen().name() + ".titlebar.left"; titlebar_name[1] = screen().name() + ".titlebar.right"; typedef FbTk::Resource > WinButtonsResource; WinButtonsResource *titlebar_side[2]; ResourceManager &rm = screen().resourceManager(); bool need_update = false; // get resource for titlebar for (int i=0; i < 2; ++i) { titlebar_side[i] = dynamic_cast( rm.findResource( titlebar_name[i] ) ); // check if we need to update our buttons size_t new_size = (*titlebar_side[i])->size(); if (new_size != m_titlebar_buttons[i].size() || need_update) need_update = true; else { for (size_t j=0; j < new_size && !need_update; j++) { if ((*(*titlebar_side[i]))[j] != m_titlebar_buttons[i][j]) need_update = true; } } } if (!need_update) return; // clear old buttons from frame frame().removeAllButtons(); using namespace FbTk; typedef RefCount > CommandRef; typedef SimpleCommand WindowCmd; CommandRef iconify_cmd(new WindowCmd(*this, &FluxboxWindow::iconify)); CommandRef maximize_cmd(new WindowCmd(*this, &FluxboxWindow::maximizeFull)); CommandRef maximize_vert_cmd(new WindowCmd(*this, &FluxboxWindow::maximizeVertical)); CommandRef maximize_horiz_cmd(new WindowCmd(*this, &FluxboxWindow::maximizeHorizontal)); CommandRef close_cmd(new WindowCmd(*this, &FluxboxWindow::close)); CommandRef shade_cmd(new WindowCmd(*this, &FluxboxWindow::shade)); CommandRef stick_cmd(new WindowCmd(*this, &FluxboxWindow::stick)); CommandRef show_menu_cmd(new WindowCmd(*this, &FluxboxWindow::popupMenu)); for (size_t c = 0; c < 2 ; c++) { // get titlebar configuration for current side const vector &dir = *(*titlebar_side[c]); m_titlebar_buttons[c] = dir; for (size_t i=0; i < dir.size(); ++i) { //create new buttons WinButton *winbtn = 0; switch (dir[i]) { case WinButton::MINIMIZE: if (isIconifiable() && (m_state.deco_mask & WindowState::DECORM_ICONIFY)) { winbtn = new WinButton(*this, m_button_theme, screen().pressedWinButtonTheme(), WinButton::MINIMIZE, frame().titlebar(), 0, 0, 10, 10); winbtn->setOnClick(iconify_cmd); } break; case WinButton::MAXIMIZE: if (isMaximizable() && (m_state.deco_mask & WindowState::DECORM_MAXIMIZE) ) { winbtn = new WinButton(*this, m_button_theme, screen().pressedWinButtonTheme(), dir[i], frame().titlebar(), 0, 0, 10, 10); winbtn->setOnClick(maximize_cmd, 1); winbtn->setOnClick(maximize_horiz_cmd, 3); winbtn->setOnClick(maximize_vert_cmd, 2); } break; case WinButton::CLOSE: if (m_client->isClosable() && (m_state.deco_mask & WindowState::DECORM_CLOSE)) { winbtn = new WinButton(*this, m_button_theme, screen().pressedWinButtonTheme(), dir[i], frame().titlebar(), 0, 0, 10, 10); winbtn->setOnClick(close_cmd); winbtn->join(stateSig(), FbTk::MemFunIgnoreArgs(*winbtn, &WinButton::updateAll)); } break; case WinButton::STICK: if (m_state.deco_mask & WindowState::DECORM_STICKY) { winbtn = new WinButton(*this, m_button_theme, screen().pressedWinButtonTheme(), dir[i], frame().titlebar(), 0, 0, 10, 10); winbtn->join(stateSig(), FbTk::MemFunIgnoreArgs(*winbtn, &WinButton::updateAll)); winbtn->setOnClick(stick_cmd); } break; case WinButton::SHADE: if (m_state.deco_mask & WindowState::DECORM_SHADE) { winbtn = new WinButton(*this, m_button_theme, screen().pressedWinButtonTheme(), dir[i], frame().titlebar(), 0, 0, 10, 10); winbtn->join(stateSig(), FbTk::MemFunIgnoreArgs(*winbtn, &WinButton::updateAll)); winbtn->setOnClick(shade_cmd); } break; case WinButton::MENUICON: if (m_state.deco_mask & WindowState::DECORM_MENU) { winbtn = new WinButton(*this, m_button_theme, screen().pressedWinButtonTheme(), dir[i], frame().titlebar(), 0, 0, 10, 10); winbtn->join(titleSig(), FbTk::MemFunIgnoreArgs(*winbtn, &WinButton::updateAll)); winbtn->setOnClick(show_menu_cmd); } break; case WinButton::LEFT_HALF: { winbtn = new WinButton(*this, m_button_theme, screen().pressedWinButtonTheme(), dir[i], frame().titlebar(), 0, 0, 10, 10); CommandRef lhalf_cmd(FbTk::CommandParser::instance().parse("MacroCmd {MoveTo 0 0} {ResizeTo 50% 100%}")); winbtn->setOnClick(lhalf_cmd); } break; case WinButton::RIGHT_HALF: { winbtn = new WinButton(*this, m_button_theme, screen().pressedWinButtonTheme(), dir[i], frame().titlebar(), 0, 0, 10, 10); CommandRef rhalf_cmd(FbTk::CommandParser::instance().parse("MacroCmd {MoveTo 50% 0} {ResizeTo 50% 100%}")); winbtn->setOnClick(rhalf_cmd); } break; } if (winbtn != 0) { winbtn->show(); if (c == 0) frame().addLeftButton(winbtn); else frame().addRightButton(winbtn); } } //end for i } // end for c frame().reconfigure(); } // grab pointer and increase counter. // we need this to count grab pointers, // especially at startup, where we can drag/resize while starting // and causing it to send events to windows later on and make // two different windows do grab pointer which only one window // should do at the time void FluxboxWindow::grabPointer(Window grab_window, Bool owner_events, unsigned int event_mask, int pointer_mode, int keyboard_mode, Window confine_to, Cursor cursor, Time time) { XGrabPointer(FbTk::App::instance()->display(), grab_window, owner_events, event_mask, pointer_mode, keyboard_mode, confine_to, cursor, time); s_num_grabs++; } // ungrab and decrease counter void FluxboxWindow::ungrabPointer(Time time) { XUngrabPointer(FbTk::App::instance()->display(), time); s_num_grabs--; if (s_num_grabs < 0) s_num_grabs = 0; } void FluxboxWindow::associateClient(WinClient &client) { IconButton *btn = new IconButton(frame().tabcontainer(), frame().theme().focusedTheme()->iconbarTheme(), frame().theme().unfocusedTheme()->iconbarTheme(), client); frame().createTab(*btn); btn->setTextPadding(Fluxbox::instance()->getTabsPadding()); btn->setPixmap(screen().getTabsUsePixmap()); m_labelbuttons[&client] = btn; FbTk::EventManager &evm = *FbTk::EventManager::instance(); evm.add(*this, btn->window()); // we take care of button events for this evm.add(*this, client.window()); client.setFluxboxWindow(this); join(client.titleSig(), FbTk::MemFun(*this, &FluxboxWindow::setTitle)); } FluxboxWindow::ReferenceCorner FluxboxWindow::getCorner(string str) { str = FbTk::StringUtil::toLower(str); if (str == "lefttop" || str == "topleft" || str == "upperleft" || str == "") return LEFTTOP; if (str == "top" || str == "upper" || str == "topcenter") return TOP; if (str == "righttop" || str == "topright" || str == "upperright") return RIGHTTOP; if (str == "left" || str == "leftcenter") return LEFT; if (str == "center" || str == "wincenter") return CENTER; if (str == "right" || str == "rightcenter") return RIGHT; if (str == "leftbottom" || str == "bottomleft" || str == "lowerleft") return LEFTBOTTOM; if (str == "bottom" || str == "lower" || str == "bottomcenter") return BOTTOM; if (str == "rightbottom" || str == "bottomright" || str == "lowerright") return RIGHTBOTTOM; return ERROR; } void FluxboxWindow::translateXCoords(int &x, ReferenceCorner dir) const { int head = getOnHead(), bw = 2 * frame().window().borderWidth(), left = screen().maxLeft(head), right = screen().maxRight(head); if (dir == LEFTTOP || dir == LEFT || dir == LEFTBOTTOM) x += left; if (dir == RIGHTTOP || dir == RIGHT || dir == RIGHTBOTTOM) x = right - width() - bw - x; if (dir == TOP || dir == CENTER || dir == BOTTOM) x += (left + right - width() - bw)/2; } void FluxboxWindow::translateYCoords(int &y, ReferenceCorner dir) const { int head = getOnHead(), bw = 2 * frame().window().borderWidth(), top = screen().maxTop(head), bottom = screen().maxBottom(head); if (dir == LEFTTOP || dir == TOP || dir == RIGHTTOP) y += top; if (dir == LEFTBOTTOM || dir == BOTTOM || dir == RIGHTBOTTOM) y = bottom - height() - bw - y; if (dir == LEFT || dir == CENTER || dir == RIGHT) y += (top + bottom - height() - bw)/2; } void FluxboxWindow::translateCoords(int &x, int &y, ReferenceCorner dir) const { translateXCoords(x, dir); translateYCoords(y, dir); } int FluxboxWindow::getOnHead() const { return screen().getHead(fbWindow()); } void FluxboxWindow::setOnHead(int head) { if (head > 0 && head <= screen().numHeads()) { int cur = screen().getHead(fbWindow()); bool placed = m_placed; move(screen().getHeadX(head) + frame().x() - screen().getHeadX(cur), screen().getHeadY(head) + frame().y() - screen().getHeadY(cur)); m_placed = placed; } // if Head has been changed we want it to redraw by current state if (m_state.maximized || m_state.fullscreen) { frame().applyState(); attachWorkAreaSig(); stateSig().emit(*this); } } void FluxboxWindow::placeWindow(int head) { int new_x, new_y; // we ignore the return value, // the screen placement strategy is guaranteed to succeed. screen().placementStrategy().placeWindow(*this, head, new_x, new_y); m_state.saveGeometry(new_x, new_y, frame().width(), frame().height(), true); move(new_x, new_y); } void FluxboxWindow::setWindowType(WindowState::WindowType type) { m_state.type = type; switch (type) { case WindowState::TYPE_DOCK: /* From Extended Window Manager Hints, draft 1.3: * * _NET_WM_WINDOW_TYPE_DOCK indicates a dock or panel feature. * Typically a Window Manager would keep such windows on top * of all other windows. * */ setFocusHidden(true); setIconHidden(true); setFocusNew(false); setMouseFocus(false); setClickFocus(false); setDecorationMask(WindowState::DECOR_NONE); moveToLayer(::ResourceLayer::DOCK); break; case WindowState::TYPE_DESKTOP: /* * _NET_WM_WINDOW_TYPE_DESKTOP indicates a "false desktop" window * We let it be the size it wants, but it gets no decoration, * is hidden in the toolbar and window cycling list, plus * windows don't tab with it and is right on the bottom. */ setFocusHidden(true); setIconHidden(true); setFocusNew(false); setMouseFocus(false); moveToLayer(::ResourceLayer::DESKTOP); setDecorationMask(WindowState::DECOR_NONE); setTabable(false); setMovable(false); setResizable(false); setStuck(true); break; case WindowState::TYPE_SPLASH: /* * _NET_WM_WINDOW_TYPE_SPLASH indicates that the * window is a splash screen displayed as an application * is starting up. */ setDecorationMask(WindowState::DECOR_NONE); setFocusHidden(true); setIconHidden(true); setFocusNew(false); setMouseFocus(false); setClickFocus(false); setMovable(false); break; case WindowState::TYPE_DIALOG: setTabable(false); break; case WindowState::TYPE_MENU: case WindowState::TYPE_TOOLBAR: /* * _NET_WM_WINDOW_TYPE_TOOLBAR and _NET_WM_WINDOW_TYPE_MENU * indicate toolbar and pinnable menu windows, respectively * (i.e. toolbars and menus "torn off" from the main * application). Windows of this type may set the * WM_TRANSIENT_FOR hint indicating the main application window. */ setDecorationMask(WindowState::DECOR_TOOL); setIconHidden(true); moveToLayer(::ResourceLayer::ABOVE_DOCK); break; case WindowState::TYPE_NORMAL: default: break; } /* * NOT YET IMPLEMENTED: * _NET_WM_WINDOW_TYPE_UTILITY */ } void FluxboxWindow::focusedWindowChanged(BScreen &screen, FluxboxWindow *focused_win, WinClient* client) { if (focused_win) { setFullscreenLayer(); } } fluxbox-1.3.5/src/PaxHeaders.25974/WinButtonTheme.cc0000644000175000017500000000013212106662425020266 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.219812462 30 ctime=1360750008.727811614 fluxbox-1.3.5/src/WinButtonTheme.cc0000644000175000017500000000775312106662425016331 0ustar00mgmg00000000000000// WinButtonTheme.cc for Fluxbox - an X11 Window manager // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "WinButtonTheme.hh" #include "FbTk/App.hh" #include "FbTk/Image.hh" #include "FbTk/PixmapWithMask.hh" #include "FbWinFrameTheme.hh" WinButtonTheme::WinButtonTheme(int screen_num, const std::string &extra, const std::string &altextra, FbTk::ThemeProxy &frame_theme): FbTk::Theme(screen_num), m_close_pm(*this, "window.close" + extra + ".pixmap", "Window.Close" + altextra + ".Pixmap"), m_maximize_pm(*this, "window.maximize" + extra + ".pixmap", "Window.Maximize" + altextra + ".Pixmap"), m_iconify_pm(*this, "window.iconify" + extra + ".pixmap", "Window.Iconify" + altextra + ".Pixmap"), m_shade_pm(*this, "window.shade" + extra + ".pixmap", "Window.Shade" + altextra + ".Pixmap"), m_unshade_pm(*this, "window.unshade" + extra + ".pixmap", "Window.Unshade" + altextra + ".Pixmap"), m_menuicon_pm(*this, "window.menuicon" + extra + ".pixmap", "Window.MenuIcon" + altextra + ".Pixmap"), // whoever designed this is going to get hit with a stick m_title_pm(*this, "window.title" + (extra.empty() ? std::string(".focus") : extra) + ".pixmap", "Window.Title" + (extra.empty() ? std::string(".Focus") : altextra) + ".Pixmap"), m_stick_pm(*this, "window.stick" + extra + ".pixmap", "Window.Stick" + altextra + ".Pixmap"), m_stuck_pm(*this, "window.stuck" + extra + ".pixmap", "Window.Stuck" + altextra + ".Pixmap"), m_lefthalf_pm(*this, "window.lhalf" + extra + ".pixmap", "Window.LHalf" + altextra + ".Pixmap"), m_righthalf_pm(*this, "window.rhalf" + extra + ".pixmap", "Window.RHalf" + altextra + ".Pixmap"), m_frame_theme(frame_theme) { FbTk::ThemeManager::instance().loadTheme(*this); } WinButtonTheme::~WinButtonTheme() { } void WinButtonTheme::reconfigTheme() { // rescale the pixmaps to match frame theme height unsigned int size = m_frame_theme->titleHeight() - 2 * m_frame_theme->bevelWidth(); if (m_frame_theme->titleHeight() == 0) { // calculate height from font and border width to scale pixmaps size = m_frame_theme->font().height() + 2; } // else use specified height to scale pixmaps // scale all pixmaps m_close_pm->scale(size, size); m_maximize_pm->scale(size, size); m_menuicon_pm->scale(size, size); m_iconify_pm->scale(size, size); m_shade_pm->scale(size, size); m_unshade_pm->scale(size, size); m_title_pm->scale(size, size); m_stick_pm->scale(size, size); m_stuck_pm->scale(size, size); m_lefthalf_pm->scale(size, size); m_righthalf_pm->scale(size, size); } fluxbox-1.3.5/src/PaxHeaders.25974/WinButtonTheme.hh0000644000175000017500000000013212106662425020300 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.219812462 30 ctime=1360750008.727811614 fluxbox-1.3.5/src/WinButtonTheme.hh0000644000175000017500000000741412106662425016335 0ustar00mgmg00000000000000// WinButtonTheme.hh for Fluxbox - an X11 Window manager // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef WINBUTTONTHEME_HH #define WINBUTTONTHEME_HH #include "FbTk/Theme.hh" #include "FbTk/PixmapWithMask.hh" #include class FbWinFrameTheme; class WinButtonTheme: public FbTk::Theme, public FbTk::ThemeProxy { public: WinButtonTheme(int screen_num, const std::string &extra, const std::string &altextra, FbTk::ThemeProxy &frame_theme); ~WinButtonTheme(); void reconfigTheme(); const FbTk::PixmapWithMask &closePixmap() const { return *m_close_pm; } FbTk::PixmapWithMask &closePixmap() { return *m_close_pm; } const FbTk::PixmapWithMask &maximizePixmap() const { return *m_maximize_pm; } FbTk::PixmapWithMask &maximizePixmap() { return *m_maximize_pm; } const FbTk::PixmapWithMask &iconifyPixmap() const { return *m_iconify_pm; } FbTk::PixmapWithMask &iconifyPixmap() { return *m_iconify_pm; } const FbTk::PixmapWithMask &stickPixmap() const { return *m_stick_pm; } FbTk::PixmapWithMask &stickPixmap() { return *m_stick_pm; } const FbTk::PixmapWithMask &stuckPixmap() const { return *m_stuck_pm; } FbTk::PixmapWithMask &stuckPixmap() { return *m_stuck_pm; } const FbTk::PixmapWithMask &shadePixmap() const { return *m_shade_pm; } FbTk::PixmapWithMask &shadePixmap() { return *m_shade_pm; } const FbTk::PixmapWithMask &unshadePixmap() const { return *m_unshade_pm; } FbTk::PixmapWithMask &unshadePixmap() { return *m_unshade_pm; } const FbTk::PixmapWithMask &menuiconPixmap() const { return *m_menuicon_pm; } FbTk::PixmapWithMask &menuiconPixmap() { return *m_menuicon_pm; } FbTk::PixmapWithMask &titlePixmap() { return *m_title_pm; } const FbTk::PixmapWithMask &titlePixmap() const { return *m_title_pm; } FbTk::PixmapWithMask &leftHalfPixmap() { return *m_lefthalf_pm; } const FbTk::PixmapWithMask &leftHalfPixmap() const { return *m_lefthalf_pm; } FbTk::PixmapWithMask &rightHalfPixmap() { return *m_righthalf_pm; } const FbTk::PixmapWithMask &rightHalfPixmap() const { return *m_righthalf_pm; } virtual FbTk::Signal<> &reconfigSig() { return FbTk::Theme::reconfigSig(); } virtual WinButtonTheme &operator *() { return *this; } virtual const WinButtonTheme &operator *() const { return *this; } private: FbTk::ThemeItem m_close_pm, m_maximize_pm, m_iconify_pm, m_shade_pm, m_unshade_pm, m_menuicon_pm, m_title_pm, m_stick_pm, m_stuck_pm, m_lefthalf_pm, m_righthalf_pm; FbTk::ThemeProxy &m_frame_theme; }; #endif // WINBUTTONTHEME_HH fluxbox-1.3.5/src/PaxHeaders.25974/WinButton.cc0000644000175000017500000000013212106662425017303 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.219812462 30 ctime=1360750008.727811614 fluxbox-1.3.5/src/WinButton.cc0000644000175000017500000002317112106662425015336 0ustar00mgmg00000000000000// WinButton.cc for Fluxbox Window Manager // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "WinButton.hh" #include "Window.hh" #include "WindowCmd.hh" #include "Screen.hh" #include "WinClient.hh" #include "WinButtonTheme.hh" #include "FbTk/App.hh" #include "FbTk/Color.hh" #ifdef SHAPE #include #endif // SHAPE WinButton::WinButton(FluxboxWindow &listen_to, FbTk::ThemeProxy &theme, FbTk::ThemeProxy &pressed, Type buttontype, const FbTk::FbWindow &parent, int x, int y, unsigned int width, unsigned int height): FbTk::Button(parent, x, y, width, height), m_type(buttontype), m_listen_to(listen_to), m_theme(theme), m_pressed_theme(pressed), m_icon_pixmap(0), m_icon_mask(0), overrode_bg(false), overrode_pressed(false) { join(theme.reconfigSig(), FbTk::MemFun(*this, &WinButton::updateAll)); if (buttontype == MENUICON) updateAll(); } void WinButton::exposeEvent(XExposeEvent &event) { FbTk::Button::exposeEvent(event); drawType(); } void WinButton::buttonReleaseEvent(XButtonEvent &event) { WinClient *old = WindowCmd::client(); WindowCmd::setWindow(&m_listen_to); FbTk::Button::buttonReleaseEvent(event); WindowCmd::setClient(old); } // when someone else tries to set the background, we may override it void WinButton::setBackgroundPixmap(Pixmap pm) { Pixmap my_pm = getBackgroundPixmap(); if (my_pm != 0) { overrode_bg = true; pm = my_pm; } else { overrode_bg = false; } FbTk::Button::setBackgroundPixmap(pm); } void WinButton::setBackgroundColor(const FbTk::Color &color) { Pixmap my_pm = getBackgroundPixmap(); if (my_pm != 0) { overrode_bg = true; FbTk::Button::setBackgroundPixmap(my_pm); } else { overrode_bg = false; FbTk::Button::setBackgroundColor(color); } } void WinButton::setPressedPixmap(Pixmap pm) { Pixmap my_pm = getPressedPixmap(); if (my_pm != 0) { overrode_pressed = true; pm = my_pm; } else { overrode_pressed = false; } FbTk::Button::setPressedPixmap(pm); } void WinButton::setPressedColor(const FbTk::Color &color) { Pixmap my_pm = getPressedPixmap(); if (my_pm != 0) { overrode_pressed = true; FbTk::Button::setPressedPixmap(my_pm); } else { overrode_pressed = false; FbTk::Button::setPressedColor(color); } } Pixmap WinButton::getPixmap(const FbTk::ThemeProxy &theme) const { switch(m_type) { case MAXIMIZE: return theme->maximizePixmap().pixmap().drawable(); case MINIMIZE: return theme->iconifyPixmap().pixmap().drawable(); case STICK: if (m_listen_to.isStuck()) return theme->stuckPixmap().pixmap().drawable(); else return theme->stickPixmap().pixmap().drawable(); case CLOSE: return theme->closePixmap().pixmap().drawable(); case SHADE: if (m_listen_to.isShaded()) return theme->unshadePixmap().pixmap().drawable(); else return theme->shadePixmap().pixmap().drawable(); case MENUICON: if (m_icon_pixmap.drawable()) return theme->titlePixmap().pixmap().drawable(); else return theme->menuiconPixmap().pixmap().drawable(); case LEFT_HALF: return theme->leftHalfPixmap().pixmap().drawable(); case RIGHT_HALF: return theme->rightHalfPixmap().pixmap().drawable(); default: return None; } } // clear is used to force this to clear the window (e.g. called from clear()) void WinButton::drawType() { // if it's odd and we're centring, we need to add one int oddW = width()%2; int oddH = height()%2; bool is_pressed = pressed(); if (is_pressed && overrode_pressed && !m_icon_pixmap.drawable()) return; if (!is_pressed && overrode_bg && !m_icon_pixmap.drawable()) return; if (gc() == 0) return; // otherwise draw old style imagery switch (m_type) { case MAXIMIZE: drawRectangle(gc(), 2, 2, width() - 5, height() - 5); drawLine(gc(), 2, 3, width() - 3, 3); break; case MINIMIZE: drawRectangle(gc(), 2, height() - 5, width() - 5, 2); break; case STICK: // width/4 != width/2, so we use /4*2 so that it's properly centred if (m_listen_to.isStuck()) { fillRectangle(gc(), width()/2 - width()/4, height()/2 - height()/4, width()/4*2 + oddW, height()/4*2 + oddH); } else { fillRectangle(gc(), width()/2 - width()/10, height()/2 - height()/10, width()/10*2 + oddW, height()/10*2 + oddH); } break; case CLOSE: drawLine(gc(), 2, 2, width() - 3, height() - 3); // I can't figure out why this second one needs a y offset of 1????? // but it does - at least on my box: // XFree86 Version 4.2.1.1 (Debian 4.2.1-12.1 20031003005825) // (protocol Version 11, revision 0, vendor release 6600) // But not on mine? It's wonky. Put back to the same coords. // was width-2, 1 in the second drawline // Perhaps some X versions don't draw the endpoint? // Mine: // XFree86 Version 4.3.0.1 (Debian 4.3.0.dfsg.1-1 20040428170728) // (X Protocol Version 11, Revision 0, Release 6.6) drawLine(gc(), 2, height() - 3, width() - 3, 2); break; case SHADE: { int size = width() - 5 - oddW; drawRectangle(gc(), 2, 2, size, 2); // draw a one-quarter triangle below the rectangle drawTriangle(gc(), (m_listen_to.isShaded() ? FbTk::FbDrawable::DOWN: FbTk::FbDrawable::UP), 4, 6, size-2, size/2 - 1, 100); break; } case MENUICON: if (m_icon_pixmap.drawable()) { if (m_icon_mask.drawable()) { XSetClipMask(m_listen_to.fbWindow().display(), gc(), m_icon_mask.drawable()); XSetClipOrigin(m_listen_to.fbWindow().display(), gc(), 2, 2); } copyArea(m_icon_pixmap.drawable(), gc(), 0, 0, 2, 2, m_icon_pixmap.width(), m_icon_pixmap.height()); if (m_icon_mask.drawable()) XSetClipMask(m_listen_to.fbWindow().display(), gc(), None); } else { for (unsigned int y = height()/3; y <= height() - height()/3; y+=3) { drawLine(gc(), width()/4, y, width() - width()/4 - oddW - 1, y); } drawRectangle(gc(), 2, 2, width() - 5, height() - 5); } break; case LEFT_HALF: fillRectangle(gc(), 2, 2, (width() / 2) - oddW, height() - 4); break; case RIGHT_HALF: fillRectangle(gc(), width() / 2, 2, (width() / 2) - 2 + oddW, height() - 4); break; } } void WinButton::clear() { FbTk::Button::clear(); drawType(); } void WinButton::updateAll() { // update the menu icon if (m_type == MENUICON && !m_listen_to.empty()) { Display* display = m_listen_to.fbWindow().display(); int screen = m_listen_to.screen().screenNumber(); if (m_listen_to.icon().pixmap().drawable() != None) { m_icon_pixmap.copy(m_listen_to.icon().pixmap().drawable(), DefaultDepth(display, screen), screen); m_icon_pixmap.scale(width() - 4, height() - 4); } else m_icon_pixmap.release(); if (m_listen_to.icon().mask().drawable() != None) { m_icon_mask.copy(m_listen_to.icon().mask().drawable(), 0, 0); m_icon_mask.scale(width() - 4, height() - 4); } else m_icon_mask.release(); } // pressed_pixmap isn't stateful in any current buttons, so no need // to potentially override that. Just make sure background pm is ok Pixmap my_pm = getBackgroundPixmap(); if (my_pm != None) setBackgroundPixmap(my_pm); // incorrect, pressed_pixmap is stateful in shade, so we'll do oneoff for now if (m_type == SHADE || m_type == STICK) { Pixmap p_pm = getPressedPixmap(); if (p_pm != None) setPressedPixmap(p_pm); } clear(); } fluxbox-1.3.5/src/PaxHeaders.25974/WinButton.hh0000644000175000017500000000013212106662425017315 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.215812462 30 ctime=1360750008.727811614 fluxbox-1.3.5/src/WinButton.hh0000644000175000017500000000556012106662425015352 0ustar00mgmg00000000000000// WinButton.hh for Fluxbox Window Manager // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef WINBUTTON_HH #define WINBUTTON_HH #include "FbTk/Button.hh" #include "FbTk/FbPixmap.hh" #include "FbTk/Signal.hh" class FluxboxWindow; class WinButtonTheme; namespace FbTk{ class Color; template class ThemeProxy; } /// draws and handles basic window button graphic class WinButton:public FbTk::Button, public FbTk::SignalTracker { public: /// draw type for the button enum Type { MAXIMIZE, MINIMIZE, SHADE, STICK, CLOSE, MENUICON, LEFT_HALF, RIGHT_HALF }; WinButton(FluxboxWindow &listen_to, FbTk::ThemeProxy &theme, FbTk::ThemeProxy &pressed, Type buttontype, const FbTk::FbWindow &parent, int x, int y, unsigned int width, unsigned int height); /// override for drawing void exposeEvent(XExposeEvent &event); void buttonReleaseEvent(XButtonEvent &event); void setBackgroundPixmap(Pixmap pm); void setPressedPixmap(Pixmap pm); void setBackgroundColor(const FbTk::Color &color); void setPressedColor(const FbTk::Color &color); Pixmap getBackgroundPixmap() const { return getPixmap(m_theme); } Pixmap getPressedPixmap() const { return getPixmap(m_pressed_theme); } /// override for redrawing void clear(); void updateAll(); private: void drawType(); Pixmap getPixmap(const FbTk::ThemeProxy &) const; Type m_type; ///< the button type FluxboxWindow &m_listen_to; FbTk::ThemeProxy &m_theme, &m_pressed_theme; FbTk::FbPixmap m_icon_pixmap; FbTk::FbPixmap m_icon_mask; bool overrode_bg, overrode_pressed; }; #endif // WINBUTTON_HH fluxbox-1.3.5/src/PaxHeaders.25974/Screen.hh0000644000175000017500000000013212106662425016603 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.215812462 30 ctime=1360750008.731811614 fluxbox-1.3.5/src/Screen.hh0000644000175000017500000005512512106662425014642 0ustar00mgmg00000000000000// Screen.hh for Fluxbox Window Manager // Copyright (c) 2001 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Screen.hh for Blackbox - an X11 Window manager // Copyright (c) 1997 - 2000 Brad Hughes (bhughes at tcac.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef SCREEN_HH #define SCREEN_HH #include "FbWinFrame.hh" #include "FbRootWindow.hh" #include "RootTheme.hh" #include "WinButtonTheme.hh" #include "FbWinFrameTheme.hh" #include "TooltipWindow.hh" #include "FbTk/MenuTheme.hh" #include "FbTk/EventHandler.hh" #include "FbTk/Resource.hh" #include "FbTk/MultLayers.hh" #include "FbTk/NotCopyable.hh" #include "FbTk/Signal.hh" #include "FbTk/RelCalcHelper.hh" #include "FocusControl.hh" #include #ifdef HAVE_CSTDIO #include #else #include #endif #include #include #include #include #include class ClientPattern; class FbMenu; class Focusable; class FluxboxWindow; class WinClient; class Workspace; class Strut; class Slit; class Toolbar; class HeadArea; class ScreenPlacement; class TooltipWindow; class OSDWindow; namespace FbTk { class Menu; class ImageControl; class LayerItem; class FbWindow; } /// Handles screen connection, screen clients and workspaces /** Create workspaces, handles switching between workspaces and windows */ class BScreen: public FbTk::EventHandler, private FbTk::NotCopyable { public: typedef std::list Icons; typedef std::vector Workspaces; typedef std::vector WorkspaceNames; typedef std::list > ExtraMenus; BScreen(FbTk::ResourceManager &rm, const std::string &screenname, const std::string &altscreenname, int scrn, int number_of_layers); ~BScreen(); void initWindows(); void initMenus(); bool isRootColormapInstalled() const { return root_colormap_installed; } bool isScreenManaged() const { return managed; } bool isWorkspaceWarping() const { return (m_workspaces_list.size() > 1) && *resource.workspace_warping; } bool doAutoRaise() const { return *resource.auto_raise; } bool clickRaises() const { return *resource.click_raises; } bool doOpaqueMove() const { return *resource.opaque_move; } bool doFullMax() const { return *resource.full_max; } bool getMaxIgnoreIncrement() const { return *resource.max_ignore_inc; } bool getMaxDisableMove() const { return *resource.max_disable_move; } bool getMaxDisableResize() const { return *resource.max_disable_resize; } bool doShowWindowPos() const { return *resource.show_window_pos; } const std::string &defaultDeco() const { return *resource.default_deco; } const std::string windowMenuFilename() const; FbTk::ImageControl &imageControl() { return *m_image_control.get(); } // menus const FbMenu &rootMenu() const { return *m_rootmenu.get(); } FbMenu &rootMenu() { return *m_rootmenu.get(); } const FbMenu &configMenu() const { return *m_configmenu.get(); } FbMenu &configMenu() { return *m_configmenu.get(); } const FbMenu &windowMenu() const { return *m_windowmenu.get(); } FbMenu &windowMenu() { return *m_windowmenu.get(); } ExtraMenus &extraWindowMenus() { return m_extramenus; } const ExtraMenus &extraWindowMenus() const { return m_extramenus; } FbWinFrame::TabPlacement getTabPlacement() const { return *resource.tab_placement; } unsigned int noFocusWhileTypingDelay() const { return *resource.typing_delay; } const bool allowRemoteActions() const { return *resource.allow_remote_actions; } const bool clientMenuUsePixmap() const { return *resource.clientmenu_use_pixmap; } const bool getDefaultInternalTabs() const { return *resource.default_internal_tabs; } const bool getTabsUsePixmap() const { return *resource.tabs_use_pixmap; } const bool getMaxOverTabs() const { return *resource.max_over_tabs; } unsigned int getTabWidth() const { return *resource.tab_width; } /// @return the slit, @see Slit Slit *slit() { return m_slit.get(); } /// @return the slit, @see Slit const Slit *slit() const { return m_slit.get(); } /** * @param w the workspace number * @return workspace for the given workspace number */ Workspace *getWorkspace(unsigned int w) { return ( w < m_workspaces_list.size() ? m_workspaces_list[w] : 0); } /** * @param w the workspace number * @return workspace for the given workspace number */ const Workspace *getWorkspace(unsigned int w) const { return (w < m_workspaces_list.size() ? m_workspaces_list[w] : 0); } /// @return the current workspace Workspace *currentWorkspace() { return m_current_workspace; } const Workspace *currentWorkspace() const { return m_current_workspace; } /// @return the workspace menu const FbMenu &workspaceMenu() const { return *m_workspacemenu.get(); } /// @return the workspace menu FbMenu &workspaceMenu() { return *m_workspacemenu.get(); } /// @return focus control handler const FocusControl &focusControl() const { return *m_focus_control; } /// @return focus control handler FocusControl &focusControl() { return *m_focus_control; } /// @return the current workspace id unsigned int currentWorkspaceID() const; /** * */ /// @return maximum screen bound to the left for a specific xinerama head unsigned int maxLeft(int head) const; /// @return maximum screen bound to the right for a specific xinerama head unsigned int maxRight(int head) const; /// @return maximum screen bound at the top for the specified xinerama head unsigned int maxTop(int head) const; /// @return maximum screen bound at bottom for the specified xinerama head unsigned int maxBottom(int head) const; /// @return true if window is kde dock app bool isKdeDockapp(Window win) const; /// @return true if dock app was added, else false bool addKdeDockapp(Window win); /// @return screen width, @see rootWindow() unsigned int width() const { return rootWindow().width(); } /// @return screen height, @see rootWindow() unsigned int height() const { return rootWindow().height(); } /// @return number of the screen, @see rootWindow() int screenNumber() const { return rootWindow().screenNumber(); } /// @return number of workspaces size_t numberOfWorkspaces() const { return m_workspaces_list.size(); } const Icons &iconList() const { return m_icon_list; } Icons &iconList() { return m_icon_list; } const Workspaces &getWorkspacesList() const { return m_workspaces_list; } Workspaces &getWorkspacesList() { return m_workspaces_list; } const WorkspaceNames &getWorkspaceNames() const { return m_workspace_names; } /** @name Screen signals */ //@{ typedef FbTk::Signal ScreenSignal; /// client list signal ScreenSignal &clientListSig() { return m_clientlist_sig; } /// icon list sig ScreenSignal &iconListSig() { return m_iconlist_sig; } /// workspace count signal ScreenSignal &workspaceCountSig() { return m_workspacecount_sig; } /// workspace names signal ScreenSignal &workspaceNamesSig() { return m_workspacenames_sig; } /// workspace area signal ScreenSignal &workspaceAreaSig() { return m_workspace_area_sig; } /// current workspace signal ScreenSignal ¤tWorkspaceSig() { return m_currentworkspace_sig; } /// focused window signal FbTk::Signal &focusedWindowSig() { return m_focusedwindow_sig; } /// reconfigure signal ScreenSignal &reconfigureSig() { return m_reconfigure_sig; } ScreenSignal &resizeSig() { return m_resize_sig; } ScreenSignal &bgChangeSig() { return m_bg_change_sig; } //@} void propertyNotify(Atom atom); void keyPressEvent(XKeyEvent &ke); void keyReleaseEvent(XKeyEvent &ke); void buttonPressEvent(XButtonEvent &be); /** * Cycles focus of windows * @param opts focus options * @param pat specific pattern to match windows with * @param reverse the order of cycling */ void cycleFocus(int opts = 0, const ClientPattern *pat = 0, bool reverse = false); bool isCycling() const { return m_cycling; } /** * Creates an empty menu with specified label * @param label for the menu * @return created menu */ FbMenu *createMenu(const std::string &label); /** * Creates an empty toggle menu with a specific label * @param label * @return created menu */ FbMenu *createToggleMenu(const std::string &label); /** * For extras to add menus. * These menus will be marked internal, * and deleted when the window dies (as opposed to Screen */ void addExtraWindowMenu(const FbTk::FbString &label, FbTk::Menu *menu); int getEdgeSnapThreshold() const { return *resource.edge_snap_threshold; } void setRootColormapInstalled(bool r) { root_colormap_installed = r; } void saveTabPlacement(FbWinFrame::TabPlacement place) { *resource.tab_placement = place; } void saveWorkspaces(int w) { *resource.workspaces = w; } FbTk::ThemeProxy &focusedWinFrameTheme() { return *m_focused_windowtheme.get(); } const FbTk::ThemeProxy &focusedWinFrameTheme() const { return *m_focused_windowtheme.get(); } FbTk::ThemeProxy &unfocusedWinFrameTheme() { return *m_unfocused_windowtheme.get(); } const FbTk::ThemeProxy &unfocusedWinFrameTheme() const { return *m_unfocused_windowtheme.get(); } FbTk::ThemeProxy &menuTheme() { return *m_menutheme.get(); } const FbTk::ThemeProxy &menuTheme() const { return *m_menutheme.get(); } const FbTk::ThemeProxy &rootTheme() const { return *m_root_theme.get(); } FbTk::ThemeProxy &focusedWinButtonTheme() { return *m_focused_winbutton_theme.get(); } const FbTk::ThemeProxy &focusedWinButtonTheme() const { return *m_focused_winbutton_theme.get(); } FbTk::ThemeProxy &unfocusedWinButtonTheme() { return *m_unfocused_winbutton_theme.get(); } const FbTk::ThemeProxy &unfocusedWinButtonTheme() const { return *m_unfocused_winbutton_theme.get(); } FbTk::ThemeProxy &pressedWinButtonTheme() { return *m_pressed_winbutton_theme.get(); } const FbTk::ThemeProxy &pressedWinButtonTheme() const { return *m_pressed_winbutton_theme.get(); } FbRootWindow &rootWindow() { return m_root_window; } const FbRootWindow &rootWindow() const { return m_root_window; } FbTk::FbWindow &dummyWindow() { return m_dummy_window; } const FbTk::FbWindow &dummyWindow() const { return m_dummy_window; } FbTk::MultLayers &layerManager() { return m_layermanager; } const FbTk::MultLayers &layerManager() const { return m_layermanager; } FbTk::ResourceManager &resourceManager() { return m_resource_manager; } const FbTk::ResourceManager &resourceManager() const { return m_resource_manager; } const std::string &name() const { return m_name; } const std::string &altName() const { return m_altname; } bool isShuttingdown() const { return m_shutdown; } bool isRestart(); ScreenPlacement &placementStrategy() { return *m_placement_strategy; } const ScreenPlacement &placementStrategy() const { return *m_placement_strategy; } int addWorkspace(); int removeLastWorkspace(); // scroll workspaces /** * Jump forward to a workspace * @param delta number of steps to jump */ void nextWorkspace(int delta = 1); /** * Jump backwards to a workspace * @param delta number of steps to jump */ void prevWorkspace(int delta = 1); /** * Jump right to a workspace. * @param delta number of steps to jump */ void rightWorkspace(int delta); /** * Jump left to a workspace * @param delta number of steps to jump */ void leftWorkspace(int delta); /// update workspace name for given workspace void updateWorkspaceName(unsigned int w); /// remove all workspace names void removeWorkspaceNames(); /// add a workspace name to the end of the workspace name list void addWorkspaceName(const char *name); /// add a window to the icon list void addIcon(FluxboxWindow *win); /// remove a window from the icon list void removeIcon(FluxboxWindow *win); /// remove a window void removeWindow(FluxboxWindow *win); /// remove a client void removeClient(WinClient &client); /** * Gets name of a specific workspace * @param workspace the workspace number to get the name of * @return name of the workspace */ std::string getNameOfWorkspace(unsigned int workspace) const; /// changes workspace to specified id void changeWorkspaceID(unsigned int, bool revert = true); /** * Sends a window to a workspace * @param workspace the workspace id * @param win the window to send * @param changeworkspace whether current workspace should change */ void sendToWorkspace(unsigned int workspace, FluxboxWindow *win=0, bool changeworkspace=true); /** * Reassociate a window to another workspace * @param window the window to reassociate * @param workspace_id id of the workspace * @param ignore_sticky ignores any sticky windows */ void reassociateWindow(FluxboxWindow *window, unsigned int workspace_id, bool ignore_sticky); void reconfigure(); void reconfigureTabs(); void rereadMenu(); void rereadWindowMenu(); void shutdown(); /// show position window centered on the screen with "X x Y" text void showPosition(int x, int y); void hidePosition(); /// show geomentry with "width x height"-text, not size of window void showGeometry(unsigned int width, unsigned int height); void hideGeometry(); /// @param text the text to be displayed in the tooltip window void showTooltip(const FbTk::BiDiString &text); /// Hides the tooltip window void hideTooltip(); TooltipWindow& tooltipWindow() { return *m_tooltip_window; } void setLayer(FbTk::LayerItem &item, int layernum); // remove? no, items are never removed from their layer until they die /// updates root window size and resizes/reconfigures screen clients /// that depends on screen size (slit) /// (and maximized windows?) void updateSize(); // Xinerama-related functions /// @return true if xinerama is available bool hasXinerama() const { return m_xinerama_avail; } /// @return umber of xinerama heads int numHeads() const { return m_xinerama_num_heads; } void initXinerama(); void clearHeads(); /// clean up xinerama void clearXinerama(); /** * Determines head number for a position * @param x position in pixels on the screen * @param y position in pixels on the screen * @return head number at this position */ int getHead(int x, int y) const; /// @return head number of window int getHead(const FbTk::FbWindow &win) const; /// @return the current head number int getCurrHead() const; /// @return head x position int getHeadX(int head) const; /// @return head y position int getHeadY(int head) const; /// @return width of the head int getHeadWidth(int head) const; /// @return height of the head int getHeadHeight(int head) const; /// @return the new (x,y) for a rectangle fitted on a head std::pair clampToHead(int head, int x, int y, int w, int h) const; // magic to allow us to have "on head" placement (menu) without // the object really knowing about it. template int getOnHead(OnHeadObject &obj) const; // grouping - we want ordering, so we can either search for a // group to the left, or to the right (they'll be different if // they exist). WinClient *findGroupLeft(WinClient &winclient); WinClient *findGroupRight(WinClient &winclient); /// create window frame for client window and attach it FluxboxWindow *createWindow(Window clientwin); /// creates a window frame for a winclient. The client is attached to the window FluxboxWindow *createWindow(WinClient &client); /// request workspace space, i.e "don't maximize over this area" Strut *requestStrut(int head, int left, int right, int top, int bottom); /// remove requested space and destroy strut void clearStrut(Strut *strut); /// updates max avaible area for the workspace void updateAvailableWorkspaceArea(); // for extras to add menus. These menus must be marked // internal for their safety, and __the extension__ must // delete and remove the menu itself (opposite to Window) void addConfigMenu(const FbTk::FbString &label, FbTk::Menu &menu); void removeConfigMenu(FbTk::Menu &menu); /// Adds a resource to managed resource list /// This resource is now owned by Screen and will be destroyed /// when screen dies void addManagedResource(FbTk::Resource_base *resource); int calRelativeSize(int head, int i, char type); int calRelativeWidth(int head, int i); int calRelativeHeight(int head, int i); int calRelativePosition(int head, int i, char type); int calRelativePositionWidth(int head, int i); int calRelativePositionHeight(int head, int i); int calRelativeDimension(int head, int i, char type); int calRelativeDimensionWidth(int head, int i); int calRelativeDimensionHeight(int head, int i); private: void setupConfigmenu(FbTk::Menu &menu); void renderGeomWindow(); void renderPosWindow(); void focusedWinFrameThemeReconfigured(); int getGap(int head, const char type); float getXGap(int head); float getYGap(int head); const Strut* availableWorkspaceArea(int head) const; FbTk::SignalTracker m_tracker; ScreenSignal m_reconfigure_sig; ///< reconfigure signal FbTk::Signal m_focusedwindow_sig; ///< focused window signal ScreenSignal m_resize_sig; ///< resize signal ScreenSignal m_workspace_area_sig; ///< workspace area changed signal ScreenSignal m_iconlist_sig; ///< notify if a window gets iconified/deiconified ScreenSignal m_clientlist_sig; ///< client signal ScreenSignal m_bg_change_sig; ///< background change signal ScreenSignal m_workspacecount_sig; ///< workspace count signal ScreenSignal m_currentworkspace_sig; ///< current workspace signal ScreenSignal m_workspacenames_sig; ///< workspace names signal FbTk::MultLayers m_layermanager; bool root_colormap_installed, managed; std::auto_ptr m_image_control; std::auto_ptr m_configmenu, m_rootmenu, m_workspacemenu, m_windowmenu; ExtraMenus m_extramenus; typedef std::list > Configmenus; Configmenus m_configmenu_list; Icons m_icon_list; std::auto_ptr m_slit; std::auto_ptr m_toolbar; Workspace *m_current_workspace; WorkspaceNames m_workspace_names; Workspaces m_workspaces_list; std::auto_ptr m_focused_windowtheme, m_unfocused_windowtheme; std::auto_ptr m_focused_winbutton_theme, m_unfocused_winbutton_theme, m_pressed_winbutton_theme; std::auto_ptr m_menutheme; std::auto_ptr m_root_theme; FbRootWindow m_root_window; std::auto_ptr m_geom_window, m_pos_window; std::auto_ptr m_tooltip_window; FbTk::FbWindow m_dummy_window; struct ScreenResource { ScreenResource(FbTk::ResourceManager &rm, const std::string &scrname, const std::string &altscrname); FbTk::Resource opaque_move, full_max, max_ignore_inc, max_disable_move, max_disable_resize, workspace_warping, show_window_pos, auto_raise, click_raises; FbTk::Resource default_deco; FbTk::Resource tab_placement; FbTk::Resource windowmenufile; FbTk::Resource typing_delay; FbTk::Resource workspaces, edge_snap_threshold, focused_alpha, unfocused_alpha, menu_alpha, menu_delay, tab_width, tooltip_delay; FbTk::Resource allow_remote_actions; FbTk::Resource clientmenu_use_pixmap; FbTk::Resource tabs_use_pixmap; FbTk::Resource max_over_tabs; FbTk::Resource default_internal_tabs; } resource; /// Holds manage resources that screen destroys FbTk::ResourceManager::ResourceList m_managed_resources; FbTk::ResourceManager &m_resource_manager; const std::string m_name, m_altname; FocusControl *m_focus_control; ScreenPlacement *m_placement_strategy; // This is a map of windows to clients for clients that had a left // window set, but that window wasn't present at the time typedef std::map Groupables; Groupables m_expecting_groups; bool m_cycling; const ClientPattern *m_cycle_opts; // Xinerama related private data bool m_xinerama_avail; int m_xinerama_num_heads; int m_xinerama_center_x, m_xinerama_center_y; std::vector m_head_areas; struct XineramaHeadInfo { int _x, _y, _width, _height; int x() const { return _x; } int y() const { return _y; } int width() const { return _width; } int height() const { return _height; } } *m_xinerama_headinfo; bool m_restart, m_shutdown; }; #endif // SCREEN_HH fluxbox-1.3.5/src/PaxHeaders.25974/Screen.cc0000644000175000017500000000013212106662425016571 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.211812462 30 ctime=1360750008.731811614 fluxbox-1.3.5/src/Screen.cc0000644000175000017500000021712512106662425014630 0ustar00mgmg00000000000000// Screen.cc for Fluxbox Window Manager // Copyright (c) 2001 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Screen.cc for Blackbox - an X11 Window manager // Copyright (c) 1997 - 2000 Brad Hughes (bhughes at tcac.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "Screen.hh" #include "fluxbox.hh" #include "Keys.hh" #include "Window.hh" #include "WindowCmd.hh" #include "Workspace.hh" #include "Layer.hh" #include "FocusControl.hh" #include "ScreenPlacement.hh" // menu items #include "FbTk/BoolMenuItem.hh" #include "FbTk/IntMenuItem.hh" #include "FbTk/MenuSeparator.hh" #include "FocusModelMenuItem.hh" #include "FbTk/RadioMenuItem.hh" // menus #include "FbMenu.hh" #include "LayerMenu.hh" #include "MenuCreator.hh" #include "WinClient.hh" #include "FbWinFrame.hh" #include "Strut.hh" #include "FbTk/CommandParser.hh" #include "AtomHandler.hh" #include "HeadArea.hh" #include "RectangleUtil.hh" #include "FbCommands.hh" #ifdef USE_SYSTRAY #include "SystemTray.hh" #endif #include "Debug.hh" #include "FbTk/I18n.hh" #include "FbTk/FbWindow.hh" #include "FbTk/SimpleCommand.hh" #include "FbTk/MultLayers.hh" #include "FbTk/LayerItem.hh" #include "FbTk/MacroCommand.hh" #include "FbTk/StringUtil.hh" #include "FbTk/ImageControl.hh" #include "FbTk/EventManager.hh" #include "FbTk/Transparent.hh" #include "FbTk/Select2nd.hh" #include "FbTk/Compose.hh" #include "FbTk/FbString.hh" #include "FbTk/STLUtil.hh" #include "FbTk/KeyUtil.hh" #include "FbTk/Util.hh" //use GNU extensions #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif // _GNU_SOURCE #ifdef HAVE_CONFIG_H #include "config.h" #endif // HAVE_CONFIG_H #ifdef USE_SLIT #include "Slit.hh" #include "SlitClient.hh" #else // fill it in class Slit {}; #endif // USE_SLIT #ifdef USE_TOOLBAR #include "Toolbar.hh" #else class Toolbar {}; #endif // USE_TOOLBAR #ifdef STDC_HEADERS #include #endif // STDC_HEADERS #ifdef HAVE_UNISTD_H #include #include #endif // HAVE_UNISTD_H #ifdef HAVE_STDARG_H #include #endif // HAVE_STDARG_H #ifdef TIME_WITH_SYS_TIME #include #include #else // !TIME_WITH_SYS_TIME #ifdef HAVE_SYS_TIME_H #include #else // !HAVE_SYS_TIME_H #include #endif // HAVE_SYS_TIME_H #endif // TIME_WITH_SYS_TIME #include #include #include #ifdef XINERAMA extern "C" { #include } #endif // XINERAMA #if defined(HAVE_RANDR) || defined(HAVE_RANDR1_2) #include #endif // HAVE_RANDR #include #include #include #include #ifdef HAVE_CSTRING #include #else #include #endif using std::cerr; using std::endl; using std::string; using std::make_pair; using std::pair; using std::list; using std::vector; using std::mem_fun; using std::bind2nd; using std::equal_to; using std::hex; using std::dec; static bool running = true; namespace { int anotherWMRunning(Display *display, XErrorEvent *) { _FB_USES_NLS; cerr<<_FB_CONSOLETEXT(Screen, AnotherWMRunning, "BScreen::BScreen: an error occured while querying the X server.\n" " another window manager already running on display ", "Message when another WM is found already active on all screens") < > &cmd): FbTk::RadioMenuItem(label, cmd), m_screen(screen), m_place(place) { setCloseOnClick(false); } bool isSelected() const { return m_screen.getTabPlacement() == m_place; } void click(int button, int time, unsigned int mods) { m_screen.saveTabPlacement(m_place); FbTk::RadioMenuItem::click(button, time, mods); } private: BScreen &m_screen; FbWinFrame::TabPlacement m_place; }; void clampMenuDelay(int& delay) { delay = FbTk::Util::clamp(delay, 0, 5000); } struct TabPlacementString { FbWinFrame::TabPlacement placement; const char* str; }; const TabPlacementString placement_strings[] = { { FbWinFrame::TOPLEFT, "TopLeft" }, { FbWinFrame::TOP, "Top" }, { FbWinFrame::TOPRIGHT, "TopRight" }, { FbWinFrame::BOTTOMLEFT, "BottomLeft" }, { FbWinFrame::BOTTOM, "Bottom" }, { FbWinFrame::BOTTOMRIGHT, "BottomRight" }, { FbWinFrame::LEFTBOTTOM, "LeftBottom" }, { FbWinFrame::LEFT, "Left" }, { FbWinFrame::LEFTTOP, "LeftTop" }, { FbWinFrame::RIGHTBOTTOM, "RightBottom" }, { FbWinFrame::RIGHT, "Right" }, { FbWinFrame::RIGHTTOP, "RightTop" } }; Atom atom_fbcmd = 0; Atom atom_wm_check = 0; Atom atom_net_desktop = 0; Atom atom_utf8_string = 0; Atom atom_kde_systray = 0; Atom atom_kwm1 = 0; void initAtoms(Display* dpy) { atom_wm_check = XInternAtom(dpy, "_NET_SUPPORTING_WM_CHECK", False); atom_net_desktop = XInternAtom(dpy, "_NET_CURRENT_DESKTOP", False); atom_fbcmd = XInternAtom(dpy, "_FLUXBOX_ACTION", False); atom_utf8_string = XInternAtom(dpy, "UTF8_STRING", False); atom_kde_systray = XInternAtom(dpy, "_KDE_NET_WM_SYSTEM_TRAY_WINDOW_FOR", False); atom_kwm1 = XInternAtom(dpy, "KWM_DOCKWINDOW", False); } } // end anonymous namespace namespace FbTk { template<> string FbTk::Resource:: getString() const { size_t i = (m_value == FbTk::Util::clamp(m_value, FbWinFrame::TOPLEFT, FbWinFrame::RIGHTTOP) ? m_value : FbWinFrame::DEFAULT) - 1; return placement_strings[i].str; } template<> void FbTk::Resource:: setFromString(const char *strval) { size_t i; for (i = 0; i < sizeof(placement_strings)/sizeof(TabPlacementString); ++i) { if (strcasecmp(strval, placement_strings[i].str) == 0) { m_value = placement_strings[i].placement; return; } } setDefaultValue(); } } // end namespace FbTk BScreen::ScreenResource::ScreenResource(FbTk::ResourceManager &rm, const string &scrname, const string &altscrname): opaque_move(rm, true, scrname + ".opaqueMove", altscrname+".OpaqueMove"), full_max(rm, false, scrname+".fullMaximization", altscrname+".FullMaximization"), max_ignore_inc(rm, true, scrname+".maxIgnoreIncrement", altscrname+".MaxIgnoreIncrement"), max_disable_move(rm, false, scrname+".maxDisableMove", altscrname+".MaxDisableMove"), max_disable_resize(rm, false, scrname+".maxDisableResize", altscrname+".MaxDisableResize"), workspace_warping(rm, true, scrname+".workspacewarping", altscrname+".WorkspaceWarping"), show_window_pos(rm, false, scrname+".showwindowposition", altscrname+".ShowWindowPosition"), auto_raise(rm, true, scrname+".autoRaise", altscrname+".AutoRaise"), click_raises(rm, true, scrname+".clickRaises", altscrname+".ClickRaises"), default_deco(rm, "NORMAL", scrname+".defaultDeco", altscrname+".DefaultDeco"), tab_placement(rm, FbWinFrame::TOPLEFT, scrname+".tab.placement", altscrname+".Tab.Placement"), windowmenufile(rm, Fluxbox::instance()->getDefaultDataFilename("windowmenu"), scrname+".windowMenu", altscrname+".WindowMenu"), typing_delay(rm, 0, scrname+".noFocusWhileTypingDelay", altscrname+".NoFocusWhileTypingDelay"), workspaces(rm, 4, scrname+".workspaces", altscrname+".Workspaces"), edge_snap_threshold(rm, 10, scrname+".edgeSnapThreshold", altscrname+".EdgeSnapThreshold"), focused_alpha(rm, 255, scrname+".window.focus.alpha", altscrname+".Window.Focus.Alpha"), unfocused_alpha(rm, 255, scrname+".window.unfocus.alpha", altscrname+".Window.Unfocus.Alpha"), menu_alpha(rm, 255, scrname+".menu.alpha", altscrname+".Menu.Alpha"), menu_delay(rm, 200, scrname + ".menuDelay", altscrname+".MenuDelay"), tab_width(rm, 64, scrname + ".tab.width", altscrname+".Tab.Width"), tooltip_delay(rm, 500, scrname + ".tooltipDelay", altscrname+".TooltipDelay"), allow_remote_actions(rm, false, scrname+".allowRemoteActions", altscrname+".AllowRemoteActions"), clientmenu_use_pixmap(rm, true, scrname+".clientMenu.usePixmap", altscrname+".ClientMenu.UsePixmap"), tabs_use_pixmap(rm, true, scrname+".tabs.usePixmap", altscrname+".Tabs.UsePixmap"), max_over_tabs(rm, false, scrname+".tabs.maxOver", altscrname+".Tabs.MaxOver"), default_internal_tabs(rm, true /* TODO: autoconf option? */ , scrname+".tabs.intitlebar", altscrname+".Tabs.InTitlebar") { } BScreen::BScreen(FbTk::ResourceManager &rm, const string &screenname, const string &altscreenname, int scrn, int num_layers) : m_layermanager(num_layers), m_image_control(0), m_focused_windowtheme(new FbWinFrameTheme(scrn, ".focus", ".Focus")), m_unfocused_windowtheme(new FbWinFrameTheme(scrn, ".unfocus", ".Unfocus")), // the order of windowtheme and winbutton theme is important // because winbutton need to rescale the pixmaps in winbutton theme // after fbwinframe have resized them m_focused_winbutton_theme(new WinButtonTheme(scrn, "", "", *m_focused_windowtheme)), m_unfocused_winbutton_theme(new WinButtonTheme(scrn, ".unfocus", ".Unfocus", *m_unfocused_windowtheme)), m_pressed_winbutton_theme(new WinButtonTheme(scrn, ".pressed", ".Pressed", *m_focused_windowtheme)), m_menutheme(new FbTk::MenuTheme(scrn)), m_root_window(scrn), m_geom_window(new OSDWindow(m_root_window, *this, *m_focused_windowtheme)), m_pos_window(new OSDWindow(m_root_window, *this, *m_focused_windowtheme)), m_tooltip_window(new TooltipWindow(m_root_window, *this, *m_focused_windowtheme)), m_dummy_window(scrn, -1, -1, 1, 1, 0, true, false, CopyFromParent, InputOnly), resource(rm, screenname, altscreenname), m_resource_manager(rm), m_name(screenname), m_altname(altscreenname), m_focus_control(new FocusControl(*this)), m_placement_strategy(new ScreenPlacement(*this)), m_cycling(false), m_cycle_opts(0), m_xinerama_headinfo(0), m_restart(false), m_shutdown(false) { Fluxbox *fluxbox = Fluxbox::instance(); Display *disp = fluxbox->display(); initAtoms(disp); // TODO fluxgen: check if this is the right place (it was not -lis) // // Create the first one, initXinerama will expand this if needed. m_head_areas.resize(1); m_head_areas[0] = new HeadArea(); initXinerama(); // setup error handler to catch "screen already managed by other wm" XErrorHandler old = XSetErrorHandler((XErrorHandler) anotherWMRunning); rootWindow().setEventMask(ColormapChangeMask | EnterWindowMask | PropertyChangeMask | SubstructureRedirectMask | KeyPressMask | KeyReleaseMask | ButtonPressMask | ButtonReleaseMask| SubstructureNotifyMask); fluxbox->sync(false); XSetErrorHandler((XErrorHandler) old); managed = running; if (! managed) { delete m_placement_strategy; m_placement_strategy = 0; delete m_focus_control; m_focus_control = 0; return; } // we're going to manage the screen, so now add our pid #ifdef HAVE_GETPID unsigned long bpid = static_cast(getpid()); rootWindow().changeProperty(fluxbox->getFluxboxPidAtom(), XA_CARDINAL, sizeof(pid_t) * 8, PropModeReplace, (unsigned char *) &bpid, 1); #endif // HAVE_GETPID // check if we're the first EWMH compliant window manager on this screen Atom xa_ret_type; int ret_format; unsigned long ret_nitems, ret_bytes_after; unsigned char *ret_prop; if (rootWindow().property(atom_wm_check, 0l, 1l, False, XA_WINDOW, &xa_ret_type, &ret_format, &ret_nitems, &ret_bytes_after, &ret_prop) ) { m_restart = (ret_prop != NULL); XFree(ret_prop); } // setup RANDR for this screens root window #if defined(HAVE_RANDR1_2) int randr_mask = RRScreenChangeNotifyMask; #ifdef RRCrtcChangeNotifyMask randr_mask |= RRCrtcChangeNotifyMask; #endif #ifdef RROutputChangeNotifyMask randr_mask |= RROutputChangeNotifyMask; #endif #ifdef RROutputPropertyNotifyMask randr_mask |= RROutputPropertyNotifyMask; #endif XRRSelectInput(disp, rootWindow().window(), randr_mask); #elif defined(HAVE_RANDR) XRRScreenChangeSelectInput(disp, rootWindow().window(), True); #endif // HAVE_RANDR _FB_USES_NLS; #ifdef DEBUG fprintf(stderr, _FB_CONSOLETEXT(Screen, ManagingScreen, "BScreen::BScreen: managing screen %d " "using visual 0x%lx, depth %d\n", "informational message saying screen number (%d), visual (%lx), and colour depth (%d)").c_str(), screenNumber(), XVisualIDFromVisual(rootWindow().visual()), rootWindow().depth()); #endif // DEBUG FbTk::EventManager *evm = FbTk::EventManager::instance(); evm->add(*this, rootWindow()); Keys *keys = fluxbox->keys(); if (keys) keys->registerWindow(rootWindow().window(), *this, Keys::GLOBAL|Keys::ON_DESKTOP); rootWindow().setCursor(XCreateFontCursor(disp, XC_left_ptr)); // load this screens resources fluxbox->load_rc(*this); // setup image cache engine m_image_control.reset(new FbTk::ImageControl(scrn, fluxbox->colorsPerChannel(), fluxbox->getCacheLife(), fluxbox->getCacheMax())); imageControl().installRootColormap(); root_colormap_installed = true; m_root_theme.reset(new RootTheme(imageControl())); m_root_theme->reconfigTheme(); focusedWinFrameTheme()->setAlpha(*resource.focused_alpha); unfocusedWinFrameTheme()->setAlpha(*resource.unfocused_alpha); m_menutheme->setAlpha(*resource.menu_alpha); clampMenuDelay(*resource.menu_delay); m_menutheme->setDelay(*resource.menu_delay); m_tracker.join(focusedWinFrameTheme()->reconfigSig(), FbTk::MemFun(*this, &BScreen::focusedWinFrameThemeReconfigured)); renderGeomWindow(); renderPosWindow(); m_tooltip_window->setDelay(*resource.tooltip_delay); // setup workspaces and workspace menu int nr_ws = *resource.workspaces; addWorkspace(); // at least one for (int i = 1; i < nr_ws; ++i) { addWorkspace(); } m_current_workspace = m_workspaces_list.front(); m_windowmenu.reset(createMenu("")); m_windowmenu->setInternalMenu(); m_windowmenu->setReloadHelper(new FbTk::AutoReloadHelper()); m_windowmenu->reloadHelper()->setReloadCmd(FbTk::RefCount >(new FbTk::SimpleCommand(*this, &BScreen::rereadWindowMenu))); m_rootmenu.reset(createMenu("")); m_rootmenu->setReloadHelper(new FbTk::AutoReloadHelper()); m_rootmenu->reloadHelper()->setReloadCmd(FbTk::RefCount >(new FbTk::SimpleCommand(*this, &BScreen::rereadMenu))); m_configmenu.reset(createMenu(_FB_XTEXT(Menu, Configuration, "Configuration", "Title of configuration menu"))); setupConfigmenu(*m_configmenu.get()); m_configmenu->setInternalMenu(); // check which desktop we should start on unsigned int first_desktop = 0; if (m_restart) { bool exists; unsigned int ret=static_cast(rootWindow().cardinalProperty(atom_net_desktop, &exists)); if (exists) { if (ret < static_cast(nr_ws)) first_desktop = ret; } } changeWorkspaceID(first_desktop); #ifdef USE_SLIT m_slit.reset(new Slit(*this, *layerManager().getLayer(ResourceLayer::DESKTOP), fluxbox->getSlitlistFilename().c_str())); #endif // USE_SLIT rm.unlock(); XFlush(disp); } BScreen::~BScreen() { if (! managed) return; m_configmenu.reset(0); m_toolbar.reset(0); FbTk::EventManager *evm = FbTk::EventManager::instance(); evm->remove(rootWindow()); Keys *keys = Fluxbox::instance()->keys(); if (keys) keys->unregisterWindow(rootWindow().window()); if (m_rootmenu.get() != 0) m_rootmenu->removeAll(); // Since workspacemenu holds client list menus (from workspace) // we need to destroy it before we destroy workspaces m_workspacemenu.reset(0); if (m_extramenus.size()) { // check whether extramenus are included in windowmenu // if not, we clean them ourselves bool extramenus_in_windowmenu = false; for (size_t i = 0, n = m_windowmenu->numberOfItems(); i < n; i++) if (m_windowmenu->find(i)->submenu() == m_extramenus.begin()->second) { extramenus_in_windowmenu = true; break; } ExtraMenus::iterator mit = m_extramenus.begin(); ExtraMenus::iterator mit_end = m_extramenus.end(); for (; mit != mit_end; ++mit) { // we set them to NOT internal so that they will be deleted when the // menu is cleaned up. We can't delete them here because they are // still in the menu // (They need to be internal for most of the time so that if we // rebuild the menu, then they won't be removed. if (! extramenus_in_windowmenu) { // not attached to our windowmenu // so we clean it up delete mit->second; } else { // let the parent clean it up mit->second->setInternalMenu(false); } } } removeWorkspaceNames(); using namespace FbTk::STLUtil; destroyAndClear(m_workspaces_list); destroyAndClear(m_managed_resources); //why not destroyAndClear(m_icon_list); ? //problem with that: a delete FluxboxWindow* calls m_diesig.notify() //which leads to screen.removeWindow() which leads to removeIcon(win) //which would modify the m_icon_list anyways... Icons tmp; tmp = m_icon_list; while(!tmp.empty()) { removeWindow(tmp.back()); tmp.back()->restore(true); delete (tmp.back()); tmp.pop_back(); } if (hasXinerama() && m_xinerama_headinfo) { delete [] m_xinerama_headinfo; } // slit must be destroyed before headAreas (Struts) m_slit.reset(0); delete m_rootmenu.release(); delete m_workspacemenu.release(); delete m_windowmenu.release(); // TODO fluxgen: check if this is the right place for (size_t i = 0; i < m_head_areas.size(); i++) delete m_head_areas[i]; delete m_focus_control; delete m_placement_strategy; } bool BScreen::isRestart() { return Fluxbox::instance()->isStartup() && m_restart; } void BScreen::initWindows() { #ifdef USE_TOOLBAR m_toolbar.reset(new Toolbar(*this, *layerManager().getLayer(::ResourceLayer::NORMAL))); #endif // USE_TOOLBAR unsigned int nchild; Window r, p, *children; Display *disp = FbTk::App::instance()->display(); XQueryTree(disp, rootWindow().window(), &r, &p, &children, &nchild); // preen the window list of all icon windows... for better dockapp support for (unsigned int i = 0; i < nchild; i++) { if (children[i] == None) continue; XWMHints *wmhints = XGetWMHints(disp, children[i]); if (wmhints) { if ((wmhints->flags & IconWindowHint) && (wmhints->icon_window != children[i])) for (unsigned int j = 0; j < nchild; j++) { if (children[j] == wmhints->icon_window) { fbdbg<<"BScreen::initWindows(): children[j] = 0x"<validateWindow(children[i])) { fbdbg<<"BScreen::initWindows(): not valid window = "<searchWindow(transient_for) == 0 && !safety_flag) { // add this window back to the beginning of the list of children children[num_transients] = children[i]; num_transients++; fbdbg<<"BScreen::initWindows(): postpone creation of 0x"<show(); #endif // USE_SLIT } unsigned int BScreen::currentWorkspaceID() const { return m_current_workspace->workspaceID(); } const Strut* BScreen::availableWorkspaceArea(int head) const { if (head > numHeads()) { /* May this ever happen? */ static Strut whole(-1 /* should never be used */, 0, width(), 0, height()); return &whole; } return m_head_areas[head ? head-1 : 0]->availableWorkspaceArea(); } unsigned int BScreen::maxLeft(int head) const { // we ignore strut if we're doing full maximization if (hasXinerama()) return doFullMax() ? getHeadX(head) : getHeadX(head) + availableWorkspaceArea(head)->left(); else return doFullMax() ? 0 : availableWorkspaceArea(head)->left(); } unsigned int BScreen::maxRight(int head) const { // we ignore strut if we're doing full maximization if (hasXinerama()) return doFullMax() ? getHeadX(head) + getHeadWidth(head) : getHeadX(head) + getHeadWidth(head) - availableWorkspaceArea(head)->right(); else return doFullMax() ? width() : width() - availableWorkspaceArea(head)->right(); } unsigned int BScreen::maxTop(int head) const { // we ignore strut if we're doing full maximization if (hasXinerama()) return doFullMax() ? getHeadY(head) : getHeadY(head) + availableWorkspaceArea(head)->top(); else return doFullMax() ? 0 : availableWorkspaceArea(head)->top(); } unsigned int BScreen::maxBottom(int head) const { // we ignore strut if we're doing full maximization if (hasXinerama()) return doFullMax() ? getHeadY(head) + getHeadHeight(head) : getHeadY(head) + getHeadHeight(head) - availableWorkspaceArea(head)->bottom(); else return doFullMax() ? height() : height() - availableWorkspaceArea(head)->bottom(); } void BScreen::focusedWinFrameThemeReconfigured() { renderGeomWindow(); renderPosWindow(); Fluxbox *fluxbox = Fluxbox::instance(); const std::list winlist = focusControl().focusedOrderWinList().clientList(); std::list::const_iterator it = winlist.begin(), it_end = winlist.end(); for (; it != it_end; ++it) fluxbox->updateFrameExtents(*(*it)->fbwindow()); } void BScreen::propertyNotify(Atom atom) { if (allowRemoteActions() && atom == atom_fbcmd) { Atom xa_ret_type; int ret_format; unsigned long ret_nitems, ret_bytes_after; char *str; if (rootWindow().property(atom_fbcmd, 0l, 64l, True, XA_STRING, &xa_ret_type, &ret_format, &ret_nitems, &ret_bytes_after, (unsigned char **)&str) && str) { if (ret_bytes_after) { XFree(str); long len = 64 + (ret_bytes_after + 3)/4; rootWindow().property(atom_fbcmd, 0l, len, True, XA_STRING, &xa_ret_type, &ret_format, &ret_nitems, &ret_bytes_after, (unsigned char **)&str); } static std::auto_ptr > cmd(0); cmd.reset(FbTk::CommandParser::instance().parse(str, false)); if (cmd.get()) { cmd->execute(); } XFree(str); } // TODO: this doesn't belong in FbPixmap } else if (FbTk::FbPixmap::rootwinPropertyNotify(screenNumber(), atom)) m_bg_change_sig.emit(*this); } void BScreen::keyPressEvent(XKeyEvent &ke) { if (Fluxbox::instance()->keys()->doAction(ke.type, ke.state, ke.keycode, Keys::GLOBAL|Keys::ON_DESKTOP)) // re-grab keyboard, so we don't pass KeyRelease to clients // also for catching invalid keys in the middle of keychains FbTk::EventManager::instance()->grabKeyboard(rootWindow().window()); } void BScreen::keyReleaseEvent(XKeyEvent &ke) { if (m_cycling) { unsigned int state = FbTk::KeyUtil::instance().cleanMods(ke.state); state &= ~FbTk::KeyUtil::instance().keycodeToModmask(ke.keycode); if (state) // still cycling return; m_cycling = false; focusControl().stopCyclingFocus(); } if (!Fluxbox::instance()->keys()->inKeychain()) FbTk::EventManager::instance()->ungrabKeyboard(); } void BScreen::buttonPressEvent(XButtonEvent &be) { if (be.button == 1 && !isRootColormapInstalled()) imageControl().installRootColormap(); Keys *keys = Fluxbox::instance()->keys(); keys->doAction(be.type, be.state, be.button, Keys::GLOBAL|Keys::ON_DESKTOP, 0, be.time); } void BScreen::cycleFocus(int options, const ClientPattern *pat, bool reverse) { // get modifiers from event that causes this for focus order cycling XEvent ev = Fluxbox::instance()->lastEvent(); unsigned int mods = 0; if (ev.type == KeyPress) mods = FbTk::KeyUtil::instance().cleanMods(ev.xkey.state); else if (ev.type == ButtonPress) mods = FbTk::KeyUtil::instance().cleanMods(ev.xbutton.state); if (!m_cycling && mods) { m_cycling = true; FbTk::EventManager::instance()->grabKeyboard(rootWindow().window()); } if (mods == 0) // can't stacked cycle unless there is a mod to grab options |= FocusableList::STATIC_ORDER; const FocusableList *win_list = FocusableList::getListFromOptions(*this, options); focusControl().cycleFocus(*win_list, pat, reverse); } FbMenu *BScreen::createMenu(const string &label) { FbTk::Layer* layer = layerManager().getLayer(ResourceLayer::MENU); FbMenu *menu = new FbMenu(menuTheme(), imageControl(), *layer); if (!label.empty()) menu->setLabel(label); return menu; } FbMenu *BScreen::createToggleMenu(const string &label) { FbTk::Layer* layer = layerManager().getLayer(ResourceLayer::MENU); FbMenu *menu = new ToggleMenu(menuTheme(), imageControl(), *layer); if (!label.empty()) menu->setLabel(label); return menu; } void BScreen::addExtraWindowMenu(const FbTk::FbString &label, FbTk::Menu *menu) { menu->setInternalMenu(); menu->disableTitle(); m_extramenus.push_back(make_pair(label, menu)); rereadWindowMenu(); } void BScreen::reconfigure() { Fluxbox *fluxbox = Fluxbox::instance(); focusedWinFrameTheme()->setAlpha(*resource.focused_alpha); unfocusedWinFrameTheme()->setAlpha(*resource.unfocused_alpha); m_menutheme->setAlpha(*resource.menu_alpha); clampMenuDelay(*resource.menu_delay); m_menutheme->setDelay(*resource.menu_delay); // realize the number of workspaces from the init-file const unsigned int nr_ws = *resource.workspaces; if (nr_ws > m_workspaces_list.size()) { while(nr_ws != m_workspaces_list.size()) { addWorkspace(); } } else if (nr_ws < m_workspaces_list.size()) { while(nr_ws != m_workspaces_list.size()) { removeLastWorkspace(); } } // update menu filenames m_rootmenu->reloadHelper()->setMainFile(fluxbox->getMenuFilename()); m_windowmenu->reloadHelper()->setMainFile(windowMenuFilename()); // reconfigure workspaces for_each(m_workspaces_list.begin(), m_workspaces_list.end(), mem_fun(&Workspace::reconfigure)); // reconfigure Icons for_each(m_icon_list.begin(), m_icon_list.end(), mem_fun(&FluxboxWindow::reconfigure)); imageControl().cleanCache(); // notify objects that the screen is reconfigured m_reconfigure_sig.emit(*this); // Reload style FbTk::ThemeManager::instance().load(fluxbox->getStyleFilename(), fluxbox->getStyleOverlayFilename(), m_root_theme->screenNum()); reconfigureTabs(); } void BScreen::reconfigureTabs() { const std::list winlist = focusControl().focusedOrderWinList().clientList(); std::list::const_iterator it = winlist.begin(), it_end = winlist.end(); for (; it != it_end; ++it) (*it)->fbwindow()->applyDecorations(); } void BScreen::updateWorkspaceName(unsigned int w) { Workspace *space = getWorkspace(w); if (space) { m_workspace_names[w] = space->name(); m_workspacenames_sig.emit(*this); Fluxbox::instance()->save_rc(); } } void BScreen::removeWorkspaceNames() { m_workspace_names.clear(); } void BScreen::addIcon(FluxboxWindow *w) { if (w == 0) return; // make sure we have a unique list if (find(iconList().begin(), iconList().end(), w) != iconList().end()) return; iconList().push_back(w); // notify listeners iconListSig().emit(*this); } void BScreen::removeIcon(FluxboxWindow *w) { if (w == 0) return; Icons::iterator erase_it = remove_if(iconList().begin(), iconList().end(), bind2nd(equal_to(), w)); // no need to send iconlist signal if we didn't // change the iconlist if (erase_it != m_icon_list.end()) { iconList().erase(erase_it); iconListSig().emit(*this); } } void BScreen::removeWindow(FluxboxWindow *win) { fbdbg<<"BScreen::removeWindow("<workspaceNumber()); if (space != 0) space->removeWindow(win, false); } void BScreen::removeClient(WinClient &client) { focusControl().removeClient(client); if (client.fbwindow() && client.fbwindow()->isIconic()) iconListSig().emit(*this); using namespace FbTk; // remove any grouping this is expecting Groupables::iterator erase_it = find_if(m_expecting_groups.begin(), m_expecting_groups.end(), Compose(bind2nd(equal_to(), &client), Select2nd())); if (erase_it != m_expecting_groups.end()) m_expecting_groups.erase(erase_it); // the client could be on icon menu so we update it //!! TODO: check this with the new icon menu // updateIconMenu(); } int BScreen::addWorkspace() { bool save_name = getNameOfWorkspace(m_workspaces_list.size()) == ""; Workspace *wkspc = new Workspace(*this, getNameOfWorkspace(m_workspaces_list.size()), m_workspaces_list.size()); m_workspaces_list.push_back(wkspc); if (save_name) { addWorkspaceName(wkspc->name().c_str()); m_workspacenames_sig.emit(*this); } saveWorkspaces(m_workspaces_list.size()); workspaceCountSig().emit( *this ); return m_workspaces_list.size(); } /// removes last workspace /// @return number of desktops left int BScreen::removeLastWorkspace() { if (m_workspaces_list.size() <= 1) return 0; Workspace *wkspc = m_workspaces_list.back(); if (m_current_workspace->workspaceID() == wkspc->workspaceID()) changeWorkspaceID(m_current_workspace->workspaceID() - 1); wkspc->removeAll(wkspc->workspaceID()-1); Icons::iterator it = iconList().begin(); const Icons::iterator it_end = iconList().end(); for (; it != it_end; ++it) { if ((*it)->workspaceNumber() == wkspc->workspaceID()) (*it)->setWorkspace(wkspc->workspaceID()-1); } m_clientlist_sig.emit(*this); //remove last workspace m_workspaces_list.pop_back(); saveWorkspaces(m_workspaces_list.size()); workspaceCountSig().emit( *this ); // must be deleted after we send notify!! // so we dont get bad pointers somewhere // while processing the notify signal delete wkspc; return m_workspaces_list.size(); } void BScreen::changeWorkspaceID(unsigned int id, bool revert) { if (! m_current_workspace || id >= m_workspaces_list.size() || id == m_current_workspace->workspaceID()) return; /* Ignore all EnterNotify events until the pointer actually moves */ this->focusControl().ignoreAtPointer(); FbTk::App::instance()->sync(false); FluxboxWindow *focused = FocusControl::focusedFbWindow(); if (focused && focused->isMoving() && doOpaqueMove()) // don't reassociate if not opaque moving reassociateWindow(focused, id, true); // set new workspace Workspace *old = currentWorkspace(); m_current_workspace = getWorkspace(id); // we show new workspace first in order to appear faster currentWorkspace()->showAll(); // reassociate all windows that are stuck to the new workspace Workspace::Windows wins = old->windowList(); Workspace::Windows::iterator it = wins.begin(); for (; it != wins.end(); ++it) { if ((*it)->isStuck()) { reassociateWindow(*it, id, true); } } // change workspace ID of stuck iconified windows, too Icons::iterator icon_it = iconList().begin(); for (; icon_it != iconList().end(); ++icon_it) { if ((*icon_it)->isStuck()) (*icon_it)->setWorkspace(id); } if (focused && focused->isMoving() && doOpaqueMove()) focused->focus(); else if (revert) FocusControl::revertFocus(*this); old->hideAll(false); FbTk::App::instance()->sync(false); m_currentworkspace_sig.emit(*this); // do this after atom handlers, so scripts can access new workspace number Fluxbox::instance()->keys()->doAction(FocusIn, 0, 0, Keys::ON_DESKTOP); } void BScreen::sendToWorkspace(unsigned int id, FluxboxWindow *win, bool changeWS) { if (! m_current_workspace || id >= m_workspaces_list.size()) return; if (!win) win = FocusControl::focusedFbWindow(); if (!win || &win->screen() != this || win->isStuck()) return; FbTk::App::instance()->sync(false); windowMenu().hide(); reassociateWindow(win, id, true); // change workspace ? if (changeWS) changeWorkspaceID(id, false); // if the window is on current workspace, show it; else hide it. if (id == currentWorkspace()->workspaceID() && !win->isIconic()) win->show(); else { win->hide(true); FocusControl::revertFocus(*this); } // send all the transients too FluxboxWindow::ClientList::iterator client_it = win->clientList().begin(); FluxboxWindow::ClientList::iterator client_it_end = win->clientList().end(); for (; client_it != client_it_end; ++client_it) { WinClient::TransientList::const_iterator it = (*client_it)->transientList().begin(); WinClient::TransientList::const_iterator it_end = (*client_it)->transientList().end(); for (; it != it_end; ++it) { if ((*it)->fbwindow()) sendToWorkspace(id, (*it)->fbwindow(), false); } } } bool BScreen::isKdeDockapp(Window client) const { //Check and see if client is KDE dock applet. bool iskdedockapp = false; Atom ajunk; int ijunk; unsigned long *data = 0, uljunk; Display *disp = FbTk::App::instance()->display(); // Check if KDE v2.x dock applet if (XGetWindowProperty(disp, client, atom_kde_systray, 0l, 1l, False, XA_WINDOW, &ajunk, &ijunk, &uljunk, &uljunk, (unsigned char **) &data) == Success) { if (data) iskdedockapp = true; XFree((void *) data); data = 0; } // Check if KDE v1.x dock applet if (!iskdedockapp) { if (XGetWindowProperty(disp, client, atom_kwm1, 0l, 1l, False, atom_kwm1, &ajunk, &ijunk, &uljunk, &uljunk, (unsigned char **) &data) == Success && data) { iskdedockapp = (data && data[0] != 0); XFree((void *) data); data = 0; } } return iskdedockapp; } bool BScreen::addKdeDockapp(Window client) { XSelectInput(FbTk::App::instance()->display(), client, StructureNotifyMask); FbTk::EventHandler *evh = 0; FbTk::EventManager *evm = FbTk::EventManager::instance(); AtomHandler* handler = 0; #if USE_SYSTRAY handler = Fluxbox::instance()->getAtomHandler(SystemTray::getNetSystemTrayAtom(screenNumber())); #endif if (handler == 0) { #ifdef USE_SLIT if (slit() != 0 && slit()->acceptKdeDockapp()) slit()->addClient(client); else #endif // USE_SLIT return false; } else { // this handler is a special case // so we call setupClient in it WinClient winclient(client, *this); handler->setupClient(winclient); // we need to save old handler and re-add it later evh = evm->find(client); } if (evh != 0) // re-add handler evm->add(*evh, client); return true; } FluxboxWindow *BScreen::createWindow(Window client) { FbTk::App::instance()->sync(false); if (isKdeDockapp(client) && addKdeDockapp(client)) { return 0; // dont create a FluxboxWindow for this one } WinClient *winclient = new WinClient(client, *this); if (winclient->initial_state == WithdrawnState) { delete winclient; #ifdef USE_SLIT if (slit() && !isKdeDockapp(client)) slit()->addClient(client); #endif // USE_SLIT return 0; } // check if it should be grouped with something else FluxboxWindow *win; WinClient *other; if ((other = findGroupLeft(*winclient)) && (win = other->fbwindow())) { win->attachClient(*winclient); Fluxbox::instance()->attachSignals(*winclient); } else { Fluxbox::instance()->attachSignals(*winclient); if (winclient->fbwindow()) { // may have been set in an atomhandler win = winclient->fbwindow(); Workspace *workspace = getWorkspace(win->workspaceNumber()); if (workspace) workspace->updateClientmenu(); } else { win = new FluxboxWindow(*winclient); if (!win->isManaged()) { delete win; return 0; } } } // add the window to the focus list // always add to front on startup to keep the focus order the same if (win->isFocused() || Fluxbox::instance()->isStartup()) focusControl().addFocusFront(*winclient); else focusControl().addFocusBack(*winclient); // we also need to check if another window expects this window to the left // and if so, then join it. if ((other = findGroupRight(*winclient)) && other->fbwindow() != win) win->attachClient(*other); else if (other) // should never happen win->moveClientRightOf(*other, *winclient); m_clientlist_sig.emit(*this); FbTk::App::instance()->sync(false); return win; } FluxboxWindow *BScreen::createWindow(WinClient &client) { if (isKdeDockapp(client.window()) && addKdeDockapp(client.window())) { return 0; } FluxboxWindow *win = new FluxboxWindow(client); #ifdef SLIT if (win->initialState() == WithdrawnState && slit() != 0) { slit()->addClient(client.window()); } #endif // SLIT if (!win->isManaged()) { delete win; return 0; } win->show(); // don't ask me why, but client doesn't seem to keep focus in new window // and we don't seem to get a FocusIn event from setInputFocus if ((focusControl().focusNew() || FocusControl::focusedWindow() == &client) && win->focus()) FocusControl::setFocusedWindow(&client); m_clientlist_sig.emit(*this); return win; } Strut *BScreen::requestStrut(int head, int left, int right, int top, int bottom) { if (head > numHeads() && head != 1) { // head does not exist (if head == 1, then numHeads() == 0, // which means no xinerama, but there's a head after all head = numHeads(); } int begin = head-1; int end = head; if (head == 0) { // all heads (or no xinerama) begin = 0; end = (numHeads() ? numHeads() : 1); } Strut* next = 0; for (int i = begin; i != end; i++) { next = m_head_areas[i]->requestStrut(i+1, left, right, top, bottom, next); } return next; } void BScreen::clearStrut(Strut *str) { if (str->next()) clearStrut(str->next()); int head = str->head() ? str->head() - 1 : 0; /* The number of heads may have changed, be careful. */ if (head < (numHeads() ? numHeads() : 1)) m_head_areas[head]->clearStrut(str); // str is invalid now } void BScreen::updateAvailableWorkspaceArea() { size_t n = (numHeads() ? numHeads() : 1); bool updated = false; for (size_t i = 0; i < n; i++) { updated = m_head_areas[i]->updateAvailableWorkspaceArea() || updated; } if (updated) m_workspace_area_sig.emit(*this); } void BScreen::addWorkspaceName(const char *name) { m_workspace_names.push_back(FbTk::FbStringUtil::LocaleStrToFb(name)); Workspace *wkspc = getWorkspace(m_workspace_names.size()-1); if (wkspc) wkspc->setName(m_workspace_names.back()); } string BScreen::getNameOfWorkspace(unsigned int workspace) const { if (workspace < m_workspace_names.size()) return m_workspace_names[workspace]; else return ""; } void BScreen::reassociateWindow(FluxboxWindow *w, unsigned int wkspc_id, bool ignore_sticky) { if (w == 0) return; if (wkspc_id >= numberOfWorkspaces()) wkspc_id = currentWorkspace()->workspaceID(); if (!w->isIconic() && w->workspaceNumber() == wkspc_id) return; if (w->isIconic()) { removeIcon(w); getWorkspace(wkspc_id)->addWindow(*w); } else if (ignore_sticky || ! w->isStuck()) { // fresh windows have workspaceNumber == -1, which leads to // an invalid workspace (unsigned int) Workspace* ws = getWorkspace(w->workspaceNumber()); if (ws) ws->removeWindow(w, true); getWorkspace(wkspc_id)->addWindow(*w); } } void BScreen::initMenus() { m_workspacemenu.reset(MenuCreator::createMenuType("workspacemenu", screenNumber())); m_rootmenu->reloadHelper()->setMainFile(Fluxbox::instance()->getMenuFilename()); m_windowmenu->reloadHelper()->setMainFile(windowMenuFilename()); } void BScreen::rereadMenu() { m_rootmenu->removeAll(); m_rootmenu->setLabel(FbTk::BiDiString("")); Fluxbox * const fb = Fluxbox::instance(); if (!fb->getMenuFilename().empty()) MenuCreator::createFromFile(fb->getMenuFilename(), *m_rootmenu, m_rootmenu->reloadHelper()); if (m_rootmenu->numberOfItems() == 0) { _FB_USES_NLS; m_rootmenu->setLabel(_FB_XTEXT(Menu, DefaultRootMenu, "Fluxbox default menu", "Title of fallback root menu")); FbTk::RefCount > restart_fb(FbTk::CommandParser::instance().parse("restart")); FbTk::RefCount > exit_fb(FbTk::CommandParser::instance().parse("exit")); FbTk::RefCount > execute_xterm(FbTk::CommandParser::instance().parse("exec xterm")); m_rootmenu->setInternalMenu(); m_rootmenu->insert("xterm", execute_xterm); m_rootmenu->insert(_FB_XTEXT(Menu, Reconfigure, "Reconfigure", "Reload Configuration command")), m_rootmenu->insert(_FB_XTEXT(Menu, Restart, "Restart", "Restart command"), restart_fb); m_rootmenu->insert(_FB_XTEXT(Menu, Exit, "Exit", "Exit command"), exit_fb); } } const std::string BScreen::windowMenuFilename() const { if ((*resource.windowmenufile).empty()) return Fluxbox::instance()->getDefaultDataFilename("windowmenu"); return *resource.windowmenufile; } void BScreen::rereadWindowMenu() { m_windowmenu->removeAll(); if (!windowMenuFilename().empty()) MenuCreator::createFromFile(windowMenuFilename(), *m_windowmenu, m_windowmenu->reloadHelper()); } void BScreen::addConfigMenu(const FbTk::FbString &label, FbTk::Menu &menu) { m_configmenu_list.push_back(make_pair(label, &menu)); if (m_configmenu.get()) setupConfigmenu(*m_configmenu.get()); } void BScreen::removeConfigMenu(FbTk::Menu &menu) { Configmenus::iterator erase_it = find_if(m_configmenu_list.begin(), m_configmenu_list.end(), FbTk::Compose(bind2nd(equal_to(), &menu), FbTk::Select2nd())); if (erase_it != m_configmenu_list.end()) m_configmenu_list.erase(erase_it); if (!isShuttingdown() && m_configmenu.get()) setupConfigmenu(*m_configmenu.get()); } void BScreen::addManagedResource(FbTk::Resource_base *resource) { m_managed_resources.push_back(resource); } int BScreen::getGap(int head, const char type) { return type == 'w' ? getXGap(head) : getYGap(head); } int BScreen::calRelativeSize(int head, int i, char type) { // return floor(i * getGap(head, type) / 100 + 0.5); return FbTk::RelCalcHelper::calPercentageValueOf(i, getGap(head, type)); } int BScreen::calRelativeWidth(int head, int i) { return calRelativeSize(head, i, 'w'); } int BScreen::calRelativeHeight(int head, int i) { return calRelativeSize(head, i, 'h'); } int BScreen::calRelativePosition(int head, int i, char type) { int max = type == 'w' ? maxLeft(head) : maxTop(head); // return floor((i - min) / getGap(head, type) * 100 + 0.5); return FbTk::RelCalcHelper::calPercentageOf((i - max), getGap(head, type)); } // returns a pixel, which is relative to the width of the screen // screen starts from 0, 1000 px width, if i is 10 then it should return 100 int BScreen::calRelativePositionWidth(int head, int i) { return calRelativePosition(head, i, 'w'); } // returns a pixel, which is relative to the height of th escreen // screen starts from 0, 1000 px height, if i is 10 then it should return 100 int BScreen::calRelativePositionHeight(int head, int i) { return calRelativePosition(head, i, 'h'); } int BScreen::calRelativeDimension(int head, int i, char type) { // return floor(i / getGap(head, type) * 100 + 0.5); return FbTk::RelCalcHelper::calPercentageOf(i, getGap(head, type)); } int BScreen::calRelativeDimensionWidth(int head, int i) { return calRelativeDimension(head, i, 'w'); } int BScreen::calRelativeDimensionHeight(int head, int i) { return calRelativeDimension(head, i, 'h'); } float BScreen::getXGap(int head) { return maxRight(head) - maxLeft(head); } float BScreen::getYGap(int head) { return maxBottom(head) - maxTop(head); } void BScreen::setupConfigmenu(FbTk::Menu &menu) { _FB_USES_NLS; menu.removeAll(); FbTk::MacroCommand *s_a_reconf_macro = new FbTk::MacroCommand(); FbTk::MacroCommand *s_a_reconftabs_macro = new FbTk::MacroCommand(); FbTk::RefCount > saverc_cmd(new FbTk::SimpleCommand( *Fluxbox::instance(), &Fluxbox::save_rc)); FbTk::RefCount > reconf_cmd(FbTk::CommandParser::instance().parse("reconfigure")); FbTk::RefCount > reconftabs_cmd(new FbTk::SimpleCommand( *this, &BScreen::reconfigureTabs)); s_a_reconf_macro->add(saverc_cmd); s_a_reconf_macro->add(reconf_cmd); s_a_reconftabs_macro->add(saverc_cmd); s_a_reconftabs_macro->add(reconftabs_cmd); FbTk::RefCount > save_and_reconfigure(s_a_reconf_macro); FbTk::RefCount > save_and_reconftabs(s_a_reconftabs_macro); // create focus menu // we don't set this to internal menu so will // be deleted toghether with the parent FbTk::FbString focusmenu_label = _FB_XTEXT(Configmenu, FocusModel, "Focus Model", "Method used to give focus to windows"); FbTk::Menu *focus_menu = createMenu(focusmenu_label); #define _BOOLITEM(m,a, b, c, d, e, f) (m).insert(new FbTk::BoolMenuItem(_FB_XTEXT(a, b, c, d), e, f)) #define _FOCUSITEM(a, b, c, d, e) \ focus_menu->insert(new FocusModelMenuItem(_FB_XTEXT(a, b, c, d), focusControl(), \ e, save_and_reconfigure)) _FOCUSITEM(Configmenu, ClickFocus, "Click To Focus", "Click to focus", FocusControl::CLICKFOCUS); _FOCUSITEM(Configmenu, MouseFocus, "Mouse Focus (Keyboard Friendly)", "Mouse Focus (Keyboard Friendly)", FocusControl::MOUSEFOCUS); _FOCUSITEM(Configmenu, StrictMouseFocus, "Mouse Focus (Strict)", "Mouse Focus (Strict)", FocusControl::STRICTMOUSEFOCUS); #undef _FOCUSITEM focus_menu->insert(new FbTk::MenuSeparator()); focus_menu->insert(new TabFocusModelMenuItem(_FB_XTEXT(Configmenu, ClickTabFocus, "ClickTabFocus", "Click tab to focus windows"), focusControl(), FocusControl::CLICKTABFOCUS, save_and_reconfigure)); focus_menu->insert(new TabFocusModelMenuItem(_FB_XTEXT(Configmenu, MouseTabFocus, "MouseTabFocus", "Hover over tab to focus windows"), focusControl(), FocusControl::MOUSETABFOCUS, save_and_reconfigure)); focus_menu->insert(new FbTk::MenuSeparator()); try { focus_menu->insert(new FbTk::BoolMenuItem(_FB_XTEXT(Configmenu, FocusNew, "Focus New Windows", "Focus newly created windows"), m_resource_manager.getResource(name() + ".focusNewWindows"), saverc_cmd)); } catch (FbTk::ResourceException & e) { cerr<insert(new FbTk::BoolMenuItem(_FB_XTEXT(Configmenu, FocusSameHead, "Keep Head", "Only revert focus on same head"), m_resource_manager.getResource(name() + ".focusSameHead"), saverc_cmd)); } catch (FbTk::ResourceException e) { cerr<updateMenu(); menu.insert(focusmenu_label, focus_menu); // END focus menu // BEGIN maximize menu FbTk::FbString maxmenu_label = _FB_XTEXT(Configmenu, MaxMenu, "Maximize Options", "heading for maximization options"); FbTk::Menu *maxmenu = createMenu(maxmenu_label); _BOOLITEM(*maxmenu, Configmenu, FullMax, "Full Maximization", "Maximise over slit, toolbar, etc", resource.full_max, saverc_cmd); _BOOLITEM(*maxmenu, Configmenu, MaxIgnoreInc, "Ignore Resize Increment", "Maximizing Ignores Resize Increment (e.g. xterm)", resource.max_ignore_inc, saverc_cmd); _BOOLITEM(*maxmenu, Configmenu, MaxDisableMove, "Disable Moving", "Don't Allow Moving While Maximized", resource.max_disable_move, saverc_cmd); _BOOLITEM(*maxmenu, Configmenu, MaxDisableResize, "Disable Resizing", "Don't Allow Resizing While Maximized", resource.max_disable_resize, saverc_cmd); maxmenu->updateMenu(); menu.insert(maxmenu_label, maxmenu); // END maximize menu // BEGIN tab menu FbTk::FbString tabmenu_label = _FB_XTEXT(Configmenu, TabMenu, "Tab Options", "heading for tab-related options"); FbTk::Menu *tab_menu = createMenu(tabmenu_label); FbTk::FbString tabplacement_label = _FB_XTEXT(Menu, Placement, "Placement", "Title of Placement menu"); FbTk::Menu *tabplacement_menu = createToggleMenu(tabplacement_label); tab_menu->insert(tabplacement_label, tabplacement_menu); _BOOLITEM(*tab_menu,Configmenu, TabsInTitlebar, "Tabs in Titlebar", "Tabs in Titlebar", resource.default_internal_tabs, save_and_reconftabs); tab_menu->insert(new FbTk::BoolMenuItem(_FB_XTEXT(Common, MaximizeOver, "Maximize Over", "Maximize over this thing when maximizing"), resource.max_over_tabs, save_and_reconfigure)); tab_menu->insert(new FbTk::BoolMenuItem(_FB_XTEXT(Toolbar, ShowIcons, "Show Pictures", "chooses if little icons are shown next to title in the iconbar"), resource.tabs_use_pixmap, save_and_reconfigure)); FbTk::MenuItem *tab_width_item = new FbTk::IntMenuItem(_FB_XTEXT(Configmenu, ExternalTabWidth, "External Tab Width", "Width of external-style tabs"), resource.tab_width, 10, 3000, /* silly number */ *tab_menu); tab_width_item->setCommand(save_and_reconftabs); tab_menu->insert(tab_width_item); // menu is 3 wide, 5 down struct PlacementP { const FbTk::FbString label; FbWinFrame::TabPlacement placement; }; static const PlacementP place_menu[] = { { _FB_XTEXT(Align, TopLeft, "Top Left", "Top Left"), FbWinFrame::TOPLEFT}, { _FB_XTEXT(Align, LeftTop, "Left Top", "Left Top"), FbWinFrame::LEFTTOP}, { _FB_XTEXT(Align, LeftCenter, "Left Center", "Left Center"), FbWinFrame::LEFT}, { _FB_XTEXT(Align, LeftBottom, "Left Bottom", "Left Bottom"), FbWinFrame::LEFTBOTTOM}, { _FB_XTEXT(Align, BottomLeft, "Bottom Left", "Bottom Left"), FbWinFrame::BOTTOMLEFT}, { _FB_XTEXT(Align, TopCenter, "Top Center", "Top Center"), FbWinFrame::TOP}, { "", FbWinFrame::TOPLEFT}, { "", FbWinFrame::TOPLEFT}, { "", FbWinFrame::TOPLEFT}, { _FB_XTEXT(Align, BottomCenter, "Bottom Center", "Bottom Center"), FbWinFrame::BOTTOM}, { _FB_XTEXT(Align, TopRight, "Top Right", "Top Right"), FbWinFrame::TOPRIGHT}, { _FB_XTEXT(Align, RightTop, "Right Top", "Right Top"), FbWinFrame::RIGHTTOP}, { _FB_XTEXT(Align, RightCenter, "Right Center", "Right Center"), FbWinFrame::RIGHT}, { _FB_XTEXT(Align, RightBottom, "Right Bottom", "Right Bottom"), FbWinFrame::RIGHTBOTTOM}, { _FB_XTEXT(Align, BottomRight, "Bottom Right", "Bottom Right"), FbWinFrame::BOTTOMRIGHT} }; tabplacement_menu->setMinimumColumns(3); // create items in sub menu for (size_t i=0; i< sizeof(place_menu)/sizeof(PlacementP); ++i) { const PlacementP& p = place_menu[i]; if (p.label == "") { tabplacement_menu->insert(p.label); tabplacement_menu->setItemEnabled(i, false); } else tabplacement_menu->insert(new TabPlacementMenuItem(p.label, *this, p.placement, save_and_reconftabs)); } tabplacement_menu->updateMenu(); menu.insert(tabmenu_label, tab_menu); #ifdef HAVE_XRENDER if (FbTk::Transparent::haveRender() || FbTk::Transparent::haveComposite()) { FbTk::FbString alphamenu_label = _FB_XTEXT(Configmenu, Transparency, "Transparency", "Menu containing various transparency options"); FbTk::Menu *alpha_menu = createMenu(alphamenu_label); if (FbTk::Transparent::haveComposite(true)) { static FbTk::SimpleAccessor s_pseudo(Fluxbox::instance()->getPseudoTrans()); alpha_menu->insert(new FbTk::BoolMenuItem(_FB_XTEXT(Configmenu, ForcePseudoTrans, "Force Pseudo-Transparency", "When composite is available, still use old pseudo-transparency"), s_pseudo, save_and_reconfigure)); } // in order to save system resources, don't save or reconfigure alpha // settings until after the user is done changing them FbTk::RefCount > delayed_save_and_reconf( new FbTk::DelayedCmd(save_and_reconfigure)); FbTk::MenuItem *focused_alpha_item = new FbTk::IntMenuItem(_FB_XTEXT(Configmenu, FocusedAlpha, "Focused Window Alpha", "Transparency level of the focused window"), resource.focused_alpha, 0, 255, *alpha_menu); focused_alpha_item->setCommand(delayed_save_and_reconf); alpha_menu->insert(focused_alpha_item); FbTk::MenuItem *unfocused_alpha_item = new FbTk::IntMenuItem(_FB_XTEXT(Configmenu, UnfocusedAlpha, "Unfocused Window Alpha", "Transparency level of unfocused windows"), resource.unfocused_alpha, 0, 255, *alpha_menu); unfocused_alpha_item->setCommand(delayed_save_and_reconf); alpha_menu->insert(unfocused_alpha_item); FbTk::MenuItem *menu_alpha_item = new FbTk::IntMenuItem(_FB_XTEXT(Configmenu, MenuAlpha, "Menu Alpha", "Transparency level of menu"), resource.menu_alpha, 0, 255, *alpha_menu); menu_alpha_item->setCommand(delayed_save_and_reconf); alpha_menu->insert(menu_alpha_item); alpha_menu->updateMenu(); menu.insert(alphamenu_label, alpha_menu); } #endif // HAVE_XRENDER Configmenus::iterator it = m_configmenu_list.begin(); Configmenus::iterator it_end = m_configmenu_list.end(); for (; it != it_end; ++it) menu.insert(it->first, it->second); _BOOLITEM(menu, Configmenu, OpaqueMove, "Opaque Window Moving", "Window Moving with whole window visible (as opposed to outline moving)", resource.opaque_move, saverc_cmd); _BOOLITEM(menu, Configmenu, WorkspaceWarping, "Workspace Warping", "Workspace Warping - dragging windows to the edge and onto the next workspace", resource.workspace_warping, saverc_cmd); #undef _BOOLITEM // finaly update menu menu.updateMenu(); } void BScreen::shutdown() { rootWindow().setEventMask(NoEventMask); FbTk::App::instance()->sync(false); m_shutdown = true; m_focus_control->shutdown(); for_each(m_workspaces_list.begin(), m_workspaces_list.end(), mem_fun(&Workspace::shutdown)); } void BScreen::showPosition(int x, int y) { if (!doShowWindowPos()) return; char buf[256]; sprintf(buf, "X:%5d x Y:%5d", x, y); FbTk::BiDiString label(buf); m_pos_window->showText(label); } void BScreen::hidePosition() { m_pos_window->hide(); } void BScreen::showGeometry(unsigned int gx, unsigned int gy) { if (!doShowWindowPos()) return; char buf[256]; _FB_USES_NLS; sprintf(buf, _FB_XTEXT(Screen, GeometryFormat, "W: %4d x H: %4d", "Format for width and height window, %4d for width, and %4d for height").c_str(), gx, gy); FbTk::BiDiString label(buf); m_geom_window->showText(label); } void BScreen::showTooltip(const FbTk::BiDiString &text) { if (*resource.tooltip_delay >= 0) m_tooltip_window->showText(text); } void BScreen::hideTooltip() { if (*resource.tooltip_delay >= 0) m_tooltip_window->hide(); } void BScreen::hideGeometry() { m_geom_window->hide(); } void BScreen::setLayer(FbTk::LayerItem &item, int layernum) { m_layermanager.moveToLayer(item, layernum); } /** Goes to the workspace "right" of the current */ void BScreen::nextWorkspace(int delta) { changeWorkspaceID( (currentWorkspaceID() + delta) % numberOfWorkspaces()); } /** Goes to the workspace "left" of the current */ void BScreen::prevWorkspace(int delta) { changeWorkspaceID( (static_cast(numberOfWorkspaces()) + currentWorkspaceID() - (delta % numberOfWorkspaces())) % numberOfWorkspaces()); } /** Goes to the workspace "right" of the current */ void BScreen::rightWorkspace(int delta) { if (currentWorkspaceID()+delta < numberOfWorkspaces()) changeWorkspaceID(currentWorkspaceID()+delta); } /** Goes to the workspace "left" of the current */ void BScreen::leftWorkspace(int delta) { if (currentWorkspaceID() >= static_cast(delta)) changeWorkspaceID(currentWorkspaceID()-delta); } void BScreen::renderGeomWindow() { char buf[256]; _FB_USES_NLS; sprintf(buf, _FB_XTEXT(Screen, GeometrySpacing, "W: %04d x H: %04d", "Representative maximum sized text for width and height dialog").c_str(), 0, 0); FbTk::BiDiString label(buf); m_geom_window->resize(label); m_geom_window->reconfigTheme(); } void BScreen::renderPosWindow() { m_pos_window->resize(FbTk::BiDiString("0:00000 x 0:00000")); m_pos_window->reconfigTheme(); } void BScreen::updateSize() { // update xinerama layout initXinerama(); // check if window geometry has changed if (rootWindow().updateGeometry()) { // reset background m_root_theme->reset(); // send resize notify m_resize_sig.emit(*this); m_workspace_area_sig.emit(*this); // move windows out of inactive heads clearHeads(); } } /** * Find the winclient to this window's left * So, we check the leftgroup hint, and see if we know any windows */ WinClient *BScreen::findGroupLeft(WinClient &winclient) { Window w = winclient.getGroupLeftWindow(); if (w == None) return 0; WinClient *have_client = Fluxbox::instance()->searchWindow(w); if (!have_client) { // not found, add it to expecting m_expecting_groups[w] = &winclient; } else if (&have_client->screen() != &winclient.screen()) // something is not consistent return 0; return have_client; } WinClient *BScreen::findGroupRight(WinClient &winclient) { Groupables::iterator it = m_expecting_groups.find(winclient.window()); if (it == m_expecting_groups.end()) return 0; // yay, this'll do. WinClient *other = it->second; m_expecting_groups.erase(it); // don't expect it anymore // forget about it if it isn't the left-most client in the group Window leftwin = other->getGroupLeftWindow(); if (leftwin != None && leftwin != winclient.window()) return 0; return other; } void BScreen::clearXinerama() { fbdbg<<"BScreen::initXinerama(): dont have Xinerama"<display(); if (!XineramaIsActive(display)) { clearXinerama(); return; } fbdbg<<"BScreen::initXinerama(): have Xinerama"<(win.width() / 2); int cy = win.y() + static_cast(win.height() / 2); long dist = -1; int i; for (i = 0; i < m_xinerama_num_heads; ++i) { XineramaHeadInfo& hi = m_xinerama_headinfo[i]; int d = calcSquareDistance(cx, cy, hi.x() + (hi.width() / 2), hi.y() + (hi.height() / 2)); if (dist == -1 || d < dist) { // found a closer head head = i + 1; dist = d; } } } #endif return head; } int BScreen::getCurrHead() const { if (!hasXinerama()) return 0; int root_x = 0, root_y = 0; #ifdef XINERAMA int ignore_i; unsigned int ignore_ui; Window ignore_w; XQueryPointer(FbTk::App::instance()->display(), rootWindow().window(), &ignore_w, &ignore_w, &root_x, &root_y, &ignore_i, &ignore_i, &ignore_ui); #endif // XINERAMA return getHead(root_x, root_y); } int BScreen::getHeadX(int head) const { #ifdef XINERAMA if (head == 0 || head > m_xinerama_num_heads) return 0; return m_xinerama_headinfo[head-1].x(); #else return 0; #endif // XINERAMA } int BScreen::getHeadY(int head) const { #ifdef XINERAMA if (head == 0 || head > m_xinerama_num_heads) return 0; return m_xinerama_headinfo[head-1].y(); #else return 0; #endif // XINERAMA } int BScreen::getHeadWidth(int head) const { #ifdef XINERAMA if (head == 0 || head > m_xinerama_num_heads) return width(); return m_xinerama_headinfo[head-1].width(); #else return width(); #endif // XINERAMA } int BScreen::getHeadHeight(int head) const { #ifdef XINERAMA if (head == 0 || head > m_xinerama_num_heads) return height(); return m_xinerama_headinfo[head-1].height(); #else return height(); #endif // XINERAMA } pair BScreen::clampToHead(int head, int x, int y, int w, int h) const { // if there are multiple heads, head=0 is not valid // a better way would be to search the closest head if (head == 0 && numHeads() != 0) head = 1; int hx = getHeadX(head); int hy = getHeadY(head); int hw = getHeadWidth(head); int hh = getHeadHeight(head); x = FbTk::Util::clamp(x, hx, hx + hw - w); y = FbTk::Util::clamp(y, hy, hy + hh - h); return make_pair(x,y); } fluxbox-1.3.5/src/PaxHeaders.25974/TooltipWindow.cc0000644000175000017500000000013212106662425020174 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.211812462 30 ctime=1360750008.731811614 fluxbox-1.3.5/src/TooltipWindow.cc0000644000175000017500000000713512106662425016231 0ustar00mgmg00000000000000// TooltipWindow.hh // Copyright (c) 2008 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "TooltipWindow.hh" #include "Screen.hh" #include "FbWinFrameTheme.hh" TooltipWindow::TooltipWindow(const FbTk::FbWindow &parent, BScreen &screen, FbTk::ThemeProxy &theme): OSDWindow(parent, screen, theme), m_delay(-1) { FbTk::RefCount > raisecmd(new FbTk::SimpleCommand(*this, &TooltipWindow::raiseTooltip)); m_timer.setCommand(raisecmd); m_timer.fireOnce(true); } void TooltipWindow::showText(const FbTk::BiDiString& text) { m_lastText = text; if (m_delay == 0) raiseTooltip(); else m_timer.start(); } void TooltipWindow::raiseTooltip() { if (m_lastText.logical().empty()) return; resize(m_lastText); reconfigTheme(); FbTk::Font& font = theme()->iconbarTheme().text().font(); int h = font.height() + theme()->bevelWidth() * 2; int w = font.textWidth(m_lastText) + theme()->bevelWidth() * 2; Window root_ret; // not used Window window_ret; // not used int rx = 0, ry = 0; int wx, wy; // not used unsigned int mask; // not used XQueryPointer(display(), screen().rootWindow().window(), &root_ret, &window_ret, &rx, &ry, &wx, &wy, &mask); int head = screen().getHead(rx, ry); int head_top = screen().getHeadY(head); int head_left = screen().getHeadX(head); int head_right = head_left + screen().getHeadWidth(head); // center the mouse horizontally rx -= w/2; int yoffset = 10; if (ry - yoffset - h >= head_top) ry -= yoffset + h; else ry += yoffset; // check that we are not out of screen if (rx + w > head_right) rx = head_right - w; if (rx < head_left) rx = head_left; moveResize(rx,ry,w, h); show(); clear(); // TODO: make this use a TextButton like TextDialog does font.drawText(*this, screen().screenNumber(), theme()->iconbarTheme().text().textGC(), m_lastText, theme()->bevelWidth(), theme()->bevelWidth() + font.ascent()); } void TooltipWindow::updateText(const FbTk::BiDiString& text) { m_lastText = text; raiseTooltip(); } void TooltipWindow::show() { if (isVisible()) return; setVisible(true); raise(); FbTk::FbWindow::show(); } void TooltipWindow::hide() { m_timer.stop(); OSDWindow::hide(); } fluxbox-1.3.5/src/PaxHeaders.25974/TooltipWindow.hh0000644000175000017500000000013212106662425020206 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.211812462 30 ctime=1360750008.731811614 fluxbox-1.3.5/src/TooltipWindow.hh0000644000175000017500000000444312106662425016242 0ustar00mgmg00000000000000// TooltipWindow.hh // Copyright (c) 2008 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef TOOLTIPWINDOW_HH #define TOOLTIPWINDOW_HH #include "OSDWindow.hh" #include "FbTk/Command.hh" #include "FbTk/RefCount.hh" #include "FbTk/Timer.hh" #include "FbTk/SimpleCommand.hh" #include "FbTk/FbString.hh" /** * Displays a tooltip window */ class TooltipWindow : public OSDWindow { public: TooltipWindow(const FbTk::FbWindow &parent, BScreen &screen, FbTk::ThemeProxy &theme); /** * Sets the text in the window and starts the display timer. * @param text the text to show in the window. */ void showText(const FbTk::BiDiString& text); /// updates the text directly without any delay void updateText(const FbTk::BiDiString& text); /// Sets the delay before the window pops up void setDelay(int delay) { m_delay = delay; m_timer.setTimeout(delay * FbTk::FbTime::IN_MILLISECONDS); } void hide(); private: void raiseTooltip(); void show(); int m_delay; ///< delay time for the timer FbTk::BiDiString m_lastText; ///< last text to be displayed FbTk::Timer m_timer; ///< delay timer before the tooltip will show }; #endif // TOOLTIPWINDOW_HH_ fluxbox-1.3.5/src/PaxHeaders.25974/OSDWindow.cc0000644000175000017500000000013212106662425017167 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.207812462 30 ctime=1360750008.735811614 fluxbox-1.3.5/src/OSDWindow.cc0000644000175000017500000000631412106662425015222 0ustar00mgmg00000000000000// OSDWindow.cc // Copyright (c) 2008 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "OSDWindow.hh" #include "Screen.hh" #include "FbWinFrameTheme.hh" #include "FbTk/ImageControl.hh" void OSDWindow::reconfigTheme() { setBorderWidth(m_theme->border().width()); setBorderColor(m_theme->border().color()); if (m_pixmap) m_screen.imageControl().removeImage(m_pixmap); if (m_theme->iconbarTheme().texture().type() & FbTk::Texture::PARENTRELATIVE) { if (!m_theme->titleTexture().usePixmap()) { m_pixmap = None; setBackgroundColor(m_theme->titleTexture().color()); } else { m_pixmap = m_screen.imageControl().renderImage(width(), height(), m_theme->titleTexture()); setBackgroundPixmap(m_pixmap); } } else { if (!m_theme->iconbarTheme().texture().usePixmap()) { m_pixmap = None; setBackgroundColor(m_theme->iconbarTheme().texture().color()); } else { m_pixmap = m_screen.imageControl().renderImage(width(), height(), m_theme->iconbarTheme().texture()); setBackgroundPixmap(m_pixmap); } } } void OSDWindow::resize(const FbTk::BiDiString &text) { int bw = 2 * m_theme->bevelWidth(); int h = m_theme->font().height() + bw; int w = m_theme->font().textWidth(text) + bw; FbTk::FbWindow::resize(w, h); } void OSDWindow::showText(const FbTk::BiDiString &text) { show(); clear(); m_theme->font().drawText(*this, m_screen.screenNumber(), m_theme->iconbarTheme().text().textGC(), text, m_theme->bevelWidth(), m_theme->bevelWidth() + m_theme->font().ascent()); } void OSDWindow::show() { if (m_visible) return; m_visible = true; unsigned int head = m_screen.getCurrHead(); move(m_screen.getHeadX(head) + (m_screen.getHeadWidth(head) - width()) / 2, m_screen.getHeadY(head) + (m_screen.getHeadHeight(head) - height()) / 2); raise(); FbTk::FbWindow::show(); } void OSDWindow::hide() { if (!m_visible) return; m_visible = false; FbTk::FbWindow::hide(); } fluxbox-1.3.5/src/PaxHeaders.25974/OSDWindow.hh0000644000175000017500000000013212106662425017201 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.207812462 30 ctime=1360750008.735811614 fluxbox-1.3.5/src/OSDWindow.hh0000644000175000017500000000432212106662425015231 0ustar00mgmg00000000000000// OSDWindow.hh // Copyright (c) 2008 Fluxbox Team (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef OSDWINDOW_HH #define OSDWINDOW_HH #include "FbTk/FbWindow.hh" class BScreen; class FbWinFrameTheme; namespace FbTk { template class ThemeProxy; class BiDiString; } class OSDWindow: public FbTk::FbWindow { public: OSDWindow(const FbTk::FbWindow &parent, BScreen &screen, FbTk::ThemeProxy &theme): FbTk::FbWindow(parent, 0, 0, 10, 10, 0, false, true), m_screen(screen), m_theme(theme), m_pixmap(None), m_visible(false) { } void reconfigTheme(); void resize(const FbTk::BiDiString &text); void showText(const FbTk::BiDiString &text); void hide(); bool isVisible() const { return m_visible; } BScreen &screen() const { return m_screen; } FbTk::ThemeProxy &theme() { return m_theme; } protected: /// Force visible status, use with care. void setVisible(bool visible) { m_visible = visible; } private: void show(); BScreen &m_screen; FbTk::ThemeProxy &m_theme; Pixmap m_pixmap; bool m_visible; }; #endif // OSDWINDOW_HH fluxbox-1.3.5/src/PaxHeaders.25974/FbRootWindow.cc0000644000175000017500000000013212106662425017735 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.203812462 30 ctime=1360750008.735811614 fluxbox-1.3.5/src/FbRootWindow.cc0000644000175000017500000000617412106662425015774 0ustar00mgmg00000000000000// FbRootWindow.cc // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "FbRootWindow.hh" #include "FbTk/App.hh" #include FbRootWindow::FbRootWindow(int screen_num): FbTk::FbWindow(RootWindow(FbTk::App::instance()->display(), screen_num)), m_visual(0), m_colormap(0), m_decorationDepth(0), m_decorationVisual(0), m_decorationColormap(0) { Display *disp = FbTk::App::instance()->display(); m_visual = DefaultVisual(disp, screen_num); m_colormap = DefaultColormap(disp, screen_num); m_decorationDepth = DefaultDepth(disp, screen_num); m_decorationVisual = DefaultVisual(disp, screen_num); m_decorationColormap = DefaultColormap(disp, screen_num); // search for a TrueColor Visual... if we can't find one... we will use the // default visual for the screen XVisualInfo vinfo_template, *vinfo_return; int vinfo_nitems; vinfo_template.screen = screen_num; vinfo_template.c_class = TrueColor; if ((vinfo_return = XGetVisualInfo(disp, VisualScreenMask | VisualClassMask, &vinfo_template, &vinfo_nitems)) && vinfo_nitems > 0) { for (int i = 0; i < vinfo_nitems; i++) { if ((DefaultDepth(disp, screen_num) < vinfo_return[i].depth) && (depth() < vinfo_return[i].depth)){ m_visual = vinfo_return[i].visual; setDepth(vinfo_return[i].depth); } if((m_decorationDepth < vinfo_return[i].depth) && (vinfo_return[i].depth != 32)) { m_decorationVisual = vinfo_return[i].visual; m_decorationDepth = vinfo_return[i].depth; } } XFree(vinfo_return); } if (m_visual != DefaultVisual(disp, screen_num)) { m_colormap = XCreateColormap(disp, window(), m_visual, AllocNone); } if (m_decorationVisual != DefaultVisual(disp, screen_num)) { m_decorationColormap = XCreateColormap(disp, window(), m_visual, AllocNone); } } fluxbox-1.3.5/src/PaxHeaders.25974/FbRootWindow.hh0000644000175000017500000000013212106662425017747 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.203812462 30 ctime=1360750008.735811614 fluxbox-1.3.5/src/FbRootWindow.hh0000644000175000017500000000425612106662425016005 0ustar00mgmg00000000000000// FbRootWindow.hh for fluxbox // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBROOTWINDOW_HH #define FBROOTWINDOW_HH #include "FbTk/FbWindow.hh" class FbRootWindow: public FbTk::FbWindow { public: explicit FbRootWindow(int screen_num); // disable functions that we can't do on root window void move(int x, int y) { } void resize(unsigned int width, unsigned int height) { } void moveResize(int x, int y, unsigned int width, unsigned int height) { } void show() { } void hide() { } // we should not assign a new window to this FbTk::FbWindow &operator = (Window win) { return *this; } Visual *visual() const { return m_visual; } Colormap colormap() const { return m_colormap; } int decorationDepth() const { return m_decorationDepth; } Visual *decorationVisual() const { return m_decorationVisual; } Colormap decorationColormap() const { return m_decorationColormap; } private: Visual *m_visual; Colormap m_colormap; int m_decorationDepth; Visual *m_decorationVisual; Colormap m_decorationColormap; }; #endif // FBROOTWINDOW_HH fluxbox-1.3.5/src/PaxHeaders.25974/RootTheme.cc0000644000175000017500000000013212106662425017260 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.203812462 30 ctime=1360750008.735811614 fluxbox-1.3.5/src/RootTheme.cc0000644000175000017500000002406212106662425015313 0ustar00mgmg00000000000000// RootTheme.cc // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "RootTheme.hh" #include "defaults.hh" #include "FbRootWindow.hh" #include "FbCommands.hh" #include "Screen.hh" #include "FbTk/App.hh" #include "FbTk/Font.hh" #include "FbTk/Image.hh" #include "FbTk/ImageControl.hh" #include "FbTk/Resource.hh" #include "FbTk/FileUtil.hh" #include "FbTk/StringUtil.hh" #include "FbTk/TextureRender.hh" #include "FbTk/I18n.hh" #include #include #include #ifdef HAVE_SYS_WAIT_H #include #endif #ifdef HAVE_CSTRING #include #else #include #endif using std::string; class BackgroundItem: public FbTk::ThemeItem { public: BackgroundItem(FbTk::Theme &tm, const std::string &name, const std::string &altname): FbTk::ThemeItem(tm, name, altname), m_changed(false), m_loaded(false) { } void load(const std::string *o_name = 0, const std::string *o_altname = 0) { const string &m_name = (o_name == 0) ? name() : *o_name; const string &m_altname = (o_altname == 0) ? altName() : *o_altname; // if we got this far, then the background was loaded m_loaded = true; // create subnames string color_name(FbTk::ThemeManager::instance(). resourceValue(m_name + ".color", m_altname + ".Color")); string colorto_name(FbTk::ThemeManager::instance(). resourceValue(m_name + ".colorTo", m_altname + ".ColorTo")); string pixmap_name(FbTk::ThemeManager::instance(). resourceValue(m_name + ".pixmap", m_altname + ".Pixmap")); string mod_x(FbTk::ThemeManager::instance(). resourceValue(m_name + ".modX", m_altname + ".ModX")); string mod_y(FbTk::ThemeManager::instance(). resourceValue(m_name + ".modY", m_altname + ".ModY")); // validate mod_x and mod_y if (mod_x.length() > 2) mod_x.erase(2,mod_x.length()); // shouldn't be longer than 2 digits if (mod_y.length() > 2) mod_y.erase(2,mod_y.length()); // ditto // should be integers if (!mod_x.length() || mod_x[0] < '0' || mod_x[0] > '9' || (mod_x.length() == 2 && (mod_x[1] < '0' || mod_x[1] > '9'))) mod_x = "1"; if (!mod_y.length() || mod_y[0] < '0' || mod_y[0] > '9' || (mod_y.length() == 2 && (mod_y[1] < '0' || mod_y[1] > '9'))) mod_y = "1"; // remove whitespace from filename FbTk::StringUtil::removeFirstWhitespace(pixmap_name); FbTk::StringUtil::removeTrailingWhitespace(pixmap_name); // check if the background has been changed if (mod_x != m_mod_x || mod_y != m_mod_y || pixmap_name != m_filename || color_name != m_color || colorto_name != m_color_to) { m_changed = true; m_mod_x = mod_x; m_mod_y = mod_y; m_filename = pixmap_name; // these aren't quite right because of defaults set below m_color = color_name; m_color_to = colorto_name; } // set default value if we failed to load colors if (!(*this)->color().setFromString(color_name.c_str(), theme().screenNum())) (*this)->color().setFromString("darkgray", theme().screenNum()); if (!(*this)->colorTo().setFromString(colorto_name.c_str(), theme().screenNum())) (*this)->colorTo().setFromString("white", theme().screenNum()); if (((*this)->type() & FbTk::Texture::SOLID) != 0 && ((*this)->type() & FbTk::Texture::FLAT) == 0) (*this)->calcHiLoColors(theme().screenNum()); // we dont load any pixmap, using external command to set background pixmap (*this)->pixmap() = 0; } void setFromString(const char *str) { m_options = str; // save option string FbTk::ThemeItem::setFromString(str); } const std::string &filename() const { return m_filename; } const std::string &options() const { return m_options; } const std::string &colorString() const { return m_color; } const std::string &colorToString() const { return m_color_to; } const std::string &modX() const { return m_mod_x; } const std::string &modY() const { return m_mod_y; } bool changed() const { return m_changed; } bool loaded() const { return m_loaded; } void setApplied() { m_changed = false; } void unsetLoaded() { m_loaded = false; } private: std::string m_filename, m_options; std::string m_color, m_color_to; std::string m_mod_x, m_mod_y; bool m_changed, m_loaded; }; RootTheme::RootTheme(FbTk::ImageControl &image_control): FbTk::Theme(image_control.screenNumber()), m_background(new BackgroundItem(*this, "background", "Background")), m_opgc(RootWindow(FbTk::App::instance()->display(), image_control.screenNumber())), m_image_ctrl(image_control), m_first(true) { Display *disp = FbTk::App::instance()->display(); m_opgc.setForeground(WhitePixel(disp, screenNum())^BlackPixel(disp, screenNum())); m_opgc.setFunction(GXxor); m_opgc.setSubwindowMode(IncludeInferiors); FbTk::ThemeManager::instance().loadTheme(*this); } RootTheme::~RootTheme() { delete m_background; } bool RootTheme::fallback(FbTk::ThemeItem_base &item) { // if background theme item was not found in the // style then mark background as not loaded so // we can deal with it in reconfigureTheme() if (item.name() == "background") { // mark no background loaded m_background->unsetLoaded(); return true; } return false; } void RootTheme::reconfigTheme() { if (!m_background->loaded()) return; if (!m_first && !m_background->changed()) return; // // Else parse background from style // m_background->setApplied(); // handle background option in style std::string filename = m_background->filename(); FbTk::StringUtil::removeTrailingWhitespace(filename); FbTk::StringUtil::removeFirstWhitespace(filename); // if background argument is a file then // parse image options and call image setting // command specified in the resources std::string img_path = FbTk::Image::locateFile(filename); filename = FbTk::StringUtil::expandFilename(filename); std::string cmd = realProgramName("fbsetbg") + (m_first ? " -z " : " -Z "); // user explicitly requests NO background be set at all if (strstr(m_background->options().c_str(), "unset") != 0) { return; } // style doesn't wish to change the background if (strstr(m_background->options().c_str(), "none") != 0) { if (!m_first) return; } else if (!img_path.empty()) { // parse options if (strstr(m_background->options().c_str(), "tiled") != 0) cmd += "-t "; else if (strstr(m_background->options().c_str(), "centered") != 0) cmd += "-c "; else if (strstr(m_background->options().c_str(), "aspect") != 0) cmd += "-a "; else cmd += "-f "; cmd += img_path; } else if (FbTk::FileUtil::isDirectory(filename.c_str()) && strstr(m_background->options().c_str(), "random") != 0) { cmd += "-r " + filename; } else { // render normal texture with fbsetroot cmd += "-b "; // Make sure the color strings are valid, // so we dont pass any `commands` that can be executed bool color_valid = FbTk::Color::validColorString(m_background->colorString().c_str(), screenNum()); bool color_to_valid = FbTk::Color::validColorString(m_background->colorToString().c_str(), screenNum()); std::string options; if (color_valid) cmd += "-foreground '" + m_background->colorString() + "' "; if (color_to_valid) cmd += "-background '" + m_background->colorToString() + "' "; if (strstr(m_background->options().c_str(), "mod") != 0) cmd += "-mod " + m_background->modX() + " " + m_background->modY(); else if ((*m_background)->type() & FbTk::Texture::SOLID && color_valid) cmd += "-solid '" + m_background->colorString() + "' "; else if ((*m_background)->type() & FbTk::Texture::GRADIENT) { // remove whitespace from the options, since fbsetroot doesn't care // and dealing with sh and fbsetbg is impossible if we don't std::string options = m_background->options(); options = FbTk::StringUtil::replaceString(options, " ", ""); options = FbTk::StringUtil::replaceString(options, "\t", ""); cmd += "-gradient " + options; } } // call command with options FbCommands::ExecuteCmd exec(cmd, screenNum()); m_first = false; exec.execute(); } fluxbox-1.3.5/src/PaxHeaders.25974/RootTheme.hh0000644000175000017500000000013212106662425017272 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.199812462 30 ctime=1360750008.739811614 fluxbox-1.3.5/src/RootTheme.hh0000644000175000017500000000452412106662425015326 0ustar00mgmg00000000000000// RootTheme.hh // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef ROOTTHEME_HH #define ROOTTHEME_HH #include "FbTk/Theme.hh" #include "FbTk/GContext.hh" class BackgroundItem; class BScreen; namespace FbTk { class ResourceManager; class ImageControl; } /// Contains border color, border size, bevel width and opGC for objects like geometry window in BScreen class RootTheme: public FbTk::Theme, public FbTk::ThemeProxy { public: /// constructor /// @param resmanager resource manager for finding specific resources /// @param image_control for rendering background texture RootTheme(FbTk::ImageControl &image_control); ~RootTheme(); bool fallback(FbTk::ThemeItem_base &item); void reconfigTheme(); void reset() { m_first = true; reconfigTheme(); } GC opGC() const { return m_opgc.gc(); } virtual FbTk::Signal<> &reconfigSig() { return FbTk::Theme::reconfigSig(); } virtual RootTheme &operator *() { return *this; } virtual const RootTheme &operator *() const { return *this; } private: BackgroundItem *m_background;///< background image/texture FbTk::GContext m_opgc; FbTk::ImageControl &m_image_ctrl; ///< image control for rendering background texture bool m_first; }; #endif // ROOTTHEME_HH fluxbox-1.3.5/src/PaxHeaders.25974/main.cc0000644000175000017500000000013212106662425016276 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.199812462 30 ctime=1360750008.739811614 fluxbox-1.3.5/src/main.cc0000644000175000017500000004264312106662425014336 0ustar00mgmg00000000000000// main.cc for Fluxbox Window manager // Copyright (c) 2001 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // and 2003-2005 Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifdef HAVE_CONFIG_H #include "config.h" #endif // HAVE_CONFIG_H #include "fluxbox.hh" #include "version.h" #include "defaults.hh" #include "Debug.hh" #include "FbTk/Theme.hh" #include "FbTk/I18n.hh" #include "FbTk/CommandParser.hh" #include "FbTk/FileUtil.hh" #include "FbTk/StringUtil.hh" //use GNU extensions #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif // _GNU_SOURCE #ifdef HAVE_CSTDLIB #include #else #include #endif #ifdef HAVE_CSTRING #include #else #include #endif #ifdef HAVE_UNISTD_H #include #endif #ifdef HAVE_SYS_STAT_H #include #include #endif // HAVE_SYS_STAT_H #include #include #include using std::cout; using std::cerr; using std::endl; using std::string; using std::ostream; using std::ofstream; using std::streambuf; using std::auto_ptr; using std::out_of_range; using std::runtime_error; using std::bad_cast; using std::bad_alloc; using std::exception; static void showInfo(ostream &ostr) { _FB_USES_NLS; ostr << _FB_CONSOLETEXT(Common, FluxboxVersion, "Fluxbox version", "Fluxbox version heading") << ": " << __fluxbox_version < 0) ostr << _FB_CONSOLETEXT(Common, SvnRevision, "GIT Revision", "Revision number in GIT repositary") << ": " << gitrevision() << endl; #if defined(__DATE__) && defined(__TIME__) ostr << _FB_CONSOLETEXT(Common, Compiled, "Compiled", "Time fluxbox was compiled") << ": " << __DATE__ << " " << __TIME__ << endl; #endif #ifdef __fluxbox_compiler ostr << _FB_CONSOLETEXT(Common, Compiler, "Compiler", "Compiler used to build fluxbox") << ": " << __fluxbox_compiler << endl; #endif // __fluxbox_compiler #ifdef __fluxbox_compiler_version ostr << _FB_CONSOLETEXT(Common, CompilerVersion, "Compiler version", "Compiler version used to build fluxbox") << ": " << __fluxbox_compiler_version << endl; #endif // __fluxbox_compiler_version ostr << endl <<_FB_CONSOLETEXT(Common, Defaults, "Defaults", "Default values compiled in") << ": " << endl; ostr <<_FB_CONSOLETEXT(Common, DefaultMenuFile, " menu", "default menu file (right aligned - make sure same width as other default values)") << ": " << FbTk::StringUtil::expandFilename(DEFAULTMENU) << endl; ostr << _FB_CONSOLETEXT(Common, DefaultStyle, " style", "default style (right aligned - make sure same width as other default values)") << ": " << FbTk::StringUtil::expandFilename(DEFAULTSTYLE) << endl; ostr << _FB_CONSOLETEXT(Common, DefaultKeyFile, " keys", "default key file (right aligned - make sure same width as other default values)") << ": " << FbTk::StringUtil::expandFilename(DEFAULTKEYSFILE) << endl; ostr << _FB_CONSOLETEXT(Common, DefaultInitFile, " init", "default init file (right aligned - make sure same width as other default values)") << ": " << FbTk::StringUtil::expandFilename(DEFAULT_INITFILE) << endl; #ifdef NLS ostr << _FB_CONSOLETEXT(Common, DefaultLocalePath, " nls", "location for localization files (right aligned - make sure same width as other default values)") << ": " << FbTk::StringUtil::expandFilename(LOCALEPATH) << endl; #endif const char NOT[] = "-"; ostr << endl << _FB_CONSOLETEXT(Common, CompiledOptions, "Compiled options", "Options used when compiled") << " (" << NOT << " => " << _FB_CONSOLETEXT(Common, Disabled, "disabled", "option is turned off") << "): " << endl << /**** NOTE: This list is in alphabetical order! ****/ #ifndef HAVE_FRIBIDI NOT << #endif "BIDI" << endl << #ifndef DEBUG NOT << #endif // DEBUG "DEBUG" << endl << #ifndef USE_EWMH NOT << #endif // USE_EWMH "EWMH" << endl << #ifndef HAVE_IMLIB2 NOT<< #endif // HAVE_IMLIB2 "IMLIB2" << endl << #ifndef NLS NOT<< #endif // NLS "NLS" << endl << #ifndef REMEMBER NOT << #endif // REMEMBER "REMEMBER" << endl << #ifndef HAVE_XRENDER NOT << #endif // HAVE_XRENDER "RENDER" << endl << #ifndef SHAPE NOT << #endif // SHAPE "SHAPE" << endl << #ifndef USE_SLIT NOT << #endif // SLIT "SLIT" << endl << #ifndef USE_SYSTRAY NOT << #endif "SYSTEMTRAY" << endl << #ifndef USE_TOOLBAR NOT << #endif // USE_TOOLBAR "TOOLBAR" << endl << #ifndef HAVE_RANDR NOT << #endif "RANDR" << #ifdef HAVE_RANDR1_2 "1.2" << #endif endl << #ifndef USE_XFT NOT << #endif // USE_XFT "XFT" << endl << #ifndef XINERAMA NOT << #endif // XINERAMA "XINERAMA" << endl << #ifndef USE_XMB NOT << #endif // USE_XMB "XMB" << endl << #ifndef HAVE_XPM NOT << #endif // HAVE_XPM "XPM" << endl << endl; } struct Options { Options() : xsync(false) { const char* env; env = getenv("DISPLAY"); if (env && strlen(env) > 0) { session_display.assign(env); } #ifdef _WIN32 env = getenv("USERPROFILE"); #else env = getenv("HOME"); #endif if (env && strlen(env) > 0) { rc_path.assign(std::string(env) + "/." + realProgramName("fluxbox")); rc_file = rc_path + "/init"; } } std::string session_display; std::string rc_path; std::string rc_file; std::string log_filename; bool xsync; }; static void parseOptions(int argc, char** argv, Options& opts) { _FB_USES_NLS; int i; for (i = 1; i < argc; ++i) { string arg(argv[i]); if (arg == "-rc" || arg == "--rc") { // look for alternative rc file to use if ((++i) >= argc) { cerr<<_FB_CONSOLETEXT(main, RCRequiresArg, "error: '-rc' requires an argument", "the -rc option requires a file argument")<= argc) { cerr<<_FB_CONSOLETEXT(main, DISPLAYRequiresArg, "error: '-display' requires an argument", "")<= argc) { cerr<<_FB_CONSOLETEXT(main, LOGRequiresArg, "error: '-log' needs an argument", "")<\t\tuse display connection.\n" "-screen \trun on specified screens only.\n" "-rc \t\t\tuse alternate resource file.\n" "-version\t\t\tdisplay version and exit.\n" "-info\t\t\t\tdisplay some useful information.\n" "-list-commands\t\t\tlist all valid key commands.\n" "-sync\t\t\t\tsynchronize with X server for debugging.\n" "-log \t\t\tlog output to file.\n" "-help\t\t\t\tdisplay this help text and exit.\n\n", "Main usage string. Please lay it out nicely. There is one %s that is given the version").c_str(), __fluxbox_version, "2001-2011"); exit(EXIT_SUCCESS); } else if (arg == "-info" || arg == "-i" || arg == "--info") { showInfo(cout); exit(EXIT_SUCCESS); } else if (arg == "-list-commands" || arg == "--list-commands") { FbTk::CommandParser::CreatorMap cmap = FbTk::CommandParser::instance().creatorMap(); FbTk::CommandParser::CreatorMap::const_iterator it = cmap.begin(); const FbTk::CommandParser::CreatorMap::const_iterator it_end = cmap.end(); for (; it != it_end; ++it) cout << it->first << endl; exit(EXIT_SUCCESS); } else if (arg == "-verbose" || arg == "--verbose") { FbTk::ThemeManager::instance().setVerbose(true); } } } #ifdef _WIN32 /** Wrapper function for Windows builds - mkdir takes only one param. */ static int mkdir(const char *dirname, int /*permissions*/) { return mkdir(dirname); } #endif /** setup the configutation files in home directory */ void setupConfigFiles(const std::string& dirname, const std::string& rc) { _FB_USES_NLS; const bool has_dir = FbTk::FileUtil::isDirectory(dirname.c_str()); struct CFInfo { bool create_file; const char* default_name; const std::string filename; } cfiles[] = { { !has_dir, DEFAULT_INITFILE, rc }, { !has_dir, DEFAULTKEYSFILE, dirname + "/keys" }, { !has_dir, DEFAULTMENU, dirname + "/menu" }, { !has_dir, DEFAULT_APPSFILE, dirname + "/apps" }, { !has_dir, DEFAULT_OVERLAY, dirname + "/overlay" }, { !has_dir, DEFAULT_WINDOWMENU, dirname + "/windowmenu" } }; const size_t nr_of_cfiles = sizeof(cfiles)/sizeof(CFInfo); if (has_dir) { // check if anything with these names exists, if not create new for (size_t i = 0; i < nr_of_cfiles; ++i) { cfiles[i].create_file = access(cfiles[i].filename.c_str(), F_OK); } } else { fbdbg << "Creating dir: " << dirname << endl; if (mkdir(dirname.c_str(), 0700)) { fprintf(stderr, _FB_CONSOLETEXT(Fluxbox, ErrorCreatingDirectory, "Can't create %s directory", "Can't create a directory, one %s for directory name").c_str(), dirname.c_str()); cerr << endl; return; } } bool sync_fs = false; // copy default files if needed for (size_t i = 0; i < nr_of_cfiles; ++i) { if (cfiles[i].create_file) { FbTk::FileUtil::copyFile(FbTk::StringUtil::expandFilename(cfiles[i].default_name).c_str(), cfiles[i].filename.c_str()); sync_fs = true; } } #ifdef HAVE_SYNC if (sync_fs) { sync(); } #endif } // configs might be out of date, so run fluxbox-update_configs // if necassary. void updateConfigFilesIfNeeded(const std::string& rc_file) { const int CONFIG_VERSION = 13; // TODO: move this to 'defaults.hh' or 'config.h' FbTk::ResourceManager r_mgr(rc_file.c_str(), false); FbTk::Resource c_version(r_mgr, 0, "session.configVersion", "Session.ConfigVersion"); if (!r_mgr.load(rc_file.c_str())) { _FB_USES_NLS; cerr << _FB_CONSOLETEXT(Fluxbox, CantLoadRCFile, "Failed to load database", "") << ": " << rc_file << endl; return; } if (*c_version < CONFIG_VERSION) { fbdbg << "updating config files from version " << *c_version << " to " << CONFIG_VERSION << endl; string commandargs = realProgramName("fluxbox-update_configs"); commandargs += " -rc " + rc_file; if (system(commandargs.c_str())) { fbdbg << "running '" << commandargs << "' failed." << endl; } #ifdef HAVE_SYNC sync(); #endif // HAVE_SYNC } } int main(int argc, char **argv) { FbTk::NLSInit("fluxbox.cat"); Options opts; parseOptions(argc, argv, opts); #ifdef __EMX__ _chdir2(getenv("X11ROOT")); #endif // __EMX__ streambuf *outbuf = 0; streambuf *errbuf = 0; ofstream log_file(opts.log_filename.c_str()); _FB_USES_NLS; // setup log file if (log_file.is_open()) { cerr << _FB_CONSOLETEXT(main, LoggingTo, "Logging to", "Logging to a file") << ": " << opts.log_filename << endl; log_file <<"------------------------------------------" << endl; log_file << _FB_CONSOLETEXT(main, LogFile, "Log File", "") << ": " << opts.log_filename < fluxbox; try { fluxbox.reset(new Fluxbox(argc, argv, opts.session_display, opts.rc_path, opts.rc_file, opts.xsync)); fluxbox->eventLoop(); exitcode = EXIT_SUCCESS; } catch (out_of_range &oor) { cerr <<"Fluxbox: " << _FB_CONSOLETEXT(main, ErrorOutOfRange, "Out of range", "Error message") << ": " << oor.what() << endl; } catch (runtime_error &re) { cerr << "Fluxbox: " << _FB_CONSOLETEXT(main, ErrorRuntime, "Runtime error", "Error message") << ": " << re.what() << endl; } catch (bad_cast &bc) { cerr << "Fluxbox: " << _FB_CONSOLETEXT(main, ErrorBadCast, "Bad cast", "Error message") << ": " << bc.what() << endl; } catch (bad_alloc &ba) { cerr << "Fluxbox: " << _FB_CONSOLETEXT(main, ErrorBadAlloc, "Bad Alloc", "Error message") << ": " << ba.what() << endl; } catch (exception &e) { cerr << "Fluxbox: " << _FB_CONSOLETEXT(main, ErrorStandardException, "Standard Exception", "Error message") << ": " << e.what() << endl; } catch (string & error_str) { cerr << _FB_CONSOLETEXT(Common, Error, "Error", "Error message header") << ": " << error_str << endl; } catch (...) { cerr << "Fluxbox: " << _FB_CONSOLETEXT(main, ErrorUnknown, "Unknown error", "Error message") << "." << endl; abort(); } bool restarting = false; string restart_argument; if (fluxbox.get()) { restarting = fluxbox->isRestarting(); restart_argument = fluxbox->getRestartArgument(); } // destroy fluxbox fluxbox.reset(0); // restore cout and cin streams if (outbuf != 0) cout.rdbuf(outbuf); if (errbuf != 0) cerr.rdbuf(errbuf); FbTk::FbStringUtil::shutdown(); if (restarting) { if (!restart_argument.empty()) { const char *shell = getenv("SHELL"); if (!shell) shell = "/bin/sh"; execlp(shell, shell, "-c", restart_argument.c_str(), (const char *) NULL); perror(restart_argument.c_str()); } // fall back in case the above execlp doesn't work execvp(argv[0], argv); perror(argv[0]); const char *basename = FbTk::StringUtil::basename(argv[0]).c_str(); execvp(basename, argv); perror(basename); } return exitcode; } fluxbox-1.3.5/src/PaxHeaders.25974/Keys.hh0000644000175000017500000000013212106662425016277 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.199812462 30 ctime=1360750008.739811614 fluxbox-1.3.5/src/Keys.hh0000644000175000017500000000775012106662425014337 0ustar00mgmg00000000000000// Keys.hh for Fluxbox - an X11 Window manager // Copyright (c) 2001 - 2003 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef KEYS_HH #define KEYS_HH #include "FbTk/NotCopyable.hh" #include "FbTk/RefCount.hh" #include #include #include class WinClient; namespace FbTk { class EventHandler; class AutoReloadHelper; } class Keys:private FbTk::NotCopyable { public: // contexts for events // it's ok if there is overlap; it will be worked out in t_key::find() // eventHandlers should submit bitwise-or of contexts the event happened in enum { GLOBAL = 1 << 0, ON_DESKTOP = 1 << 1, ON_TOOLBAR = 1 << 2, ON_ICONBUTTON = 1 << 3, ON_TITLEBAR = 1 << 4, ON_WINDOW = 1 << 5, ON_WINDOWBORDER = 1 << 6, ON_LEFTGRIP = 1 << 7, ON_RIGHTGRIP = 1 << 8, ON_TAB = 1 << 9, ON_SLIT = 1 << 10 // and so on... }; /// constructor explicit Keys(); /// destructor ~Keys(); /// bind a key action from a string /// @return false on failure bool addBinding(const std::string &binding); /** do action from XKeyEvent; return false if not bound to anything */ bool doAction(int type, unsigned int mods, unsigned int key, int context, WinClient *current = 0, Time time = 0); /// register a window so that proper keys/buttons get grabbed on it void registerWindow(Window win, FbTk::EventHandler &handler, int context); /// unregister window void unregisterWindow(Window win); /// grab keys again when keymap changes void regrab(); const std::string& filename() const { return m_filename; } /** Load configuration from file */ void reload(); /** Reload configuration if keys file has changed */ void reconfigure(); void keyMode(const std::string& keyMode); bool inKeychain() const { return saved_keymode != 0; } private: class t_key; // helper class to build a 'keytree' typedef FbTk::RefCount RefKey; typedef std::map keyspace_t; typedef std::map WindowMap; typedef std::map HandlerMap; void deleteTree(); void grabKey(unsigned int key, unsigned int mod); void ungrabKeys(); void grabButton(unsigned int button, unsigned int mod, int context); void ungrabButtons(); void grabWindow(Window win); // Load default keybindings for when there are errors loading the keys file void loadDefaults(); void setKeyMode(const FbTk::RefCount &keyMode); // member variables std::string m_filename; FbTk::AutoReloadHelper* m_reloader; RefKey m_keylist; keyspace_t m_map; RefKey next_key; RefKey saved_keymode; WindowMap m_window_map; HandlerMap m_handler_map; }; #endif // KEYS_HH fluxbox-1.3.5/src/PaxHeaders.25974/Keys.cc0000644000175000017500000000013212106662425016265 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.195812462 30 ctime=1360750008.739811614 fluxbox-1.3.5/src/Keys.cc0000644000175000017500000005050012106662425014314 0ustar00mgmg00000000000000// Keys.cc for Fluxbox - an X11 Window manager // Copyright (c) 2001 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "Keys.hh" #include "fluxbox.hh" #include "Screen.hh" #include "WinClient.hh" #include "WindowCmd.hh" #include "Debug.hh" #include "FbTk/EventManager.hh" #include "FbTk/StringUtil.hh" #include "FbTk/FileUtil.hh" #include "FbTk/App.hh" #include "FbTk/Command.hh" #include "FbTk/RefCount.hh" #include "FbTk/KeyUtil.hh" #include "FbTk/CommandParser.hh" #include "FbTk/LogicCommands.hh" #include "FbTk/I18n.hh" #include "FbTk/AutoReloadHelper.hh" #include "FbTk/STLUtil.hh" #ifdef HAVE_CONFIG_H #include "config.h" #endif // HAVE_CONFIG_H #ifdef HAVE_CCTYPE #include #else #include #endif // HAVE_CCTYPE #ifdef HAVE_CSTDIO #include #else #include #endif #ifdef HAVE_CSTDLIB #include #else #include #endif #ifdef HAVE_CERRNO #include #else #include #endif #ifdef HAVE_CSTRING #include #else #include #endif #ifdef HAVE_SYS_TYPES_H #include #endif // HAVE_SYS_TYPES_H #ifdef HAVE_SYS_WAIT_H #include #endif // HAVE_SYS_WAIT_H #ifdef HAVE_UNISTD_H #include #endif // HAVE_UNISTD_H #ifdef HAVE_SYS_STAT_H #include #endif // HAVE_SYS_STAT_H #include #include #include #include #include #include #include #include #include using std::cerr; using std::endl; using std::string; using std::vector; using std::ifstream; using std::pair; using FbTk::STLUtil::destroyAndClearSecond; namespace { // enforces the linking of FbTk/LogicCommands FbTk::Command* link_helper = FbTk::IfCommand::parse("", "", false); // candidate for FbTk::StringUtil ? int extractKeyFromString(const std::string& in, const char* start_pattern, unsigned int& key) { int ret = 0; if (strstr(in.c_str(), start_pattern) != 0) { unsigned int tmp_key = 0; if (FbTk::StringUtil::extractNumber(in.substr(strlen(start_pattern)), tmp_key)) { key = tmp_key; ret = 1; } } return ret; } } // end of anonymous namespace // helper class 'keytree' class Keys::t_key { public: // typedefs typedef std::list keylist_t; // constructor / destructor t_key(int type = 0, unsigned int mod = 0, unsigned int key = 0, const std::string &key_str = std::string(), int context = 0, bool isdouble = false); RefKey find(int type_, unsigned int mod_, unsigned int key_, int context_, bool isdouble_) { // t_key ctor sets context_ of 0 to GLOBAL, so we must here too context_ = context_ ? context_ : GLOBAL; keylist_t::iterator it = keylist.begin(), it_end = keylist.end(); for (; it != it_end; ++it) { if (*it && (*it)->type == type_ && (*it)->key == key_ && ((*it)->context & context_) > 0 && isdouble_ == (*it)->isdouble && (*it)->mod == FbTk::KeyUtil::instance().isolateModifierMask(mod_)) return *it; } return RefKey(); } // member variables int type; // KeyPress or ButtonPress unsigned int mod; unsigned int key; // key code or button number std::string key_str; // key-symbol, needed for regrab() int context; // ON_TITLEBAR, etc.: bitwise-or of all desired contexts bool isdouble; FbTk::RefCount > m_command; keylist_t keylist; }; Keys::t_key::t_key(int type_, unsigned int mod_, unsigned int key_, const std::string &key_str_, int context_, bool isdouble_) : type(type_), mod(mod_), key(key_), key_str(key_str_), context(context_), isdouble(isdouble_), m_command(0) { context = context_ ? context_ : GLOBAL; } Keys::Keys(): m_reloader(new FbTk::AutoReloadHelper()), m_keylist(0), next_key(0), saved_keymode(0) { m_reloader->setReloadCmd(FbTk::RefCount >(new FbTk::SimpleCommand(*this, &Keys::reload))); } Keys::~Keys() { ungrabKeys(); ungrabButtons(); deleteTree(); delete m_reloader; } /// Destroys the keytree void Keys::deleteTree() { m_map.clear(); m_keylist.reset(); next_key.reset(); saved_keymode.reset(); } // keys are only grabbed in global context void Keys::grabKey(unsigned int key, unsigned int mod) { WindowMap::iterator it = m_window_map.begin(); WindowMap::iterator it_end = m_window_map.end(); for (; it != it_end; ++it) { if ((it->second & Keys::GLOBAL) > 0) FbTk::KeyUtil::grabKey(key, mod, it->first); } } // keys are only grabbed in global context void Keys::ungrabKeys() { WindowMap::iterator it = m_window_map.begin(); WindowMap::iterator it_end = m_window_map.end(); for (; it != it_end; ++it) { if ((it->second & Keys::GLOBAL) > 0) FbTk::KeyUtil::ungrabKeys(it->first); } } // ON_DESKTOP context doesn't need to be grabbed void Keys::grabButton(unsigned int button, unsigned int mod, int context) { WindowMap::iterator it = m_window_map.begin(); WindowMap::iterator it_end = m_window_map.end(); for (; it != it_end; ++it) { if ((context & it->second & ~Keys::ON_DESKTOP) > 0) FbTk::KeyUtil::grabButton(button, mod, it->first, ButtonPressMask|ButtonReleaseMask|ButtonMotionMask); } } void Keys::ungrabButtons() { WindowMap::iterator it = m_window_map.begin(); WindowMap::iterator it_end = m_window_map.end(); for (; it != it_end; ++it) FbTk::KeyUtil::ungrabButtons(it->first); } void Keys::grabWindow(Window win) { if (!m_keylist) return; // make sure the window is in our list WindowMap::iterator win_it = m_window_map.find(win); if (win_it == m_window_map.end()) return; m_handler_map[win]->grabButtons(); t_key::keylist_t::iterator it = m_keylist->keylist.begin(); t_key::keylist_t::iterator it_end = m_keylist->keylist.end(); for (; it != it_end; ++it) { // keys are only grabbed in global context if ((win_it->second & Keys::GLOBAL) > 0 && (*it)->type == KeyPress) FbTk::KeyUtil::grabKey((*it)->key, (*it)->mod, win); // ON_DESKTOP buttons don't need to be grabbed else if ((win_it->second & (*it)->context & ~Keys::ON_DESKTOP) > 0) { if ((*it)->type == ButtonPress || (*it)->type == ButtonRelease || (*it)->type == MotionNotify) { FbTk::KeyUtil::grabButton((*it)->key, (*it)->mod, win, ButtonPressMask|ButtonReleaseMask|ButtonMotionMask); } } } } /** Load and grab keys TODO: error checking */ void Keys::reload() { // an intentionally empty file will still have one root mapping bool firstload = m_map.empty(); if (m_filename.empty()) { if (firstload) loadDefaults(); return; } FbTk::App::instance()->sync(false); if (! FbTk::FileUtil::isRegularFile(m_filename.c_str())) { return; } // open the file ifstream infile(m_filename.c_str()); if (!infile) { if (firstload) loadDefaults(); return; // failed to open file } // free memory of previous grabs deleteTree(); m_map["default:"] = FbTk::makeRef(); unsigned int current_line = 0; //so we can tell the user where the fault is while (!infile.eof()) { string linebuffer; getline(infile, linebuffer); current_line++; if (!addBinding(linebuffer)) { _FB_USES_NLS; cerr<<_FB_CONSOLETEXT(Keys, InvalidKeyMod, "Keys: Invalid key/modifier on line", "A bad key/modifier string was found on line (number following)")<<" "<< current_line<<"): "<(); addBinding("OnDesktop Mouse1 :HideMenus"); addBinding("OnDesktop Mouse2 :WorkspaceMenu"); addBinding("OnDesktop Mouse3 :RootMenu"); addBinding("OnTitlebar Mouse3 :WindowMenu"); addBinding("OnWindow Mouse1 :MacroCmd {Focus} {Raise} {StartMoving}"); addBinding("OnTitlebar Mouse1 :MacroCmd {Focus} {Raise} {ActivateTab}"); addBinding("OnTitlebar Move1 :StartMoving"); addBinding("OnLeftGrip Move1 :StartResizing bottomleft"); addBinding("OnRightGrip Move1 :StartResizing bottomright"); addBinding("OnWindowBorder Move1 :StartMoving"); addBinding("Mod1 Tab :NextWindow (workspace=[current])"); addBinding("Mod1 Shift Tab :PrevWindow (workspace=[current])"); keyMode("default"); } bool Keys::addBinding(const string &linebuffer) { vector val; // Parse arguments FbTk::StringUtil::stringtok(val, linebuffer.c_str()); // must have at least 1 argument if (val.empty()) return true; // empty lines are valid. if (val[0][0] == '#' || val[0][0] == '!' ) //the line is commented return true; // still a valid line. unsigned int key = 0, mod = 0; int type = 0, context = 0; bool isdouble = false; size_t argc = 0; RefKey current_key = m_map["default:"]; RefKey first_new_keylist = current_key, first_new_key; if (val[0][val[0].length()-1] == ':') { argc++; keyspace_t::iterator it = m_map.find(val[0]); if (it == m_map.end()) m_map[val[0]] = FbTk::makeRef(); current_key = m_map[val[0]]; } // for each argument for (; argc < val.size(); argc++) { std::string arg = FbTk::StringUtil::toLower(val[argc]); if (arg[0] != ':') { // parse key(s) std::string key_str; int tmpmod = FbTk::KeyUtil::getModifier(arg.c_str()); if(tmpmod) mod |= tmpmod; //If it's a modifier else if (arg == "ondesktop") context |= ON_DESKTOP; else if (arg == "ontoolbar") context |= ON_TOOLBAR; else if (arg == "onwindow") context |= ON_WINDOW; else if (arg == "ontitlebar") context |= ON_TITLEBAR; else if (arg == "onwindowborder") context |= ON_WINDOWBORDER; else if (arg == "onleftgrip") context |= ON_LEFTGRIP; else if (arg == "onrightgrip") context |= ON_RIGHTGRIP; else if (arg == "ontab") context |= ON_TAB; else if (arg == "double") isdouble = true; else if (arg != "none") { if (arg == "focusin") { context = ON_WINDOW; mod = key = 0; type = FocusIn; } else if (arg == "focusout") { context = ON_WINDOW; mod = key = 0; type = FocusOut; } else if (arg == "changeworkspace") { context = ON_DESKTOP; mod = key = 0; type = FocusIn; } else if (arg == "mouseover") { type = EnterNotify; if (!(context & (ON_WINDOW|ON_TOOLBAR))) context |= ON_WINDOW; key = 0; } else if (arg == "mouseout") { type = LeaveNotify; if (!(context & (ON_WINDOW|ON_TOOLBAR))) context |= ON_WINDOW; key = 0; // check if it's a mouse button } else if (extractKeyFromString(arg, "mouse", key)) { type = ButtonPress; // fluxconf mangles things like OnWindow Mouse# to Mouse#ow if (strstr(arg.c_str(), "top")) context = ON_DESKTOP; else if (strstr(arg.c_str(), "ebar")) context = ON_TITLEBAR; else if (strstr(arg.c_str(), "bar")) context = ON_TOOLBAR; else if (strstr(arg.c_str(), "ow")) context = ON_WINDOW; } else if (extractKeyFromString(arg, "click", key)) { type = ButtonRelease; } else if (extractKeyFromString(arg, "move", key)) { type = MotionNotify; } else if ((key = FbTk::KeyUtil::getKey(val[argc].c_str()))) { // convert from string symbol type = KeyPress; key_str = val[argc]; // keycode covers the following three two-byte cases: // 0x - hex // +[1-9] - number between +1 and +9 // numbers 10 and above // } else { FbTk::StringUtil::extractNumber(arg, key); type = KeyPress; } if (key == 0 && (type == KeyPress || type == ButtonPress || type == ButtonRelease)) return false; if (type != ButtonPress) isdouble = false; if (!first_new_key) { first_new_keylist = current_key; current_key = current_key->find(type, mod, key, context, isdouble); if (!current_key) { first_new_key.reset( new t_key(type, mod, key, key_str, context, isdouble) ); current_key = first_new_key; } else if (current_key->m_command) // already being used return false; } else { RefKey temp_key( new t_key(type, mod, key, key_str, context, isdouble) ); current_key->keylist.push_back(temp_key); current_key = temp_key; } mod = 0; key = 0; type = 0; context = 0; isdouble = false; } } else { // parse command line if (!first_new_key) return false; const char *str = FbTk::StringUtil::strcasestr(linebuffer.c_str(), val[argc].c_str()); if (str) // +1 to skip ':' current_key->m_command.reset(FbTk::CommandParser::instance().parse(str + 1)); if (!str || current_key->m_command == 0 || mod) return false; // success first_new_keylist->keylist.push_back(first_new_key); return true; } // end if } // end for return false; } // return true if bound to a command, else false bool Keys::doAction(int type, unsigned int mods, unsigned int key, int context, WinClient *current, Time time) { if (!m_keylist) return false; static Time last_button_time = 0; static unsigned int last_button = 0; // need to remember whether or not this is a double-click, e.g. when // double-clicking on the titlebar when there's an OnWindow Double command // we just don't update it if timestamp is the same static bool double_click = false; // actual value used for searching bool isdouble = false; if (type == ButtonPress) { if (time > last_button_time) { double_click = (time - last_button_time < Fluxbox::instance()->getDoubleClickInterval()) && last_button == key; } last_button_time = time; last_button = key; isdouble = double_click; } if (!next_key) next_key = m_keylist; mods = FbTk::KeyUtil::instance().cleanMods(mods); RefKey temp_key = next_key->find(type, mods, key, context, isdouble); // just because we double-clicked doesn't mean we shouldn't look for single // click commands if (!temp_key && isdouble) temp_key = next_key->find(type, mods, key, context, false); if (temp_key && !temp_key->keylist.empty()) { // emacs-style if (!saved_keymode) saved_keymode = m_keylist; next_key = temp_key; setKeyMode(next_key); return true; } if (!temp_key || temp_key->m_command == 0) { if (type == KeyPress && !FbTk::KeyUtil::instance().keycodeToModmask(key)) { // if we're in the middle of an emacs-style keychain, exit it next_key.reset(); if (saved_keymode) { setKeyMode(saved_keymode); saved_keymode.reset(); } } return false; } // if focus changes, windows will get NotifyWhileGrabbed, // which they tend to ignore if (type == KeyPress) XUngrabKeyboard(Fluxbox::instance()->display(), CurrentTime); WinClient *old = WindowCmd::client(); WindowCmd::setClient(current); temp_key->m_command->execute(); WindowCmd::setClient(old); if (saved_keymode) { if (next_key == m_keylist) // don't reset keymode if command changed it setKeyMode(saved_keymode); saved_keymode.reset(); } next_key.reset(); return true; } /// adds the window to m_window_map, so we know to grab buttons on it void Keys::registerWindow(Window win, FbTk::EventHandler &h, int context) { m_window_map[win] = context; m_handler_map[win] = &h; grabWindow(win); } /// remove the window from the window map, probably being deleted void Keys::unregisterWindow(Window win) { FbTk::KeyUtil::ungrabKeys(win); FbTk::KeyUtil::ungrabButtons(win); m_handler_map.erase(win); m_window_map.erase(win); } /** deletes the tree and load configuration returns true on success else false */ void Keys::reconfigure() { m_filename = FbTk::StringUtil::expandFilename(Fluxbox::instance()->getKeysFilename()); m_reloader->setMainFile(m_filename); m_reloader->checkReload(); } void Keys::regrab() { setKeyMode(m_keylist); } void Keys::keyMode(const string& keyMode) { keyspace_t::iterator it = m_map.find(keyMode + ":"); if (it == m_map.end()) setKeyMode(m_map["default:"]); else setKeyMode(it->second); } void Keys::setKeyMode(const FbTk::RefCount &keyMode) { ungrabKeys(); ungrabButtons(); // notify handlers that their buttons have been ungrabbed HandlerMap::iterator h_it = m_handler_map.begin(), h_it_end = m_handler_map.end(); for (; h_it != h_it_end; ++h_it) h_it->second->grabButtons(); t_key::keylist_t::iterator it = keyMode->keylist.begin(); t_key::keylist_t::iterator it_end = keyMode->keylist.end(); for (; it != it_end; ++it) { RefKey t = *it; if (t->type == KeyPress) { if (!t->key_str.empty()) { int key = FbTk::KeyUtil::getKey(t->key_str.c_str()); t->key = key; } grabKey(t->key, t->mod); } else { grabButton(t->key, t->mod, t->context); } } m_keylist = keyMode; } fluxbox-1.3.5/src/PaxHeaders.25974/fluxbox.hh0000644000175000017500000000013212106662425017053 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.195812462 30 ctime=1360750008.743811614 fluxbox-1.3.5/src/fluxbox.hh0000644000175000017500000002350712106662425015111 0ustar00mgmg00000000000000// fluxbox.hh for Fluxbox Window Manager // Copyright (c) 2001 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // blackbox.hh for Blackbox - an X11 Window manager // Copyright (c) 1997 - 2000 Brad Hughes (bhughes at tcac.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FLUXBOX_HH #define FLUXBOX_HH #include "FbTk/App.hh" #include "FbTk/Resource.hh" #include "FbTk/Timer.hh" #include "FbTk/SignalHandler.hh" #include "FbTk/Signal.hh" #include "AttentionNoticeHandler.hh" #include #ifdef HAVE_CSTDIO #include #else #include #endif #ifdef HAVE_CONFIG_H #include "config.h" #endif // HAVE_CONFIG_H #ifdef TIME_WITH_SYS_TIME #include #include #else // !TIME_WITH_SYS_TIME #ifdef HAVE_SYS_TIME_H #include #else // !HAVE_SYS_TIME_H #include #endif // HAVE_SYS_TIME_H #endif // TIME_WITH_SYS_TIME #include #include #include #include #include class AtomHandler; class FluxboxWindow; class WinClient; class Keys; class BScreen; class FbAtoms; /// main class for the window manager. /** singleton type */ class Fluxbox : public FbTk::App, public FbTk::SignalEventHandler, private FbTk::SignalTracker { public: Fluxbox(int argc, char **argv, const std::string& dpy_name, const std::string& rc_path, const std::string& rc_filename, bool xsync = false); virtual ~Fluxbox(); static Fluxbox *instance(); /// main event loop void eventLoop(); bool validateWindow(Window win) const; bool validateClient(const WinClient *client) const; void grab(); void ungrab(); Keys *keys() { return m_key.get(); } Atom getFluxboxPidAtom() const { return m_fluxbox_pid; } // Not currently implemented until we decide how it'll be used //WinClient *searchGroup(Window); WinClient *searchWindow(Window); void initScreen(BScreen *screen); BScreen *searchScreen(Window w); unsigned int getDoubleClickInterval() const { return *m_rc_double_click_interval; } Time getLastTime() const { return m_last_time; } AtomHandler *getAtomHandler(const std::string &name); void addAtomHandler(AtomHandler *atomh); void removeAtomHandler(AtomHandler *atomh); /// obsolete enum TabsAttachArea{ATTACH_AREA_WINDOW= 0, ATTACH_AREA_TITLEBAR}; bool getIgnoreBorder() const { return *m_rc_ignoreborder; } bool &getPseudoTrans() { return *m_rc_pseudotrans; } Fluxbox::TabsAttachArea getTabsAttachArea() const { return *m_rc_tabs_attach_area; } const std::string &getStyleFilename() const { return *m_rc_stylefile; } const std::string &getStyleOverlayFilename() const { return *m_rc_styleoverlayfile; } const std::string &getMenuFilename() const { return *m_rc_menufile; } const std::string &getSlitlistFilename() const { return *m_rc_slitlistfile; } const std::string &getAppsFilename() const { return *m_rc_appsfile; } const std::string &getKeysFilename() const { return *m_rc_keyfile; } int colorsPerChannel() const { return *m_rc_colors_per_channel; } int getTabsPadding() const { return *m_rc_tabs_padding; } time_t getAutoRaiseDelay() const { return *m_rc_auto_raise_delay; } unsigned int getCacheLife() const { return *m_rc_cache_life * 60000; } unsigned int getCacheMax() const { return *m_rc_cache_max; } void maskWindowEvents(Window w, FluxboxWindow *bw) { m_masked = w; m_masked_window = bw; } void shutdown(); void load_rc(BScreen &scr); void saveStyleFilename(const char *val) { m_rc_stylefile = (val == 0 ? "" : val); } void saveWindowSearch(Window win, WinClient *winclient); // some windows relate to the group, not the client, so we record separately // searchWindow on these windows will give the active client in the group void saveWindowSearchGroup(Window win, FluxboxWindow *fbwin); void saveGroupSearch(Window win, WinClient *winclient); void save_rc(); void removeWindowSearch(Window win); void removeWindowSearchGroup(Window win); void removeGroupSearch(Window win); void restart(const char *command = 0); void reconfigure(); /// handle any system signal sent to the application void handleSignal(int signum); /// todo, remove this. just temporary void updateFrameExtents(FluxboxWindow &win); void attachSignals(FluxboxWindow &win); void attachSignals(WinClient &winclient); void timed_reconfigure(); void revertFocus(); void setShowingDialog(bool value) { m_showing_dialog = value; if (!value) revertFocus(); } bool isStartup() const { return m_starting; } bool isRestarting() const { return m_restarting; } const std::string &getRestartArgument() const { return m_restart_argument; } /// get screen from number BScreen *findScreen(int num); typedef std::list ScreenList; const ScreenList screenList() const { return m_screen_list; } bool haveShape() const; int shapeEventbase() const; std::string getDefaultDataFilename(const char *name) const; // screen mouse was in at last key event BScreen *mouseScreen() { return m_mousescreen; } // screen of window that last key event (i.e. focused window) went to BScreen *keyScreen() { return m_keyscreen; } const XEvent &lastEvent() const { return m_last_event; } AttentionNoticeHandler &attentionHandler() { return m_attention_handler; } private: std::string getRcFilename(); void load_rc(); void real_reconfigure(); void handleEvent(XEvent *xe); void handleUnmapNotify(XUnmapEvent &ue); void handleClientMessage(XClientMessageEvent &ce); /// Called when workspace count on a specific screen changed. void workspaceCountChanged( BScreen& screen ); /// Called when workspace was switched void workspaceChanged(BScreen& screen); /// Called when workspace names changed void workspaceNamesChanged(BScreen &screen); /// Called when the client list changed. void clientListChanged(BScreen &screen); /// Called when the focused window changed on a screen void focusedWindowChanged(BScreen &screen, FluxboxWindow* win, WinClient* client); /// Called when the workspace area changed. void workspaceAreaChanged(BScreen &screen); /// Called when a window (FluxboxWindow) dies void windowDied(Focusable &focusable); /// Called when a client (WinClient) dies void clientDied(Focusable &focusable); /// Called when a window changes workspace void windowWorkspaceChanged(FluxboxWindow &win); /// Called when a window changes state void windowStateChanged(FluxboxWindow &win); /// Called when a window layer changes void windowLayerChanged(FluxboxWindow &win); std::auto_ptr m_fbatoms; FbTk::ResourceManager m_resourcemanager, &m_screen_rm; std::string m_RC_PATH; //--- Resources FbTk::Resource m_rc_ignoreborder; FbTk::Resource m_rc_pseudotrans; FbTk::Resource m_rc_colors_per_channel, m_rc_double_click_interval, m_rc_tabs_padding; FbTk::Resource m_rc_stylefile, m_rc_styleoverlayfile, m_rc_menufile, m_rc_keyfile, m_rc_slitlistfile, m_rc_appsfile; FbTk::Resource m_rc_tabs_attach_area; FbTk::Resource m_rc_cache_life, m_rc_cache_max; FbTk::Resource m_rc_auto_raise_delay; typedef std::map WinClientMap; WinClientMap m_window_search; typedef std::map WindowMap; WindowMap m_window_search_group; // A window is the group leader, which can map to several // WinClients in the group, it is *not* fluxbox's concept of groups // See ICCCM section 4.1.11 // The group leader (which may not be mapped, so may not have a WinClient) // will have it's window being the group index std::multimap m_group_search; ScreenList m_screen_list; FluxboxWindow *m_masked_window; BScreen *m_mousescreen, *m_keyscreen; Atom m_fluxbox_pid; bool m_reconfigure_wait; Time m_last_time; Window m_masked; std::string m_rc_file; ///< resource filename char **m_argv; int m_argc; std::string m_restart_argument; ///< what to restart XEvent m_last_event; ///< when we execute reconfig command we must wait until next event round FbTk::Timer m_reconfig_timer; bool m_showing_dialog; std::auto_ptr m_key; typedef std::set AtomHandlerContainer; typedef AtomHandlerContainer::iterator AtomHandlerContainerIt; AtomHandlerContainer m_atomhandler; bool m_starting; bool m_restarting; bool m_shutdown; int m_server_grabs; AttentionNoticeHandler m_attention_handler; }; #endif // FLUXBOX_HH fluxbox-1.3.5/src/PaxHeaders.25974/fluxbox.cc0000644000175000017500000000013212106662425017041 xustar000000000000000030 mtime=1360749845.899812656 30 atime=1360749876.191812462 30 ctime=1360750008.743811614 fluxbox-1.3.5/src/fluxbox.cc0000644000175000017500000013074612106662425015103 0ustar00mgmg00000000000000// fluxbox.cc for Fluxbox Window Manager // Copyright (c) 2001 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // blackbox.cc for blackbox - an X11 Window manager // Copyright (c) 1997 - 2000 Brad Hughes (bhughes at tcac.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "fluxbox.hh" #include "Screen.hh" #include "Window.hh" #include "Workspace.hh" #include "AtomHandler.hh" #include "FbCommands.hh" #include "WinClient.hh" #include "Keys.hh" #include "FbAtoms.hh" #include "FocusControl.hh" #include "Layer.hh" #include "defaults.hh" #include "Debug.hh" #include "FbTk/I18n.hh" #include "FbTk/Image.hh" #include "FbTk/FileUtil.hh" #include "FbTk/ImageControl.hh" #include "FbTk/EventManager.hh" #include "FbTk/StringUtil.hh" #include "FbTk/Util.hh" #include "FbTk/Resource.hh" #include "FbTk/SimpleCommand.hh" #include "FbTk/XrmDatabaseHelper.hh" #include "FbTk/Command.hh" #include "FbTk/RefCount.hh" #include "FbTk/CompareEqual.hh" #include "FbTk/Transparent.hh" #include "FbTk/Select2nd.hh" #include "FbTk/Compose.hh" #include "FbTk/KeyUtil.hh" #include "FbTk/MemFun.hh" //Use GNU extensions #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif // _GNU_SOURCE #ifdef HAVE_CONFIG_H #include "config.h" #endif // HAVE_CONFIG_H #ifdef USE_EWMH #include "Ewmh.hh" #endif // USE_EWMH #ifdef REMEMBER #include "Remember.hh" #endif // REMEMBER // X headers #include #include #include #include #include // X extensions #ifdef SHAPE #include #endif // SHAPE #if defined(HAVE_RANDR) || defined(HAVE_RANDR1_2) #include #endif // HAVE_RANDR // system headers #ifdef HAVE_CSTDIO #include #else #include #endif #ifdef HAVE_CSTDLIB #include #else #include #endif #ifdef HAVE_CSTRING #include #else #include #endif #ifdef HAVE_UNISTD_H #include #include #endif // HAVE_UNISTD_H #ifdef HAVE_SYS_PARAM_H #include #endif // HAVE_SYS_PARAM_H #ifdef HAVE_SYS_SELECT_H #include #endif // HAVE_SYS_SELECT_H #ifdef HAVE_SYS_STAT_H #include #include #endif // HAVE_SYS_STAT_H #ifdef HAVE_SYS_WAIT_H #include #endif // HAVE_SYS_WAIT_H #include #include #include #include using std::cerr; using std::endl; using std::string; using std::vector; using std::list; using std::pair; using std::bind2nd; using std::mem_fun; using std::equal_to; using std::hex; using std::dec; using namespace FbTk; namespace { const char RC_INIT_FILE[] = "init"; Window last_bad_window = None; // *** NOTE: if you want to debug here the X errors are // coming from, you should turn on the XSynchronise call below int handleXErrors(Display *d, XErrorEvent *e) { if (e->error_code == BadWindow) last_bad_window = e->resourceid; #ifdef DEBUG else { // ignore bad window ones, they happen a lot // when windows close themselves char errtxt[128]; XGetErrorText(d, e->error_code, errtxt, 128); cerr << "Fluxbox: X Error: " << errtxt << "(" <<(int)e->error_code << ") opcodes " << (int)e->request_code << "/" << (int)e->minor_code << " resource 0x" << hex <<(int)e->resourceid << dec << endl; // if (e->error_code != 9 && e->error_code != 183) // kill(0, 2); } #endif // !DEBUG return False; } /* functor to call a memberfunction with by a reference argument other places needs this helper as well it should be moved to FbTk/ g++-4.1 does not like to work with: struct Bar; struct Foo { void foo(Bar&); }; Bar bar; bind2nd(mem_fun(&F::foo), bar); it complaints about not beeing able to store a reference to a reference (Bar&&). 'CallMemFunWithRefArg' makes g++-4.1 happy without having to consider switching over to boost::bind() or enforcing a newer compiler. */ template struct CallMemFunWithRefArg : std::unary_function { explicit CallMemFunWithRefArg(ResultType (Type::*func)(ArgType), ArgType arg) : m_arg(arg), m_func(func) { } ResultType operator()(Type* p) const { (*p.*m_func)(m_arg); } ArgType m_arg; ResultType (Type::*m_func)(ArgType); }; int s_randr_event_type = 0; ///< the type number of randr event int s_shape_eventbase = 0; ///< event base for shape events bool s_have_shape = false ; ///< if shape is supported by server Atom s_kwm1_dockwindow; Atom s_kwm2_dockwindow; Fluxbox* s_singleton = 0; } // end anonymous Fluxbox::Fluxbox(int argc, char **argv, const std::string& dpy_name, const std::string& rc_path, const std::string& rc_filename, bool xsync) : FbTk::App(dpy_name.c_str()), m_fbatoms(FbAtoms::instance()), m_resourcemanager(rc_filename.c_str(), true), // TODO: shouldn't need a separate one for screen m_screen_rm(m_resourcemanager), m_RC_PATH(rc_path), m_rc_ignoreborder(m_resourcemanager, false, "session.ignoreBorder", "Session.IgnoreBorder"), m_rc_pseudotrans(m_resourcemanager, false, "session.forcePseudoTransparency", "Session.forcePseudoTransparency"), m_rc_colors_per_channel(m_resourcemanager, 4, "session.colorsPerChannel", "Session.ColorsPerChannel"), m_rc_double_click_interval(m_resourcemanager, 250, "session.doubleClickInterval", "Session.DoubleClickInterval"), m_rc_tabs_padding(m_resourcemanager, 0, "session.tabPadding", "Session.TabPadding"), m_rc_stylefile(m_resourcemanager, DEFAULTSTYLE, "session.styleFile", "Session.StyleFile"), m_rc_styleoverlayfile(m_resourcemanager, m_RC_PATH + "/overlay", "session.styleOverlay", "Session.StyleOverlay"), m_rc_menufile(m_resourcemanager, m_RC_PATH + "/menu", "session.menuFile", "Session.MenuFile"), m_rc_keyfile(m_resourcemanager, m_RC_PATH + "/keys", "session.keyFile", "Session.KeyFile"), m_rc_slitlistfile(m_resourcemanager, m_RC_PATH + "/slitlist", "session.slitlistFile", "Session.SlitlistFile"), m_rc_appsfile(m_resourcemanager, m_RC_PATH + "/apps", "session.appsFile", "Session.AppsFile"), m_rc_tabs_attach_area(m_resourcemanager, ATTACH_AREA_WINDOW, "session.tabsAttachArea", "Session.TabsAttachArea"), m_rc_cache_life(m_resourcemanager, 5, "session.cacheLife", "Session.CacheLife"), m_rc_cache_max(m_resourcemanager, 200, "session.cacheMax", "Session.CacheMax"), m_rc_auto_raise_delay(m_resourcemanager, 250, "session.autoRaiseDelay", "Session.AutoRaiseDelay"), m_masked_window(0), m_mousescreen(0), m_keyscreen(0), m_last_time(0), m_masked(0), m_rc_file(rc_filename), m_argv(argv), m_argc(argc), m_showing_dialog(false), m_starting(true), m_restarting(false), m_shutdown(false), m_server_grabs(0) { _FB_USES_NLS; if (s_singleton != 0) throw _FB_CONSOLETEXT(Fluxbox, FatalSingleton, "Fatal! There can only one instance of fluxbox class.", "Error displayed on weird error where an instance of the Fluxbox class already exists!"); if (display() == 0) { throw _FB_CONSOLETEXT(Fluxbox, NoDisplay, "Can not connect to X server.\nMake sure you started X before you start Fluxbox.", "Error message when no X display appears to exist"); } Display *disp = FbTk::App::instance()->display(); // For KDE dock applets // KDE v1.x s_kwm1_dockwindow = XInternAtom(disp, "KWM_DOCKWINDOW", False); // KDE v2.x s_kwm2_dockwindow = XInternAtom(disp, "_KDE_NET_WM_SYSTEM_TRAY_WINDOW_FOR", False); // setup X error handler XSetErrorHandler((XErrorHandler) handleXErrors); //catch system signals SignalHandler &sigh = SignalHandler::instance(); sigh.registerHandler(SIGSEGV, this); sigh.registerHandler(SIGFPE, this); sigh.registerHandler(SIGTERM, this); sigh.registerHandler(SIGINT, this); #ifndef _WIN32 sigh.registerHandler(SIGPIPE, this); // e.g. output sent to grep sigh.registerHandler(SIGCHLD, this); sigh.registerHandler(SIGHUP, this); sigh.registerHandler(SIGUSR1, this); sigh.registerHandler(SIGUSR2, this); #endif // // setup timer // This timer is used to we can issue a safe reconfig command. // Because when the command is executed we shouldn't do reconfig directly // because it could affect ongoing menu stuff so we need to reconfig in // the next event "round". FbTk::RefCount > reconfig_cmd(new FbTk::SimpleCommand(*this, &Fluxbox::timed_reconfigure)); m_reconfig_timer.setTimeout(1); m_reconfig_timer.setCommand(reconfig_cmd); m_reconfig_timer.fireOnce(true); if (xsync) XSynchronize(disp, True); s_singleton = this; #ifdef SHAPE int shape_err; s_have_shape = XShapeQueryExtension(disp, &s_shape_eventbase, &shape_err); #endif // SHAPE #if defined(HAVE_RANDR) || defined(HAVE_RANDR1_2) int randr_error_base; XRRQueryExtension(disp, &s_randr_event_type, &randr_error_base); #endif // HAVE_RANDR load_rc(); grab(); if (! XSupportsLocale()) cerr<<_FB_CONSOLETEXT(Fluxbox, WarningLocale, "Warning: X server does not support locale", "XSupportsLocale returned false")<reconfigure(); vector screens; int i; // default is "use all screens" for (i = 0; i < ScreenCount(disp); i++) screens.push_back(i); // find out, on what "screens" fluxbox should run for (i = 1; i < m_argc; i++) { if (! strcmp(m_argv[i], "-screen")) { if ((++i) >= m_argc) { cerr << _FB_CONSOLETEXT(main, ScreenRequiresArg, "error, -screen requires argument", "the -screen option requires a file argument") << endl; exit(EXIT_FAILURE); } // "all" is default if (! strcmp(m_argv[i], "all")) break; vector vals; vector scrtmp; int scrnr = 0; FbTk::StringUtil::stringtok(vals, m_argv[i], ",:"); for (vector::iterator scrit = vals.begin(); scrit != vals.end(); ++scrit) { scrnr = atoi(scrit->c_str()); if (scrnr >= 0 && scrnr < ScreenCount(disp)) scrtmp.push_back(scrnr); } if (!vals.empty()) swap(scrtmp, screens); } } // create screens for (size_t s = 0; s < screens.size(); s++) { std::string sc_nr = FbTk::StringUtil::number2String(screens[s]); BScreen *screen = new BScreen(m_screen_rm.lock(), std::string("session.screen") + sc_nr, std::string("session.Screen") + sc_nr, screens[s], ::ResourceLayer::NUM_LAYERS); // already handled if (! screen->isScreenManaged()) { delete screen; continue; } // add to our list m_screen_list.push_back(screen); } if (m_screen_list.empty()) { throw _FB_CONSOLETEXT(Fluxbox, ErrorNoScreens, "Couldn't find screens to manage.\nMake sure you don't have another window manager running.", "Error message when no unmanaged screens found - usually means another window manager is running"); } m_keyscreen = m_mousescreen = m_screen_list.front(); #ifdef USE_EWMH addAtomHandler(new Ewmh()); #endif // USE_EWMH // parse apps file after creating screens (so we can tell if it's a restart // for [startup] items) but before creating windows // this needs to be after ewmh and gnome, so state atoms don't get // overwritten before they're applied #ifdef REMEMBER addAtomHandler(new Remember()); // for remembering window attribs #endif // REMEMBER // init all "screens" STLUtil::forAll(m_screen_list, bind1st(mem_fun(&Fluxbox::initScreen), this)); XAllowEvents(disp, ReplayPointer, CurrentTime); //XSynchronize(disp, False); sync(false); m_reconfigure_wait = false; m_resourcemanager.unlock(); ungrab(); if (m_resourcemanager.lockDepth() != 0) { fbdbg<<"--- resource manager lockdepth = "<initMenus(); screen->initWindows(); // attach screen signals to this join(screen->workspaceAreaSig(), FbTk::MemFun(*this, &Fluxbox::workspaceAreaChanged)); join(screen->focusedWindowSig(), FbTk::MemFun(*this, &Fluxbox::focusedWindowChanged)); join(screen->clientListSig(), FbTk::MemFun(*this, &Fluxbox::clientListChanged)); join(screen->workspaceNamesSig(), FbTk::MemFun(*this, &Fluxbox::workspaceNamesChanged)); join(screen->currentWorkspaceSig(), FbTk::MemFun(*this, &Fluxbox::workspaceChanged)); join(screen->workspaceCountSig(), FbTk::MemFun(*this, &Fluxbox::workspaceCountChanged)); // initiate atomhandler for screen specific stuff STLUtil::forAll(m_atomhandler, CallMemFunWithRefArg(&AtomHandler::initForScreen, *screen)); //STLUtil::forAll(m_atomhandler, bind2nd(mem_fun(&AtomHandler::initForScreen), *screen)); FocusControl::revertFocus(*screen); // make sure focus style is correct } void Fluxbox::eventLoop() { Display *disp = display(); while (!m_shutdown) { if (XPending(disp)) { XEvent e; XNextEvent(disp, &e); if (last_bad_window != None && e.xany.window == last_bad_window && e.type != DestroyNotify) { // we must let the actual destroys through if (e.type == FocusOut) revertFocus(); else fbdbg<<"Fluxbox::eventLoop(): removing bad window from event queue"<xany.window) && m_masked_window) { if (e->type == MotionNotify) { m_last_time = e->xmotion.time; m_masked_window->motionNotifyEvent(e->xmotion); return; } else if (e->type == ButtonRelease) { e->xbutton.window = m_masked_window->fbWindow().window(); } } // update key/mouse screen and last time before we enter other eventhandlers if (e->type == KeyPress || e->type == KeyRelease) { m_keyscreen = searchScreen(e->xkey.root); } else if (e->type == ButtonPress || e->type == ButtonRelease || e->type == MotionNotify ) { if (e->type == MotionNotify) m_last_time = e->xmotion.time; else m_last_time = e->xbutton.time; m_mousescreen = searchScreen(e->xbutton.root); } else if (e->type == EnterNotify || e->type == LeaveNotify) { m_last_time = e->xcrossing.time; m_mousescreen = searchScreen(e->xcrossing.root); } else if (e->type == PropertyNotify) { m_last_time = e->xproperty.time; // check transparency atoms if it's a root pm BScreen *screen = searchScreen(e->xproperty.window); if (screen) { screen->propertyNotify(e->xproperty.atom); } } // try FbTk::EventHandler first FbTk::EventManager::instance()->handleEvent(*e); switch (e->type) { case ButtonRelease: case ButtonPress: break; case ConfigureRequest: { if (!searchWindow(e->xconfigurerequest.window)) { grab(); if (validateWindow(e->xconfigurerequest.window)) { XWindowChanges xwc; xwc.x = e->xconfigurerequest.x; xwc.y = e->xconfigurerequest.y; xwc.width = e->xconfigurerequest.width; xwc.height = e->xconfigurerequest.height; xwc.border_width = e->xconfigurerequest.border_width; xwc.sibling = e->xconfigurerequest.above; xwc.stack_mode = e->xconfigurerequest.detail; XConfigureWindow(FbTk::App::instance()->display(), e->xconfigurerequest.window, e->xconfigurerequest.value_mask, &xwc); } ungrab(); } // else already handled in FluxboxWindow::handleEvent } break; case MapRequest: { fbdbg<<"MapRequest for 0x"<xmaprequest.window<xmaprequest.window); if (! winclient) { BScreen *screen = 0; int screen_num; XWindowAttributes attr; // find screen if (XGetWindowAttributes(display(), e->xmaprequest.window, &attr) && attr.screen != 0) { screen_num = XScreenNumberOfScreen(attr.screen); // find screen ScreenList::iterator screen_it = find_if(m_screen_list.begin(), m_screen_list.end(), FbTk::CompareEqual(&BScreen::screenNumber, screen_num)); if (screen_it != m_screen_list.end()) screen = *screen_it; } // try with parent if we failed to find screen num if (screen == 0) screen = searchScreen(e->xmaprequest.parent); if (screen == 0) { cerr<<"Fluxbox "<<_FB_CONSOLETEXT(Fluxbox, CantMapWindow, "Warning! Could not find screen to map window on!", "")<createWindow(e->xmaprequest.window); } else { // we don't handle MapRequest in FluxboxWindow::handleEvent if (winclient->fbwindow()) winclient->fbwindow()->mapRequestEvent(e->xmaprequest); } } break; case MapNotify: // handled directly in FluxboxWindow::handleEvent break; case UnmapNotify: handleUnmapNotify(e->xunmap); break; case MappingNotify: // Update stored modifier mapping fbdbg<<"MappingNotify"<xmapping.request == MappingKeyboard || e->xmapping.request == MappingModifier) { XRefreshKeyboardMapping(&e->xmapping); FbTk::KeyUtil::instance().init(); // reinitialise the key utils // reconfigure keys (if the mapping changes, they don't otherwise update m_key->regrab(); } break; case CreateNotify: break; case DestroyNotify: { WinClient *winclient = searchWindow(e->xdestroywindow.window); if (winclient != 0) { FluxboxWindow *win = winclient->fbwindow(); if (win) win->destroyNotifyEvent(e->xdestroywindow); } } break; case MotionNotify: m_last_time = e->xmotion.time; break; case PropertyNotify: { m_last_time = e->xproperty.time; WinClient *winclient = searchWindow(e->xproperty.window); if (winclient == 0) break; // most of them are handled in FluxboxWindow::handleEvent // but some special cases like ewmh propertys needs to be checked for (AtomHandlerContainerIt it= m_atomhandler.begin(); it != m_atomhandler.end(); ++it) { if ( (*it)->propertyNotify(*winclient, e->xproperty.atom)) break; } } break; case EnterNotify: { m_last_time = e->xcrossing.time; if (e->xcrossing.mode == NotifyGrab) break; BScreen *screen = 0; if ((e->xcrossing.window == e->xcrossing.root) && (screen = searchScreen(e->xcrossing.window))) { screen->imageControl().installRootColormap(); } } break; case LeaveNotify: m_last_time = e->xcrossing.time; break; case Expose: break; case KeyRelease: case KeyPress: break; case ColormapNotify: { BScreen *screen = searchScreen(e->xcolormap.window); if (screen != 0) { screen->setRootColormapInstalled((e->xcolormap.state == ColormapInstalled) ? true : false); } } break; case FocusIn: { // a grab is something of a pseudo-focus event, so we ignore // them, here we ignore some window receiving it if (e->xfocus.mode == NotifyGrab || e->xfocus.mode == NotifyUngrab || e->xfocus.detail == NotifyPointer || e->xfocus.detail == NotifyInferior) break; if (FbTk::Menu::focused() && FbTk::Menu::focused()->window() == e->xfocus.window) { m_keyscreen = findScreen(FbTk::Menu::focused()->screenNumber()); FocusControl::setFocusedWindow(0); break; } WinClient *winclient = searchWindow(e->xfocus.window); if (winclient) m_keyscreen = &winclient->screen(); FocusControl::setFocusedWindow(winclient); } break; case FocusOut:{ // and here we ignore some window losing the special grab focus if (e->xfocus.mode == NotifyGrab || e->xfocus.detail == NotifyPointer || e->xfocus.detail == NotifyInferior) break; WinClient *winclient = searchWindow(e->xfocus.window); if ((winclient == FocusControl::focusedWindow() || FocusControl::focusedWindow() == 0) && // we don't unfocus a moving window (!winclient || !winclient->fbwindow() || !winclient->fbwindow()->isMoving())) revertFocus(); } break; case ClientMessage: handleClientMessage(e->xclient); break; default: { #if defined(HAVE_RANDR) || defined(HAVE_RANDR1_2) if (e->type == s_randr_event_type) { #ifdef HAVE_RANDR1_2 XRRUpdateConfiguration(e); #endif // update root window size in screen BScreen *scr = searchScreen(e->xany.window); if (scr != 0) scr->updateSize(); } #endif // HAVE_RANDR } } } void Fluxbox::handleUnmapNotify(XUnmapEvent &ue) { BScreen *screen = searchScreen(ue.event); if (screen) { /* Ignore all EnterNotify events until the pointer actually moves */ screen->focusControl().ignoreAtPointer(); } if (ue.event != ue.window && (!screen || !ue.send_event)) { return; } WinClient *winclient = searchWindow(ue.window); if (winclient != 0) { FluxboxWindow *win = winclient->fbwindow(); if (!win) { delete winclient; return; } // this should delete client and adjust m_focused_window if necessary win->unmapNotifyEvent(ue); // according to http://tronche.com/gui/x/icccm/sec-4.html#s-4.1.4 // a XWithdrawWindow is // 1) unmapping the window (which leads to the upper branch // 2) sends an synthetic unampevent (which is handled below) } else if (screen && ue.send_event) { XDeleteProperty(display(), ue.window, FbAtoms::instance()->getWMStateAtom()); XUngrabButton(display(), AnyButton, AnyModifier, ue.window); } } /** * Handles XClientMessageEvent */ void Fluxbox::handleClientMessage(XClientMessageEvent &ce) { #ifdef DEBUG char * atom = 0; if (ce.message_type) atom = XGetAtomName(FbTk::App::instance()->display(), ce.message_type); fbdbg<<__FILE__<<"("<<__LINE__<<"): ClientMessage. data.l[0]=0x"<getWMChangeStateAtom()) { WinClient *winclient = searchWindow(ce.window); if (! winclient || !winclient->fbwindow() || ! winclient->validateClient()) return; if (ce.data.l[0] == IconicState) winclient->fbwindow()->iconify(); if (ce.data.l[0] == NormalState) winclient->fbwindow()->deiconify(); } else { WinClient *winclient = searchWindow(ce.window); BScreen *screen = searchScreen(ce.window); // note: we dont need screen nor winclient to be non-null, // it's up to the atomhandler to check that for (AtomHandlerContainerIt it= m_atomhandler.begin(); it != m_atomhandler.end(); ++it) { (*it)->checkClientMessage(ce, screen, winclient); } } } /// handle system signals void Fluxbox::handleSignal(int signum) { _FB_USES_NLS; static int re_enter = 0; switch (signum) { #ifndef _WIN32 case SIGCHLD: // we don't want the child process to kill us // more than one process may have terminated while (waitpid(-1, 0, WNOHANG | WUNTRACED) > 0); break; case SIGHUP: restart(); break; case SIGUSR1: load_rc(); break; case SIGUSR2: reconfigure(); break; #endif case SIGSEGV: abort(); break; case SIGFPE: case SIGINT: #ifndef _WIN32 case SIGPIPE: #endif case SIGTERM: shutdown(); break; default: fprintf(stderr, _FB_CONSOLETEXT(BaseDisplay, SignalCaught, "%s: signal %d caught\n", "signal catch debug message. Include %s for Command and %d for signal number").c_str(), m_argv[0], signum); if (! m_starting && ! re_enter) { re_enter = 1; cerr<<_FB_CONSOLETEXT(BaseDisplay, ShuttingDown, "Shutting Down\n", "Quitting because of signal, end with newline"); shutdown(); } cerr<<_FB_CONSOLETEXT(BaseDisplay, Aborting, "Aborting... dumping core\n", "Aboring and dumping core, end with newline"); abort(); break; } } void Fluxbox::windowDied(Focusable &focusable) { FluxboxWindow *fbwin = focusable.fbwindow(); STLUtil::forAllIf(m_atomhandler, mem_fun(&AtomHandler::update), CallMemFunWithRefArg(&AtomHandler::updateFrameClose, *focusable.fbwindow())); // make sure each workspace get this BScreen &scr = focusable.screen(); scr.removeWindow(fbwin); if (FocusControl::focusedFbWindow() == fbwin) FocusControl::setFocusedFbWindow(0); } void Fluxbox::clientDied(Focusable &focusable) { WinClient &client = dynamic_cast(focusable); STLUtil::forAllIf(m_atomhandler, mem_fun(&AtomHandler::update), CallMemFunWithRefArg(&AtomHandler::updateClientClose, client)); BScreen &screen = client.screen(); // At this point, we trust that this client is no longer in the // client list of its frame (but it still has reference to the frame) // We also assume that any remaining active one is the last focused one // This is where we revert focus on window close // NOWHERE ELSE!!! if (FocusControl::focusedWindow() == &client) { FocusControl::unfocusWindow(client); // make sure nothing else uses this window before focus reverts FocusControl::setFocusedWindow(0); } else if (FocusControl::expectingFocus() == &client) { FocusControl::setExpectingFocus(0); revertFocus(); } screen.removeClient(client); } void Fluxbox::windowWorkspaceChanged(FluxboxWindow &win) { STLUtil::forAllIf(m_atomhandler, mem_fun(&AtomHandler::update), CallMemFunWithRefArg(&AtomHandler::updateWorkspace, win)); } void Fluxbox::windowStateChanged(FluxboxWindow &win) { STLUtil::forAllIf(m_atomhandler, mem_fun(&AtomHandler::update), CallMemFunWithRefArg(&AtomHandler::updateState, win)); // if window changed to iconic state // add to icon list if (win.isIconic()) { win.screen().addIcon(&win); Workspace *space = win.screen().getWorkspace(win.workspaceNumber()); if (space != 0) space->removeWindow(&win, true); } if (win.isStuck()) { // if we're sticky then reassociate window // to all workspaces BScreen &scr = win.screen(); if (scr.currentWorkspaceID() != win.workspaceNumber()) scr.reassociateWindow(&win, scr.currentWorkspaceID(), true); } } void Fluxbox::windowLayerChanged(FluxboxWindow &win) { STLUtil::forAllIf(m_atomhandler, mem_fun(&AtomHandler::update), CallMemFunWithRefArg(&AtomHandler::updateLayer, win)); } void Fluxbox::attachSignals(FluxboxWindow &win) { join(win.stateSig(), FbTk::MemFun(*this, &Fluxbox::windowStateChanged)); join(win.workspaceSig(), FbTk::MemFun(*this, &Fluxbox::windowWorkspaceChanged)); join(win.layerSig(), FbTk::MemFun(*this, &Fluxbox::windowLayerChanged)); join(win.dieSig(), FbTk::MemFun(*this, &Fluxbox::windowDied)); STLUtil::forAll(m_atomhandler, CallMemFunWithRefArg(&AtomHandler::setupFrame, win)); } void Fluxbox::attachSignals(WinClient &winclient) { join(winclient.dieSig(), FbTk::MemFun(*this, &Fluxbox::clientDied)); STLUtil::forAll(m_atomhandler, CallMemFunWithRefArg(&AtomHandler::setupClient, winclient)); } BScreen *Fluxbox::searchScreen(Window window) { ScreenList::iterator it = m_screen_list.begin(); ScreenList::iterator it_end = m_screen_list.end(); for (; it != it_end; ++it) { if (*it && (*it)->rootWindow() == window) return *it; } return 0; } AtomHandler* Fluxbox::getAtomHandler(const string &name) { if ( name != "" ) { AtomHandlerContainerIt it; for (it = m_atomhandler.begin(); it != m_atomhandler.end(); ++it) { if (name == (*it)->getName()) return *it; } } return 0; } void Fluxbox::addAtomHandler(AtomHandler *atomh) { m_atomhandler.insert(atomh); } void Fluxbox::removeAtomHandler(AtomHandler *atomh) { m_atomhandler.erase(atomh); } WinClient *Fluxbox::searchWindow(Window window) { WinClientMap::iterator it = m_window_search.find(window); if (it != m_window_search.end()) return it->second; WindowMap::iterator git = m_window_search_group.find(window); return git == m_window_search_group.end() ? 0 : &git->second->winClient(); } /* Not implemented until we know how it'll be used * Recall that this refers to ICCCM groups, not fluxbox tabgroups * See ICCCM 4.1.11 for details */ /* WinClient *Fluxbox::searchGroup(Window window) { } */ void Fluxbox::saveWindowSearch(Window window, WinClient *data) { m_window_search[window] = data; } /* some windows relate to the whole group */ void Fluxbox::saveWindowSearchGroup(Window window, FluxboxWindow *data) { m_window_search_group[window] = data; } void Fluxbox::saveGroupSearch(Window window, WinClient *data) { m_group_search.insert(pair(window, data)); } void Fluxbox::removeWindowSearch(Window window) { m_window_search.erase(window); } void Fluxbox::removeWindowSearchGroup(Window window) { m_window_search_group.erase(window); } void Fluxbox::removeGroupSearch(Window window) { m_group_search.erase(window); } /// restarts fluxbox void Fluxbox::restart(const char *prog) { shutdown(); m_restarting = true; if (prog && *prog != '\0') { m_restart_argument = prog; } } /// prepares fluxbox for a shutdown void Fluxbox::shutdown() { if (m_shutdown) return; m_shutdown = true; XSetInputFocus(FbTk::App::instance()->display(), PointerRoot, None, CurrentTime); STLUtil::forAll(m_screen_list, mem_fun(&BScreen::shutdown)); sync(false); } /// saves resources void Fluxbox::save_rc() { _FB_USES_NLS; XrmDatabase new_rc = 0; string dbfile(getRcFilename()); if (!dbfile.empty()) { m_resourcemanager.save(dbfile.c_str(), dbfile.c_str()); m_screen_rm.save(dbfile.c_str(), dbfile.c_str()); } else cerr<<_FB_CONSOLETEXT(Fluxbox, BadRCFile, "rc filename is invalid!", "Bad settings file")<screenNumber()); workspaces_string += ".workspaceNames: "; // these are static, but may not be saved in the users resource file, // writing these resources will allow the user to edit them at a later // time... but loading the defaults before saving allows us to rewrite the // users changes... const BScreen::WorkspaceNames& names = screen->getWorkspaceNames(); for (size_t i=0; i < names.size(); i++) { workspaces_string += FbTk::FbStringUtil::FbStrToLocale(names[i]); workspaces_string += ','; } XrmPutLineResource(&new_rc, workspaces_string.c_str()); } XrmDatabase old_rc = XrmGetFileDatabase(dbfile.c_str()); XrmMergeDatabases(new_rc, &old_rc); XrmPutFileDatabase(old_rc, dbfile.c_str()); XrmDestroyDatabase(old_rc); fbdbg<<__FILE__<<"("<<__LINE__<<"): ------------ SAVING DONE"<empty()) m_rc_menufile.setDefaultValue(); FbTk::Transparent::usePseudoTransparent(*m_rc_pseudotrans); if (!m_rc_slitlistfile->empty()) { *m_rc_slitlistfile = StringUtil::expandFilename(*m_rc_slitlistfile); } else { string filename = getDefaultDataFilename("slitlist"); m_rc_slitlistfile.setFromString(filename.c_str()); } *m_rc_colors_per_channel = FbTk::Util::clamp(*m_rc_colors_per_channel, 2, 6); if (m_rc_stylefile->empty()) *m_rc_stylefile = DEFAULTSTYLE; } void Fluxbox::load_rc(BScreen &screen) { //get resource filename _FB_USES_NLS; string dbfile(getRcFilename()); XrmDatabaseHelper database; database = XrmGetFileDatabase(dbfile.c_str()); if (database==0) database = XrmGetFileDatabase(DEFAULT_INITFILE); screen.removeWorkspaceNames(); std::string screen_number = FbTk::StringUtil::number2String(screen.screenNumber()); std::string name_lookup("session.screen"); name_lookup += screen_number; name_lookup += ".workspaceNames"; std::string class_lookup("session.screen"); class_lookup += screen_number; class_lookup += ".WorkspaceNames"; XrmValue value; char *value_type; if (XrmGetResource(*database, name_lookup.c_str(), class_lookup.c_str(), &value_type, &value)) { string values(value.addr); BScreen::WorkspaceNames names; StringUtil::removeTrailingWhitespace(values); StringUtil::removeFirstWhitespace(values); StringUtil::stringtok(names, values, ","); BScreen::WorkspaceNames::iterator it; for(it = names.begin(); it != names.end(); ++it) { if (!(*it).empty() && (*it) != "") screen.addWorkspaceName((*it).c_str()); } } if (!dbfile.empty()) { if (!m_screen_rm.load(dbfile.c_str())) { cerr<<_FB_CONSOLETEXT(Fluxbox, CantLoadRCFile, "Failed to load database", "Failed trying to read rc file")<<":"<reconfigure(); STLUtil::forAll(m_atomhandler, mem_fun(&AtomHandler::reconfigure)); } BScreen *Fluxbox::findScreen(int id) { BScreen* result = 0; ScreenList::iterator it = find_if(m_screen_list.begin(), m_screen_list.end(), FbTk::CompareEqual(&BScreen::screenNumber, id)); if (it != m_screen_list.end()) result = *it; return result; } void Fluxbox::timed_reconfigure() { if (m_reconfigure_wait) real_reconfigure(); m_reconfigure_wait = false; } void Fluxbox::revertFocus() { bool revert = m_keyscreen && !m_showing_dialog; if (revert) { // see if there are any more focus events in the queue XEvent ev; while (XCheckMaskEvent(display(), FocusChangeMask, &ev)) handleEvent(&ev); if (FocusControl::focusedWindow() || FocusControl::expectingFocus()) return; // already handled Window win; int blah; XGetInputFocus(display(), &win, &blah); // we only want to revert focus if it's left dangling, as some other // application may have set the focus to an unmanaged window if (win != None && win != PointerRoot && !searchWindow(win) && win != m_keyscreen->rootWindow().window()) revert = false; } if (revert) FocusControl::revertFocus(*m_keyscreen); else FocusControl::setFocusedWindow(0); } bool Fluxbox::validateClient(const WinClient *client) const { WinClientMap::const_iterator it = find_if(m_window_search.begin(), m_window_search.end(), Compose(bind2nd(equal_to(), client), Select2nd())); return it != m_window_search.end(); } void Fluxbox::updateFrameExtents(FluxboxWindow &win) { STLUtil::forAll(m_atomhandler, CallMemFunWithRefArg(&AtomHandler::updateFrameExtents, win)); } void Fluxbox::workspaceCountChanged( BScreen& screen ) { STLUtil::forAllIf(m_atomhandler, mem_fun(&AtomHandler::update), CallMemFunWithRefArg(&AtomHandler::updateWorkspaceCount, screen)); } void Fluxbox::workspaceChanged( BScreen& screen ) { STLUtil::forAllIf(m_atomhandler, mem_fun(&AtomHandler::update), CallMemFunWithRefArg(&AtomHandler::updateCurrentWorkspace, screen)); } void Fluxbox::workspaceNamesChanged(BScreen &screen) { STLUtil::forAllIf(m_atomhandler, mem_fun(&AtomHandler::update), CallMemFunWithRefArg(&AtomHandler::updateWorkspaceNames, screen)); } void Fluxbox::clientListChanged(BScreen &screen) { STLUtil::forAllIf(m_atomhandler, mem_fun(&AtomHandler::update), CallMemFunWithRefArg(&AtomHandler::updateClientList, screen)); } void Fluxbox::focusedWindowChanged(BScreen &screen, FluxboxWindow* win, WinClient* client) { for (AtomHandlerContainerIt it= m_atomhandler.begin(); it != m_atomhandler.end(); ++it) { (*it)->updateFocusedWindow(screen, client ? client->window() : 0 ); } } void Fluxbox::workspaceAreaChanged(BScreen &screen) { STLUtil::forAllIf(m_atomhandler, mem_fun(&AtomHandler::update), CallMemFunWithRefArg(&AtomHandler::updateWorkarea, screen)); } bool Fluxbox::haveShape() const { return s_have_shape; } int Fluxbox::shapeEventbase() const { return s_shape_eventbase; } Fluxbox* Fluxbox::instance() { return s_singleton; } fluxbox-1.3.5/src/PaxHeaders.25974/FbWinFrameTheme.cc0000644000175000017500000000013212106662425020315 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.191812462 30 ctime=1360750008.743811614 fluxbox-1.3.5/src/FbWinFrameTheme.cc0000644000175000017500000001126612106662425016352 0ustar00mgmg00000000000000// FbWinFrameTheme.cc for Fluxbox Window Manager // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "FbWinFrameTheme.hh" #include "FbTk/App.hh" #include "FbTk/Util.hh" #include "IconbarTheme.hh" #include FbWinFrameTheme::FbWinFrameTheme(int screen_num, const std::string &extra, const std::string &altextra): FbTk::Theme(screen_num), m_title(*this, "window.title" + extra, "Window.Title" + altextra), m_handle(*this, "window.handle" + extra, "Window.Handle" + altextra), m_button(*this, "window.button" + extra, "Window.Button" + altextra), m_button_pressed(*this, "window.button.pressed", "Window.Button.Pressed"), m_grip(*this, "window.grip" + extra, "Window.Grip" + altextra), m_button_color(*this, "window.button" + extra + ".picColor", "Window.Button" + altextra + ".PicColor"), m_font(*this, "window.font", "Window.Font"), m_shape_place(*this, "window.roundCorners", "Window.RoundCorners"), m_title_height(*this, "window.title.height", "Window.Title.Height"), m_bevel_width(*this, "window.bevelWidth", "Window.BevelWidth"), m_handle_width(*this, "window.handleWidth", "Window.handleWidth"), m_border(*this, "window" + extra, "Window" + altextra), m_button_pic_gc(RootWindow(FbTk::App::instance()->display(), screen_num)), m_alpha(255), m_iconbar_theme(screen_num, "window.label" + extra, "Window.Label" + altextra) { *m_title_height = 0; // set defaults m_font->load("__DEFAULT__"); // create cursors Display *disp = FbTk::App::instance()->display(); m_cursor_move = XCreateFontCursor(disp, XC_fleur); m_cursor_lower_left_angle = XCreateFontCursor(disp, XC_bottom_left_corner); m_cursor_lower_right_angle = XCreateFontCursor(disp, XC_bottom_right_corner); m_cursor_upper_right_angle = XCreateFontCursor(disp, XC_top_right_corner); m_cursor_upper_left_angle = XCreateFontCursor(disp, XC_top_left_corner); m_cursor_left_side = XCreateFontCursor(disp, XC_left_side); m_cursor_top_side = XCreateFontCursor(disp, XC_top_side); m_cursor_right_side = XCreateFontCursor(disp, XC_right_side); m_cursor_bottom_side = XCreateFontCursor(disp, XC_bottom_side); FbTk::ThemeManager::instance().loadTheme(*this); reconfigTheme(); } FbWinFrameTheme::~FbWinFrameTheme() { } bool FbWinFrameTheme::fallback(FbTk::ThemeItem_base &item) { if (item.name() == "window.focus.borderWidth" || item.name() == "window.unfocus.borderWidth") return FbTk::ThemeManager::instance().loadItem(item, "window.borderWidth", "Window.BorderWidth") || FbTk::ThemeManager::instance().loadItem(item, "borderWidth", "BorderWidth"); else if (item.name() == "window.focus.borderColor" || item.name() == "window.unfocus.borderColor") return FbTk::ThemeManager::instance().loadItem(item, "window.borderColor", "Window.BorderColor") || FbTk::ThemeManager::instance().loadItem(item, "borderColor", "BorderColor"); else if (item.name() == "window.bevelWidth") return FbTk::ThemeManager::instance().loadItem(item, "bevelWidth", "bevelWidth"); else if (item.name() == "window.handleWidth") return FbTk::ThemeManager::instance().loadItem(item, "handleWidth", "HandleWidth"); return false; } void FbWinFrameTheme::reconfigTheme() { *m_bevel_width = FbTk::Util::clamp(*m_bevel_width, 0, 20); if (*m_handle_width < 0) *m_handle_width = 1; *m_handle_width = FbTk::Util::clamp(*m_handle_width, 0, 200); m_button_pic_gc.setForeground(*m_button_color); m_iconbar_theme.reconfigTheme(); } fluxbox-1.3.5/src/PaxHeaders.25974/FbWinFrameTheme.hh0000644000175000017500000000013212106662425020327 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.191812462 30 ctime=1360750008.743811614 fluxbox-1.3.5/src/FbWinFrameTheme.hh0000644000175000017500000001074112106662425016361 0ustar00mgmg00000000000000// FbWinFrameTheme.hh for Fluxbox Window Manager // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBWINFRAMETHEME_HH #define FBWINFRAMETHEME_HH #include "FbTk/Font.hh" #include "FbTk/Texture.hh" #include "FbTk/Color.hh" #include "FbTk/Theme.hh" #include "FbTk/BorderTheme.hh" #include "FbTk/GContext.hh" #include "FbTk/Shape.hh" #include "IconbarTheme.hh" #include class FbWinFrameTheme: public FbTk::Theme, public FbTk::ThemeProxy { public: explicit FbWinFrameTheme(int screen_num, const std::string &extra, const std::string &altextra); ~FbWinFrameTheme(); /** @name textures */ //@{ const FbTk::Texture &titleTexture() const { return *m_title; } const FbTk::Texture &handleTexture() const { return *m_handle; } const FbTk::Texture &buttonTexture() const { return *m_button; } const FbTk::Texture &buttonPressedTexture() const { return *m_button_pressed; } const FbTk::Texture &gripTexture() const { return *m_grip; } //@} const FbTk::Color &buttonColor() const { return *m_button_color; } FbTk::Font &font() { return *m_font; } GC buttonPicGC() const { return m_button_pic_gc.gc(); } bool fallback(FbTk::ThemeItem_base &item); void reconfigTheme(); Cursor moveCursor() const { return m_cursor_move; } Cursor lowerLeftAngleCursor() const { return m_cursor_lower_left_angle; } Cursor lowerRightAngleCursor() const { return m_cursor_lower_right_angle; } Cursor upperLeftAngleCursor() const { return m_cursor_upper_left_angle; } Cursor upperRightAngleCursor() const { return m_cursor_upper_right_angle; } Cursor leftSideCursor() const { return m_cursor_left_side; } Cursor rightSideCursor() const { return m_cursor_right_side; } Cursor topSideCursor() const { return m_cursor_top_side; } Cursor bottomSideCursor() const { return m_cursor_bottom_side; } FbTk::Shape::ShapePlace shapePlace() const { return *m_shape_place; } const FbTk::BorderTheme &border() const { return m_border; } unsigned int titleHeight() const { return *m_title_height; } unsigned int bevelWidth() const { return *m_bevel_width; } unsigned int handleWidth() const { return *m_handle_width; } int alpha() const { return m_alpha; } void setAlpha(int alpha) { m_alpha = alpha; } IconbarTheme &iconbarTheme() { return m_iconbar_theme; } virtual FbTk::Signal<> &reconfigSig() { return FbTk::Theme::reconfigSig(); } virtual FbWinFrameTheme &operator *() { return *this; } virtual const FbWinFrameTheme &operator *() const { return *this; } private: FbTk::ThemeItem m_title, m_handle, m_button, m_button_pressed, m_grip; FbTk::ThemeItem m_button_color; FbTk::ThemeItem m_font; FbTk::ThemeItem m_shape_place; FbTk::ThemeItem m_title_height, m_bevel_width, m_handle_width; FbTk::BorderTheme m_border; FbTk::GContext m_button_pic_gc; Cursor m_cursor_move; Cursor m_cursor_lower_left_angle; Cursor m_cursor_lower_right_angle; Cursor m_cursor_upper_left_angle; Cursor m_cursor_upper_right_angle; Cursor m_cursor_left_side; Cursor m_cursor_right_side; Cursor m_cursor_top_side; Cursor m_cursor_bottom_side; int m_alpha; IconbarTheme m_iconbar_theme; }; #endif // FBWINFRAMETHEME_HH fluxbox-1.3.5/src/PaxHeaders.25974/FbWinFrame.cc0000644000175000017500000000013212106662425017332 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.187812462 30 ctime=1360750008.747811614 fluxbox-1.3.5/src/FbWinFrame.cc0000644000175000017500000015645712106662425015403 0ustar00mgmg00000000000000// FbWinFrame.cc for Fluxbox Window Manager // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "FbWinFrame.hh" #include "FbTk/ImageControl.hh" #include "FbTk/EventManager.hh" #include "FbTk/App.hh" #include "FbTk/SimpleCommand.hh" #include "FbTk/Compose.hh" #include "FbTk/Transparent.hh" #include "FbTk/CompareEqual.hh" #include "FbTk/TextUtils.hh" #include "FbTk/STLUtil.hh" #include "FbWinFrameTheme.hh" #include "Screen.hh" #include "FocusableTheme.hh" #include "IconButton.hh" #include "RectangleUtil.hh" #include #include #include "Keys.hh" using std::max; using std::mem_fun; using std::string; using FbTk::STLUtil::forAll; FbWinFrame::FbWinFrame(BScreen &screen, unsigned int client_depth, WindowState &state, FocusableTheme &theme): m_screen(screen), m_theme(theme), m_imagectrl(screen.imageControl()), m_state(state), m_window(theme->screenNum(), state.x, state.y, state.width, state.height, ButtonPressMask | ButtonReleaseMask | ButtonMotionMask | EnterWindowMask | LeaveWindowMask, true, false, client_depth, InputOutput, ((client_depth == 32) && (screen.rootWindow().depth() == 32) ? screen.rootWindow().visual() : CopyFromParent), ((client_depth == 32) && (screen.rootWindow().depth() == 32) ? screen.rootWindow().colormap() : CopyFromParent)), m_layeritem(window(), *screen.layerManager().getLayer(ResourceLayer::NORMAL)), m_titlebar(m_window, 0, 0, 100, 16, ButtonPressMask | ButtonReleaseMask | ButtonMotionMask | ExposureMask | EnterWindowMask | LeaveWindowMask, false, false, screen.rootWindow().decorationDepth(), InputOutput, screen.rootWindow().decorationVisual(), screen.rootWindow().decorationColormap()), m_tab_container(m_titlebar), m_label(m_titlebar, m_theme->font(), FbTk::BiDiString("")), m_handle(m_window, 0, 0, 100, 5, ButtonPressMask | ButtonReleaseMask | ButtonMotionMask | ExposureMask | EnterWindowMask | LeaveWindowMask, false, false, screen.rootWindow().decorationDepth(), InputOutput, screen.rootWindow().decorationVisual(), screen.rootWindow().decorationColormap()), m_grip_right(m_handle, 0, 0, 10, 4, ButtonPressMask | ButtonReleaseMask | ButtonMotionMask | ExposureMask | EnterWindowMask | LeaveWindowMask, false, false, screen.rootWindow().decorationDepth(), InputOutput, screen.rootWindow().decorationVisual(), screen.rootWindow().decorationColormap()), m_grip_left(m_handle, 0, 0, 10, 4, ButtonPressMask | ButtonReleaseMask | ButtonMotionMask | ExposureMask | EnterWindowMask | LeaveWindowMask, false, false, screen.rootWindow().decorationDepth(), InputOutput, screen.rootWindow().decorationVisual(), screen.rootWindow().decorationColormap()), m_clientarea(m_window, 0, 0, 100, 100, ButtonPressMask | ButtonReleaseMask | ButtonMotionMask | ExposureMask | EnterWindowMask | LeaveWindowMask), m_bevel(1), m_use_titlebar(true), m_use_tabs(true), m_use_handle(true), m_visible(false), m_button_pm(0), m_tabmode(screen.getDefaultInternalTabs()?INTERNAL:EXTERNAL), m_active_orig_client_bw(0), m_need_render(true), m_button_size(1), m_focused_alpha(AlphaAcc(*theme.focusedTheme(), &FbWinFrameTheme::alpha)), m_unfocused_alpha(AlphaAcc(*theme.unfocusedTheme(), &FbWinFrameTheme::alpha)), m_shape(m_window, theme->shapePlace()) { init(); } FbWinFrame::~FbWinFrame() { removeEventHandler(); removeAllButtons(); } bool FbWinFrame::setTabMode(TabMode tabmode) { if (m_tabmode == tabmode) return false; bool ret = true; // setting tabmode to notset forces it through when // something is likely to change if (tabmode == NOTSET) tabmode = m_tabmode; m_tabmode = tabmode; // reparent tab container if (tabmode == EXTERNAL) { m_label.show(); m_tab_container.setBorderWidth(m_window.borderWidth()); m_tab_container.setEventMask( ButtonPressMask | ButtonReleaseMask | ButtonMotionMask | ExposureMask | EnterWindowMask | LeaveWindowMask); alignTabs(); // TODO: tab position if (m_use_tabs && m_visible) m_tab_container.show(); else { ret = false; m_tab_container.hide(); } } else { m_tab_container.setUpdateLock(true); m_tab_container.setAlignment(FbTk::Container::RELATIVE); m_tab_container.setOrientation(FbTk::ROT0); if (m_tab_container.parent()->window() == m_screen.rootWindow().window()) { m_layeritem.removeWindow(m_tab_container); m_tab_container.hide(); m_tab_container.reparent(m_titlebar, m_label.x(), m_label.y()); m_tab_container.invalidateBackground(); m_tab_container.resize(m_label.width(), m_label.height()); m_tab_container.raise(); } m_tab_container.setBorderWidth(0); m_tab_container.setMaxTotalSize(0); m_tab_container.setUpdateLock(false); m_tab_container.setMaxSizePerClient(0); renderTabContainer(); applyTabContainer(); m_tab_container.clear(); m_tab_container.raise(); m_tab_container.show(); if (!m_use_tabs) ret = false; m_label.hide(); // reconfigure(); } return ret; } void FbWinFrame::hide() { m_window.hide(); if (m_tabmode == EXTERNAL && m_use_tabs) m_tab_container.hide(); m_visible = false; } void FbWinFrame::show() { m_visible = true; if (m_need_render) { renderAll(); applyAll(); clearAll(); } if (m_tabmode == EXTERNAL && m_use_tabs) m_tab_container.show(); m_window.showSubwindows(); m_window.show(); } void FbWinFrame::move(int x, int y) { moveResize(x, y, 0, 0, true, false); } void FbWinFrame::resize(unsigned int width, unsigned int height) { moveResize(0, 0, width, height, false, true); } // need an atomic moveresize where possible void FbWinFrame::moveResizeForClient(int x, int y, unsigned int width, unsigned int height, int win_gravity, unsigned int client_bw, bool move, bool resize) { // total height for frame if (resize) // these fns check if the elements are "on" height += titlebarHeight() + handleHeight(); gravityTranslate(x, y, win_gravity, client_bw, false); setActiveGravity(win_gravity, client_bw); moveResize(x, y, width, height, move, resize); } void FbWinFrame::resizeForClient(unsigned int width, unsigned int height, int win_gravity, unsigned int client_bw) { moveResizeForClient(0, 0, width, height, win_gravity, client_bw, false, true); } void FbWinFrame::moveResize(int x, int y, unsigned int width, unsigned int height, bool move, bool resize) { if (move && x == window().x() && y == window().y()) move = false; if (resize && width == FbWinFrame::width() && height == FbWinFrame::height()) resize = false; if (!move && !resize) return; if (move && resize) { m_window.moveResize(x, y, width, height); notifyMoved(false); // will reconfigure } else if (move) { m_window.move(x, y); // this stuff will be caught by reconfigure if resized notifyMoved(true); } else { m_window.resize(width, height); } m_state.saveGeometry(window().x(), window().y(), window().width(), window().height()); if (move || (resize && m_screen.getTabPlacement() != TOPLEFT && m_screen.getTabPlacement() != LEFTTOP)) alignTabs(); if (resize) { if (m_tabmode == EXTERNAL) { switch(m_screen.getTabPlacement()) { case LEFTTOP: case RIGHTTOP: case LEFT: case RIGHT: case LEFTBOTTOM: case RIGHTBOTTOM: m_tab_container.setMaxTotalSize(height); break; default: m_tab_container.setMaxTotalSize(width); break; } } reconfigure(); } } void FbWinFrame::quietMoveResize(int x, int y, unsigned int width, unsigned int height) { m_window.moveResize(x, y, width, height); m_state.saveGeometry(window().x(), window().y(), window().width(), window().height()); if (m_tabmode == EXTERNAL) { switch(m_screen.getTabPlacement()) { case LEFTTOP: case RIGHTTOP: case LEFT: case RIGHT: case LEFTBOTTOM: case RIGHTBOTTOM: m_tab_container.setMaxTotalSize(height); break; default: m_tab_container.setMaxTotalSize(width); break; } alignTabs(); } } void FbWinFrame::alignTabs() { if (m_tabmode != EXTERNAL) return; FbTk::Orientation orig_orient = m_tab_container.orientation(); unsigned int orig_tabwidth = m_tab_container.maxWidthPerClient(); if (orig_tabwidth != m_screen.getTabWidth()) m_tab_container.setMaxSizePerClient(m_screen.getTabWidth()); int tabx = 0, taby = 0; switch (m_screen.getTabPlacement()) { case TOPLEFT: if (orig_orient != FbTk::ROT0) m_tab_container.hide(); m_tab_container.setOrientation(FbTk::ROT0); m_tab_container.setAlignment(FbTk::Container::LEFT); m_tab_container.setMaxTotalSize(m_window.width()); tabx = x(); taby = y() - yOffset(); break; case TOP: if (orig_orient != FbTk::ROT0) m_tab_container.hide(); m_tab_container.setOrientation(FbTk::ROT0); m_tab_container.setAlignment(FbTk::Container::CENTER); m_tab_container.setMaxTotalSize(m_window.width()); tabx = x() + (width() - m_tab_container.width())/2; taby = y() - yOffset(); break; case TOPRIGHT: if (orig_orient != FbTk::ROT0) m_tab_container.hide(); m_tab_container.setOrientation(FbTk::ROT0); m_tab_container.setAlignment(FbTk::Container::RIGHT); m_tab_container.setMaxTotalSize(m_window.width()); tabx = x() + width() - m_tab_container.width(); taby = y() - yOffset(); break; case LEFTTOP: if (orig_orient != FbTk::ROT270) m_tab_container.hide(); m_tab_container.setOrientation(FbTk::ROT270); m_tab_container.setAlignment(FbTk::Container::RIGHT); m_tab_container.setMaxTotalSize(m_window.height()); tabx = x() - xOffset(); taby = y(); break; case LEFT: if (orig_orient != FbTk::ROT270) m_tab_container.hide(); m_tab_container.setOrientation(FbTk::ROT270); m_tab_container.setAlignment(FbTk::Container::CENTER); m_tab_container.setMaxTotalSize(m_window.height()); tabx = x() - xOffset(); taby = y() + (height() - m_tab_container.height())/2; break; case LEFTBOTTOM: if (orig_orient != FbTk::ROT270) m_tab_container.hide(); m_tab_container.setOrientation(FbTk::ROT270); m_tab_container.setAlignment(FbTk::Container::LEFT); m_tab_container.setMaxTotalSize(m_window.height()); tabx = x() - xOffset(); taby = y() + height() - m_tab_container.height(); break; case RIGHTTOP: if (orig_orient != FbTk::ROT90) m_tab_container.hide(); m_tab_container.setOrientation(FbTk::ROT90); m_tab_container.setAlignment(FbTk::Container::LEFT); m_tab_container.setMaxTotalSize(m_window.height()); tabx = x() + width() + m_window.borderWidth(); taby = y(); break; case RIGHT: if (orig_orient != FbTk::ROT90) m_tab_container.hide(); m_tab_container.setOrientation(FbTk::ROT90); m_tab_container.setAlignment(FbTk::Container::CENTER); m_tab_container.setMaxTotalSize(m_window.height()); tabx = x() + width() + m_window.borderWidth(); taby = y() + (height() - m_tab_container.height())/2; break; case RIGHTBOTTOM: if (orig_orient != FbTk::ROT90) m_tab_container.hide(); m_tab_container.setOrientation(FbTk::ROT90); m_tab_container.setAlignment(FbTk::Container::RIGHT); m_tab_container.setMaxTotalSize(m_window.height()); tabx = x() + width() + m_window.borderWidth(); taby = y() + height() - m_tab_container.height(); break; case BOTTOMLEFT: if (orig_orient != FbTk::ROT0) m_tab_container.hide(); m_tab_container.setOrientation(FbTk::ROT0); m_tab_container.setAlignment(FbTk::Container::LEFT); m_tab_container.setMaxTotalSize(m_window.width()); tabx = x(); taby = y() + height() + m_window.borderWidth(); break; case BOTTOM: if (orig_orient != FbTk::ROT0) m_tab_container.hide(); m_tab_container.setOrientation(FbTk::ROT0); m_tab_container.setAlignment(FbTk::Container::CENTER); m_tab_container.setMaxTotalSize(m_window.width()); tabx = x() + (width() - m_tab_container.width())/2; taby = y() + height() + m_window.borderWidth(); break; case BOTTOMRIGHT: if (orig_orient != FbTk::ROT0) m_tab_container.hide(); m_tab_container.setOrientation(FbTk::ROT0); m_tab_container.setAlignment(FbTk::Container::RIGHT); m_tab_container.setMaxTotalSize(m_window.width()); tabx = x() + width() - m_tab_container.width(); taby = y() + height() + m_window.borderWidth(); break; } unsigned int w = m_window.width(), h = m_window.height(); translateSize(m_tab_container.orientation(), w, h); if (m_tab_container.orientation() != orig_orient || m_tab_container.maxWidthPerClient() != orig_tabwidth) { renderTabContainer(); if (m_visible && m_use_tabs) { applyTabContainer(); m_tab_container.clear(); m_tab_container.show(); } } if (m_tab_container.parent()->window() != m_screen.rootWindow().window()) { m_tab_container.reparent(m_screen.rootWindow(), tabx, taby); m_label.clear(); m_layeritem.addWindow(m_tab_container); } else { m_tab_container.move(tabx, taby); } } void FbWinFrame::notifyMoved(bool clear) { // not important if no alpha... int alpha = getAlpha(m_state.focused); if (alpha == 255) return; if ((m_tabmode == EXTERNAL && m_use_tabs) || m_use_titlebar) { m_tab_container.parentMoved(); m_tab_container.for_each(mem_fun(&FbTk::Button::parentMoved)); } if (m_use_titlebar) { if (m_tabmode != INTERNAL) m_label.parentMoved(); m_titlebar.parentMoved(); forAll(m_buttons_left, mem_fun(&FbTk::Button::parentMoved)); forAll(m_buttons_right, mem_fun(&FbTk::Button::parentMoved)); } if (m_use_handle) { m_handle.parentMoved(); m_grip_left.parentMoved(); m_grip_right.parentMoved(); } if (clear && (m_use_handle || m_use_titlebar)) { clearAll(); } else if (clear && m_tabmode == EXTERNAL && m_use_tabs) m_tab_container.clear(); } void FbWinFrame::clearAll() { if (m_use_titlebar) { redrawTitlebar(); forAll(m_buttons_left, mem_fun(&FbTk::Button::clear)); forAll(m_buttons_right, mem_fun(&FbTk::Button::clear)); } else if (m_tabmode == EXTERNAL && m_use_tabs) m_tab_container.clear(); if (m_use_handle) { m_handle.clear(); m_grip_left.clear(); m_grip_right.clear(); } } void FbWinFrame::setFocus(bool newvalue) { if (m_state.focused == newvalue) return; m_state.focused = newvalue; if (FbTk::Transparent::haveRender() && getAlpha(true) != getAlpha(false)) { // different alpha for focused and unfocused int alpha = getAlpha(m_state.focused); if (FbTk::Transparent::haveComposite()) { m_tab_container.setAlpha(255); m_window.setOpaque(alpha); } else { m_tab_container.setAlpha(alpha); m_window.setOpaque(255); } } setBorderWidth(); applyAll(); clearAll(); } void FbWinFrame::applyState() { applyDecorations(false); const int head = m_screen.getHead(window()); int new_x = m_state.x, new_y = m_state.y; unsigned int new_w = m_state.width, new_h = m_state.height; if (m_state.isMaximizedVert()) { new_y = m_screen.maxTop(head); new_h = m_screen.maxBottom(head) - new_y - 2*window().borderWidth(); if (!m_screen.getMaxOverTabs()) { new_y += yOffset(); new_h -= heightOffset(); } } if (m_state.isMaximizedHorz()) { new_x = m_screen.maxLeft(head); new_w = m_screen.maxRight(head) - new_x - 2*window().borderWidth(); if (!m_screen.getMaxOverTabs()) { new_x += xOffset(); new_w -= widthOffset(); } } if (m_state.shaded) new_h = m_titlebar.height(); if (m_state.fullscreen) { new_x = m_screen.getHeadX(head); new_y = m_screen.getHeadY(head); new_w = m_screen.getHeadWidth(head); new_h = m_screen.getHeadHeight(head); } moveResize(new_x, new_y, new_w, new_h); frameExtentSig().emit(); } void FbWinFrame::setAlpha(bool focused, int alpha) { if (focused) m_focused_alpha = alpha; else m_unfocused_alpha = alpha; if (m_state.focused == focused) applyAlpha(); } void FbWinFrame::applyAlpha() { int alpha = getAlpha(m_state.focused); if (FbTk::Transparent::haveComposite()) m_window.setOpaque(alpha); else { // don't need to setAlpha, since apply updates them anyway applyAll(); clearAll(); } } int FbWinFrame::getAlpha(bool focused) const { if (focused) return m_focused_alpha; else return m_unfocused_alpha; } void FbWinFrame::setDefaultAlpha() { if (getUseDefaultAlpha()) return; m_focused_alpha.restoreDefault(); m_unfocused_alpha.restoreDefault(); applyAlpha(); } bool FbWinFrame::getUseDefaultAlpha() const { return m_focused_alpha.isDefault() && m_unfocused_alpha.isDefault(); } void FbWinFrame::addLeftButton(FbTk::Button *btn) { if (btn == 0) // valid button? return; applyButton(*btn); // setup theme and other stuff m_buttons_left.push_back(btn); } void FbWinFrame::addRightButton(FbTk::Button *btn) { if (btn == 0) // valid button? return; applyButton(*btn); // setup theme and other stuff m_buttons_right.push_back(btn); } void FbWinFrame::removeAllButtons() { FbTk::STLUtil::destroyAndClear(m_buttons_left); FbTk::STLUtil::destroyAndClear(m_buttons_right); } void FbWinFrame::createTab(FbTk::Button &button) { button.show(); button.setEventMask(ExposureMask | ButtonPressMask | ButtonReleaseMask | ButtonMotionMask | EnterWindowMask); FbTk::EventManager::instance()->add(button, button.window()); m_tab_container.insertItem(&button); } void FbWinFrame::removeTab(IconButton *btn) { if (m_tab_container.removeItem(btn)) delete btn; } void FbWinFrame::moveLabelButtonLeft(FbTk::TextButton &btn) { m_tab_container.moveItem(&btn, -1); } void FbWinFrame::moveLabelButtonRight(FbTk::TextButton &btn) { m_tab_container.moveItem(&btn, +1); } void FbWinFrame::moveLabelButtonTo(FbTk::TextButton &btn, int x, int y) { m_tab_container.moveItemTo(&btn, x, y); } void FbWinFrame::moveLabelButtonLeftOf(FbTk::TextButton &btn, const FbTk::TextButton &dest) { int dest_pos = m_tab_container.find(&dest); int cur_pos = m_tab_container.find(&btn); if (dest_pos < 0 || cur_pos < 0) return; int movement=dest_pos - cur_pos; if(movement>0) movement-=1; // else // movement-=1; m_tab_container.moveItem(&btn, movement); } void FbWinFrame::moveLabelButtonRightOf(FbTk::TextButton &btn, const FbTk::TextButton &dest) { int dest_pos = m_tab_container.find(&dest); int cur_pos = m_tab_container.find(&btn); if (dest_pos < 0 || cur_pos < 0 ) return; int movement=dest_pos - cur_pos; if(movement<0) movement+=1; m_tab_container.moveItem(&btn, movement); } void FbWinFrame::setClientWindow(FbTk::FbWindow &win) { win.setBorderWidth(0); XChangeSaveSet(win.display(), win.window(), SetModeInsert); m_window.setEventMask(NoEventMask); // we need to mask this so we don't get unmap event win.setEventMask(NoEventMask); win.reparent(m_window, clientArea().x(), clientArea().y()); m_window.setEventMask(ButtonPressMask | ButtonReleaseMask | ButtonMotionMask | EnterWindowMask | LeaveWindowMask | SubstructureRedirectMask); XFlush(win.display()); // remask window so we get events XSetWindowAttributes attrib_set; attrib_set.event_mask = PropertyChangeMask | StructureNotifyMask | FocusChangeMask | KeyPressMask; attrib_set.do_not_propagate_mask = ButtonPressMask | ButtonReleaseMask | ButtonMotionMask; XChangeWindowAttributes(win.display(), win.window(), CWEventMask|CWDontPropagate, &attrib_set); if (isVisible()) win.show(); win.raise(); m_window.showSubwindows(); } bool FbWinFrame::hideTabs() { if (m_tabmode == INTERNAL || !m_use_tabs) { m_use_tabs = false; return false; } m_use_tabs = false; m_tab_container.hide(); return true; } bool FbWinFrame::showTabs() { if (m_tabmode == INTERNAL || m_use_tabs) { m_use_tabs = true; return false; // nothing changed } m_use_tabs = true; if (m_visible) m_tab_container.show(); return true; } bool FbWinFrame::hideTitlebar() { if (!m_use_titlebar) return false; m_titlebar.hide(); m_use_titlebar = false; if (static_cast(m_window.height() - m_titlebar.height() - m_titlebar.borderWidth()) <= 0) { m_window.resize(m_window.width(), 1); } else { // only take away one borderwidth (as the other border is still the "top" border) m_window.resize(m_window.width(), m_window.height() - m_titlebar.height() - m_titlebar.borderWidth()); } return true; } bool FbWinFrame::showTitlebar() { if (m_use_titlebar) return false; m_titlebar.show(); m_use_titlebar = true; // only add one borderwidth (as the other border is still the "top" border) m_window.resize(m_window.width(), m_window.height() + m_titlebar.height() + m_titlebar.borderWidth()); return true; } bool FbWinFrame::hideHandle() { if (!m_use_handle) return false; m_handle.hide(); m_grip_left.hide(); m_grip_right.hide(); m_use_handle = false; if (static_cast(m_window.height() - m_handle.height() - m_handle.borderWidth()) <= 0) { m_window.resize(m_window.width(), 1); } else { // only take away one borderwidth (as the other border is still the "top" border) m_window.resize(m_window.width(), m_window.height() - m_handle.height() - m_handle.borderWidth()); } return true; } bool FbWinFrame::showHandle() { if (m_use_handle || theme()->handleWidth() == 0) return false; m_use_handle = true; // weren't previously rendered... renderHandles(); applyHandles(); m_handle.show(); m_handle.showSubwindows(); // shows grips m_window.resize(m_window.width(), m_window.height() + m_handle.height() + m_handle.borderWidth()); return true; } /** Set new event handler for the frame's windows */ void FbWinFrame::setEventHandler(FbTk::EventHandler &evh) { FbTk::EventManager &evm = *FbTk::EventManager::instance(); evm.add(evh, m_tab_container); evm.add(evh, m_label); evm.add(evh, m_titlebar); evm.add(evh, m_handle); evm.add(evh, m_grip_right); evm.add(evh, m_grip_left); evm.add(evh, m_window); } /** remove event handler from windows */ void FbWinFrame::removeEventHandler() { FbTk::EventManager &evm = *FbTk::EventManager::instance(); evm.remove(m_tab_container); evm.remove(m_label); evm.remove(m_titlebar); evm.remove(m_handle); evm.remove(m_grip_right); evm.remove(m_grip_left); evm.remove(m_window); } void FbWinFrame::exposeEvent(XExposeEvent &event) { if (m_titlebar == event.window) { m_titlebar.clearArea(event.x, event.y, event.width, event.height); } else if (m_tab_container == event.window) { m_tab_container.clearArea(event.x, event.y, event.width, event.height); } else if (m_label == event.window) { m_label.clearArea(event.x, event.y, event.width, event.height); } else if (m_handle == event.window) { m_handle.clearArea(event.x, event.y, event.width, event.height); } else if (m_grip_left == event.window) { m_grip_left.clearArea(event.x, event.y, event.width, event.height); } else if (m_grip_right == event.window) { m_grip_right.clearArea(event.x, event.y, event.width, event.height); } else { if (m_tab_container.tryExposeEvent(event)) return; // create compare function // that we should use with find_if FbTk::CompareEqual_base compare(&FbTk::FbWindow::window, event.window); ButtonList::iterator it = find_if(m_buttons_left.begin(), m_buttons_left.end(), compare); if (it != m_buttons_left.end()) { (*it)->exposeEvent(event); return; } it = find_if(m_buttons_right.begin(), m_buttons_right.end(), compare); if (it != m_buttons_right.end()) (*it)->exposeEvent(event); } } void FbWinFrame::handleEvent(XEvent &event) { if (event.type == ConfigureNotify && event.xconfigure.window == window().window()) configureNotifyEvent(event.xconfigure); } void FbWinFrame::configureNotifyEvent(XConfigureEvent &event) { resize(event.width, event.height); } void FbWinFrame::reconfigure() { if (m_tab_container.empty()) return; int grav_x=0, grav_y=0; // negate gravity gravityTranslate(grav_x, grav_y, -sizeHints().win_gravity, m_active_orig_client_bw, false); m_bevel = theme()->bevelWidth(); unsigned int orig_handle_h = handle().height(); if (m_use_handle && orig_handle_h != theme()->handleWidth()) m_window.resize(m_window.width(), m_window.height() - orig_handle_h + theme()->handleWidth()); handle().resize(handle().width(), theme()->handleWidth()); gripLeft().resize(buttonHeight(), theme()->handleWidth()); gripRight().resize(gripLeft().width(), gripLeft().height()); // align titlebar and render it if (m_use_titlebar) { reconfigureTitlebar(); m_titlebar.raise(); } else m_titlebar.lower(); if (m_tabmode == EXTERNAL) { unsigned int neww, newh; switch (m_screen.getTabPlacement()) { case TOPLEFT: case TOP: case TOPRIGHT: case BOTTOMLEFT: case BOTTOM: case BOTTOMRIGHT: neww = m_tab_container.width(); newh = buttonHeight(); break; default: neww = buttonHeight(); newh = m_tab_container.height(); break; } m_tab_container.resize(neww, newh); alignTabs(); } // leave client+grips alone if we're shaded (it'll get fixed when we unshade) if (!m_state.shaded || m_state.fullscreen) { int client_top = 0; int client_height = m_window.height(); if (m_use_titlebar) { // only one borderwidth as titlebar is really at -borderwidth int titlebar_height = m_titlebar.height() + m_titlebar.borderWidth(); client_top += titlebar_height; client_height -= titlebar_height; } // align handle and grips const int grip_height = m_handle.height(); const int grip_width = 20; //TODO const int handle_bw = static_cast(m_handle.borderWidth()); int ypos = m_window.height(); // if the handle isn't on, it's actually below the window if (m_use_handle) ypos -= grip_height + handle_bw; // we do handle settings whether on or not so that if they get toggled // then things are ok... m_handle.invalidateBackground(); m_handle.moveResize(-handle_bw, ypos, m_window.width(), grip_height); m_grip_left.invalidateBackground(); m_grip_left.moveResize(-handle_bw, -handle_bw, grip_width, grip_height); m_grip_right.invalidateBackground(); m_grip_right.moveResize(m_handle.width() - grip_width - handle_bw, -handle_bw, grip_width, grip_height); if (m_use_handle) { m_handle.raise(); client_height -= m_handle.height() + m_handle.borderWidth(); } else { m_handle.lower(); } m_clientarea.moveResize(0, client_top, m_window.width(), client_height); } gravityTranslate(grav_x, grav_y, sizeHints().win_gravity, m_active_orig_client_bw, false); // if the location changes, shift it if (grav_x != 0 || grav_y != 0) move(grav_x + x(), grav_y + y()); // render the theme if (isVisible()) { // update transparency settings if (FbTk::Transparent::haveRender()) { int alpha = getAlpha(m_state.focused); if (FbTk::Transparent::haveComposite()) { m_tab_container.setAlpha(255); m_window.setOpaque(alpha); } else { m_tab_container.setAlpha(alpha); m_window.setOpaque(255); } } renderAll(); applyAll(); clearAll(); } else { m_need_render = true; } m_shape.setPlaces(getShape()); m_shape.setShapeOffsets(0, titlebarHeight()); // titlebar stuff rendered already by reconftitlebar } void FbWinFrame::setShapingClient(FbTk::FbWindow *win, bool always_update) { m_shape.setShapeSource(win, 0, titlebarHeight(), always_update); } unsigned int FbWinFrame::buttonHeight() const { return m_titlebar.height() - m_bevel*2; } //--------------------- private area /** aligns and redraws title */ void FbWinFrame::redrawTitlebar() { if (!m_use_titlebar || m_tab_container.empty()) return; if (isVisible()) { m_tab_container.clear(); m_label.clear(); m_titlebar.clear(); } } /** Align buttons with title text window */ void FbWinFrame::reconfigureTitlebar() { if (!m_use_titlebar) return; int orig_height = m_titlebar.height(); // resize titlebar to window size with font height int title_height = theme()->font().height() == 0 ? 16 : theme()->font().height() + m_bevel*2 + 2; if (theme()->titleHeight() != 0) title_height = theme()->titleHeight(); // if the titlebar grows in size, make sure the whole window does too if (orig_height != title_height) m_window.resize(m_window.width(), m_window.height()-orig_height+title_height); m_titlebar.invalidateBackground(); m_titlebar.moveResize(-m_titlebar.borderWidth(), -m_titlebar.borderWidth(), m_window.width(), title_height); // draw left buttons first unsigned int next_x = m_bevel; unsigned int button_size = buttonHeight(); m_button_size = button_size; for (size_t i=0; i < m_buttons_left.size(); i++, next_x += button_size + m_bevel) { // probably on theme reconfigure, leave bg alone for now m_buttons_left[i]->invalidateBackground(); m_buttons_left[i]->moveResize(next_x, m_bevel, button_size, button_size); } next_x += m_bevel; // space left on titlebar between left and right buttons int space_left = m_titlebar.width() - next_x; if (!m_buttons_right.empty()) space_left -= m_buttons_right.size() * (button_size + m_bevel); space_left -= m_bevel; if (space_left <= 0) space_left = 1; m_label.invalidateBackground(); m_label.moveResize(next_x, m_bevel, space_left, button_size); m_tab_container.invalidateBackground(); if (m_tabmode == INTERNAL) m_tab_container.moveResize(next_x, m_bevel, space_left, button_size); else { if (m_use_tabs) { if (m_tab_container.orientation() == FbTk::ROT0) { m_tab_container.resize(m_tab_container.width(), button_size); } else { m_tab_container.resize(button_size, m_tab_container.height()); } } } next_x += m_label.width() + m_bevel; // finaly set new buttons to the right for (size_t i=0; i < m_buttons_right.size(); ++i, next_x += button_size + m_bevel) { m_buttons_right[i]->invalidateBackground(); m_buttons_right[i]->moveResize(next_x, m_bevel, button_size, button_size); } m_titlebar.raise(); // always on top } void FbWinFrame::renderAll() { m_need_render = false; renderTitlebar(); renderHandles(); renderTabContainer(); } void FbWinFrame::applyAll() { applyTitlebar(); applyHandles(); applyTabContainer(); } void FbWinFrame::renderTitlebar() { if (!m_use_titlebar) return; if (!isVisible()) { m_need_render = true; return; } // render pixmaps render(theme().focusedTheme()->titleTexture(), m_title_focused_color, m_title_focused_pm, m_titlebar.width(), m_titlebar.height()); render(theme().unfocusedTheme()->titleTexture(), m_title_unfocused_color, m_title_unfocused_pm, m_titlebar.width(), m_titlebar.height()); //!! TODO: don't render label if internal tabs render(theme().focusedTheme()->iconbarTheme()->texture(), m_label_focused_color, m_label_focused_pm, m_label.width(), m_label.height()); render(theme().unfocusedTheme()->iconbarTheme()->texture(), m_label_unfocused_color, m_label_unfocused_pm, m_label.width(), m_label.height()); } void FbWinFrame::renderTabContainer() { if (!isVisible()) { m_need_render = true; return; } const FbTk::Texture *tc_focused = &theme().focusedTheme()->iconbarTheme()->texture(); const FbTk::Texture *tc_unfocused = &theme().unfocusedTheme()->iconbarTheme()->texture(); if (m_tabmode == EXTERNAL && tc_focused->type() & FbTk::Texture::PARENTRELATIVE) tc_focused = &theme().focusedTheme()->titleTexture(); if (m_tabmode == EXTERNAL && tc_unfocused->type() & FbTk::Texture::PARENTRELATIVE) tc_unfocused = &theme().unfocusedTheme()->titleTexture(); render(*tc_focused, m_tabcontainer_focused_color, m_tabcontainer_focused_pm, m_tab_container.width(), m_tab_container.height(), m_tab_container.orientation()); render(*tc_unfocused, m_tabcontainer_unfocused_color, m_tabcontainer_unfocused_pm, m_tab_container.width(), m_tab_container.height(), m_tab_container.orientation()); renderButtons(); } void FbWinFrame::applyTitlebar() { // set up pixmaps for titlebar windows Pixmap label_pm = None; Pixmap title_pm = None; FbTk::Color label_color; FbTk::Color title_color; getCurrentFocusPixmap(label_pm, title_pm, label_color, title_color); int alpha = getAlpha (m_state.focused); m_titlebar.setAlpha(alpha); m_label.setAlpha(alpha); if (m_tabmode != INTERNAL) { m_label.setGC(theme()->iconbarTheme()->text().textGC()); m_label.setJustify(theme()->iconbarTheme()->text().justify()); if (label_pm != 0) m_label.setBackgroundPixmap(label_pm); else m_label.setBackgroundColor(label_color); } if (title_pm != 0) m_titlebar.setBackgroundPixmap(title_pm); else m_titlebar.setBackgroundColor(title_color); applyButtons(); } void FbWinFrame::renderHandles() { if (!m_use_handle) return; if (!isVisible()) { m_need_render = true; return; } render(theme().focusedTheme()->handleTexture(), m_handle_focused_color, m_handle_focused_pm, m_handle.width(), m_handle.height()); render(theme().unfocusedTheme()->handleTexture(), m_handle_unfocused_color, m_handle_unfocused_pm, m_handle.width(), m_handle.height()); render(theme().focusedTheme()->gripTexture(), m_grip_focused_color, m_grip_focused_pm, m_grip_left.width(), m_grip_left.height()); render(theme().unfocusedTheme()->gripTexture(), m_grip_unfocused_color, m_grip_unfocused_pm, m_grip_left.width(), m_grip_left.height()); } void FbWinFrame::applyHandles() { int alpha = getAlpha(m_state.focused); m_handle.setAlpha(alpha); m_grip_left.setAlpha(alpha); m_grip_right.setAlpha(alpha); if (m_state.focused) { if (m_handle_focused_pm) { m_handle.setBackgroundPixmap(m_handle_focused_pm); } else { m_handle.setBackgroundColor(m_handle_focused_color); } if (m_grip_focused_pm) { m_grip_left.setBackgroundPixmap(m_grip_focused_pm); m_grip_right.setBackgroundPixmap(m_grip_focused_pm); } else { m_grip_left.setBackgroundColor(m_grip_focused_color); m_grip_right.setBackgroundColor(m_grip_focused_color); } } else { if (m_handle_unfocused_pm) { m_handle.setBackgroundPixmap(m_handle_unfocused_pm); } else { m_handle.setBackgroundColor(m_handle_unfocused_color); } if (m_grip_unfocused_pm) { m_grip_left.setBackgroundPixmap(m_grip_unfocused_pm); m_grip_right.setBackgroundPixmap(m_grip_unfocused_pm); } else { m_grip_left.setBackgroundColor(m_grip_unfocused_color); m_grip_right.setBackgroundColor(m_grip_unfocused_color); } } } void FbWinFrame::renderButtons() { if (!isVisible()) { m_need_render = true; return; } render(theme().focusedTheme()->buttonTexture(), m_button_color, m_button_pm, m_button_size, m_button_size); render(theme().unfocusedTheme()->buttonTexture(), m_button_unfocused_color, m_button_unfocused_pm, m_button_size, m_button_size); render(theme()->buttonPressedTexture(), m_button_pressed_color, m_button_pressed_pm, m_button_size, m_button_size); } void FbWinFrame::applyButtons() { // setup left and right buttons for (size_t i=0; i < m_buttons_left.size(); ++i) applyButton(*m_buttons_left[i]); for (size_t i=0; i < m_buttons_right.size(); ++i) applyButton(*m_buttons_right[i]); } void FbWinFrame::init() { if (theme()->handleWidth() == 0) m_use_handle = false; m_handle.showSubwindows(); // clear pixmaps m_title_focused_pm = m_title_unfocused_pm = 0; m_label_focused_pm = m_label_unfocused_pm = 0; m_tabcontainer_focused_pm = m_tabcontainer_unfocused_pm = 0; m_handle_focused_pm = m_handle_unfocused_pm = 0; m_button_pm = m_button_unfocused_pm = m_button_pressed_pm = 0; m_grip_unfocused_pm = m_grip_focused_pm = 0; m_button_size = 26; m_label.setBorderWidth(0); setTabMode(NOTSET); m_label.setEventMask(ExposureMask | ButtonPressMask | ButtonReleaseMask | ButtonMotionMask | EnterWindowMask); showHandle(); showTitlebar(); // Note: we don't show clientarea yet setEventHandler(*this); // setup cursors for resize grips gripLeft().setCursor(theme()->lowerLeftAngleCursor()); gripRight().setCursor(theme()->lowerRightAngleCursor()); } /** Setups upp background, pressed pixmap/color of the button to current theme */ void FbWinFrame::applyButton(FbTk::Button &btn) { if (m_button_pressed_pm) btn.setPressedPixmap(m_button_pressed_pm); else btn.setPressedColor(m_button_pressed_color); Pixmap pm = m_state.focused ? m_button_pm : m_button_unfocused_pm; btn.setAlpha(getAlpha(m_state.focused)); btn.setGC(theme()->buttonPicGC()); if (pm) btn.setBackgroundPixmap(pm); else btn.setBackgroundColor(m_state.focused ? m_button_color : m_button_unfocused_color); } void FbWinFrame::render(const FbTk::Texture &tex, FbTk::Color &col, Pixmap &pm, unsigned int w, unsigned int h, FbTk::Orientation orient) { Pixmap tmp = pm; if (!tex.usePixmap()) { pm = None; col = tex.color(); } else { pm = m_imagectrl.renderImage(w, h, tex, orient); } if (tmp) m_imagectrl.removeImage(tmp); } void FbWinFrame::getCurrentFocusPixmap(Pixmap &label_pm, Pixmap &title_pm, FbTk::Color &label_color, FbTk::Color &title_color) { if (m_state.focused) { if (m_label_focused_pm != 0) label_pm = m_label_focused_pm; else label_color = m_label_focused_color; if (m_title_focused_pm != 0) title_pm = m_title_focused_pm; else title_color = m_title_focused_color; } else { if (m_label_unfocused_pm != 0) label_pm = m_label_unfocused_pm; else label_color = m_label_unfocused_color; if (m_title_unfocused_pm != 0) title_pm = m_title_unfocused_pm; else title_color = m_title_unfocused_color; } } void FbWinFrame::applyTabContainer() { m_tab_container.setAlpha(getAlpha(m_state.focused)); // do the parent container Pixmap tabcontainer_pm = None; FbTk::Color *tabcontainer_color = NULL; if (m_state.focused) { if (m_tabcontainer_focused_pm != 0) tabcontainer_pm = m_tabcontainer_focused_pm; else tabcontainer_color = &m_tabcontainer_focused_color; } else { if (m_tabcontainer_unfocused_pm != 0) tabcontainer_pm = m_tabcontainer_unfocused_pm; else tabcontainer_color = &m_tabcontainer_unfocused_color; } if (tabcontainer_pm != 0) m_tab_container.setBackgroundPixmap(tabcontainer_pm); else m_tab_container.setBackgroundColor(*tabcontainer_color); // and the labelbuttons in it FbTk::Container::ItemList::iterator btn_it = m_tab_container.begin(); FbTk::Container::ItemList::iterator btn_it_end = m_tab_container.end(); for (; btn_it != btn_it_end; ++btn_it) { IconButton *btn = static_cast(*btn_it); btn->reconfigTheme(); } } int FbWinFrame::getShape() const { int shape = theme()->shapePlace(); if (!m_state.useTitlebar()) shape &= ~(FbTk::Shape::TOPRIGHT|FbTk::Shape::TOPLEFT); if (!m_state.useHandle()) shape &= ~(FbTk::Shape::BOTTOMRIGHT|FbTk::Shape::BOTTOMLEFT); return shape; } void FbWinFrame::applyDecorations(bool do_move) { int grav_x=0, grav_y=0; // negate gravity gravityTranslate(grav_x, grav_y, -sizeHints().win_gravity, m_active_orig_client_bw, false); bool client_move = setBorderWidth(false); // tab deocration only affects if we're external // must do before the setTabMode in case it goes // to external and is meant to be hidden if (m_state.useTabs()) client_move |= showTabs(); else client_move |= hideTabs(); // we rely on frame not doing anything if it is already shown/hidden if (m_state.useTitlebar()) { client_move |= showTitlebar(); if (m_screen.getDefaultInternalTabs()) client_move |= setTabMode(INTERNAL); else client_move |= setTabMode(EXTERNAL); } else { client_move |= hideTitlebar(); if (m_state.useTabs()) client_move |= setTabMode(EXTERNAL); } if (m_state.useHandle()) client_move |= showHandle(); else client_move |= hideHandle(); // apply gravity once more gravityTranslate(grav_x, grav_y, sizeHints().win_gravity, m_active_orig_client_bw, false); // if the location changes, shift it if (do_move && (grav_x != 0 || grav_y != 0)) { move(grav_x + x(), grav_y + y()); client_move = true; } if (do_move) { reconfigure(); m_state.saveGeometry(x(), y(), width(), height()); } if (client_move) frameExtentSig().emit(); } bool FbWinFrame::setBorderWidth(bool do_move) { unsigned int border_width = theme()->border().width(); unsigned int win_bw = m_state.useBorder() ? border_width : 0; if (border_width && theme()->border().color().pixel() != window().borderColor()) { window().setBorderColor(theme()->border().color()); titlebar().setBorderColor(theme()->border().color()); handle().setBorderColor(theme()->border().color()); gripLeft().setBorderColor(theme()->border().color()); gripRight().setBorderColor(theme()->border().color()); tabcontainer().setBorderColor(theme()->border().color()); } if (border_width == handle().borderWidth() && win_bw == window().borderWidth()) return false; int grav_x=0, grav_y=0; // negate gravity if (do_move) gravityTranslate(grav_x, grav_y, -sizeHints().win_gravity, m_active_orig_client_bw, false); int bw_changes = 0; // we need to change the size of the window // if the border width changes... if (m_use_titlebar) bw_changes += static_cast(border_width - titlebar().borderWidth()); if (m_use_handle) bw_changes += static_cast(border_width - handle().borderWidth()); window().setBorderWidth(win_bw); setTabMode(NOTSET); titlebar().setBorderWidth(border_width); handle().setBorderWidth(border_width); gripLeft().setBorderWidth(border_width); gripRight().setBorderWidth(border_width); if (bw_changes != 0) resize(width(), height() + bw_changes); if (m_tabmode == EXTERNAL) alignTabs(); if (do_move) { frameExtentSig().emit(); gravityTranslate(grav_x, grav_y, sizeHints().win_gravity, m_active_orig_client_bw, false); // if the location changes, shift it if (grav_x != 0 || grav_y != 0) move(grav_x + x(), grav_y + y()); } return true; } // this function translates its arguments according to win_gravity // if win_gravity is negative, it does an inverse translation // This function should be used when a window is mapped/unmapped/pos configured void FbWinFrame::gravityTranslate(int &x, int &y, int win_gravity, unsigned int client_bw, bool move_frame) { bool invert = false; if (win_gravity < 0) { invert = true; win_gravity = -win_gravity; // make +ve } /* Ok, so, gravity says which point of the frame is put where the * corresponding bit of window would have been * Thus, x,y always refers to where top left of the WINDOW would be placed * but given that we're wrapping it in a frame, we actually place * it so that the given reference point is in the same spot as the * window's reference point would have been. * i.e. east gravity says that the centre of the right hand side of the * frame is placed where the centre of the rhs of the window would * have been if there was no frame. * Hope that makes enough sense. * * NOTE: the gravity calculations are INDEPENDENT of the client * window width/height. * * If you get confused with the calculations, draw a picture. * */ // We calculate offsets based on the gravity and frame aspects // and at the end apply those offsets +ve or -ve depending on 'invert' // These will be set to the resulting offsets for adjusting the frame position int x_offset = 0; int y_offset = 0; // These are the amount that the frame is larger than the client window // Note that the client window's x,y is offset by it's borderWidth, which // is removed by fluxbox, so the gravity needs to account for this change // these functions already check if the title/handle is used int bw_diff = client_bw - m_window.borderWidth(); int height_diff = 2*bw_diff - titlebarHeight() - handleHeight(); int width_diff = 2*bw_diff; if (win_gravity == SouthWestGravity || win_gravity == SouthGravity || win_gravity == SouthEastGravity) y_offset = height_diff; if (win_gravity == WestGravity || win_gravity == CenterGravity || win_gravity == EastGravity) y_offset = height_diff/2; if (win_gravity == NorthEastGravity || win_gravity == EastGravity || win_gravity == SouthEastGravity) x_offset = width_diff; if (win_gravity == NorthGravity || win_gravity == CenterGravity || win_gravity == SouthGravity) x_offset = width_diff/2; if (win_gravity == StaticGravity) { x_offset = bw_diff; y_offset = bw_diff - titlebarHeight(); } if (invert) { x_offset = -x_offset; y_offset = -y_offset; } x += x_offset; y += y_offset; if (move_frame && (x_offset != 0 || y_offset != 0)) { move(x, y); } } int FbWinFrame::widthOffset() const { if (m_tabmode != EXTERNAL || !m_use_tabs) return 0; // same height offset for top and bottom tabs switch (m_screen.getTabPlacement()) { case LEFTTOP: case RIGHTTOP: case LEFT: case RIGHT: case LEFTBOTTOM: case RIGHTBOTTOM: return m_tab_container.width() + m_window.borderWidth(); break; default: // kill warning break; } return 0; } int FbWinFrame::heightOffset() const { if (m_tabmode != EXTERNAL || !m_use_tabs) return 0; switch (m_screen.getTabPlacement()) { case TOPLEFT: case TOP: case TOPRIGHT: case BOTTOMLEFT: case BOTTOM: case BOTTOMRIGHT: return m_tab_container.height() + m_window.borderWidth(); break; default: // kill warning break; } return 0; } int FbWinFrame::xOffset() const { if (m_tabmode != EXTERNAL || !m_use_tabs) return 0; switch (m_screen.getTabPlacement()) { case LEFTTOP: case LEFT: case LEFTBOTTOM: return m_tab_container.width() + m_window.borderWidth(); break; default: // kill warning break; } return 0; } int FbWinFrame::yOffset() const { if (m_tabmode != EXTERNAL || !m_use_tabs) return 0; switch (m_screen.getTabPlacement()) { case TOPLEFT: case TOP: case TOPRIGHT: return m_tab_container.height() + m_window.borderWidth(); break; default: // kill warning break; } return 0; } void FbWinFrame::applySizeHints(unsigned int &width, unsigned int &height, bool maximizing) const { const int h = height - titlebarHeight() - handleHeight(); height = max(h, static_cast(titlebarHeight() + handleHeight())); sizeHints().apply(width, height, maximizing); height += titlebarHeight() + handleHeight(); } void FbWinFrame::displaySize(unsigned int width, unsigned int height) const { unsigned int i, j; sizeHints().displaySize(i, j, width, height - titlebarHeight() - handleHeight()); m_screen.showGeometry(i, j); } bool FbWinFrame::insideTitlebar(Window win) const { return gripLeft().window() != win && gripRight().window() != win && window().window() != win; } int FbWinFrame::getContext(Window win, int x, int y, int last_x, int last_y, bool doBorders) { int context = 0; if (gripLeft().window() == win) return Keys::ON_LEFTGRIP; if (gripRight().window() == win) return Keys::ON_RIGHTGRIP; if (doBorders) { using RectangleUtil::insideBorder; int borderw = window().borderWidth(); if ( // if mouse is currently on the window border, ignore it ( ! insideBorder(window(), x, y, borderw) && ( externalTabMode() || ! insideBorder(tabcontainer(), x, y, borderw) ) ) || // or if mouse was on border when it was last clicked ( ! insideBorder(window(), last_x, last_y, borderw) && ( externalTabMode() || ! insideBorder(tabcontainer(), last_x, last_y, borderw ) ) ) ) context = Keys::ON_WINDOWBORDER; } if (window().window() == win) return context | Keys::ON_WINDOW; // /!\ old code: handle = titlebar in motionNotifyEvent but only there ! // handle() as border ?? if (handle().window() == win) return Keys::ON_WINDOWBORDER | Keys::ON_WINDOW; if (titlebar().window() == win) return context | Keys::ON_TITLEBAR; if (label().window() == win) return context | Keys::ON_TITLEBAR; // internal tabs are on title bar if (tabcontainer().window() == win) return context | Keys::ON_TAB | (externalTabMode()?0:Keys::ON_TITLEBAR); FbTk::Container::ItemList::iterator it = tabcontainer().begin(); FbTk::Container::ItemList::iterator it_end = tabcontainer().end(); for (; it != it_end; ++it) { if ((*it)->window() == win) break; } // internal tabs are on title bar if (it != it_end) return context | Keys::ON_TAB | (externalTabMode()?0:Keys::ON_TITLEBAR); return context; } fluxbox-1.3.5/src/PaxHeaders.25974/FbWinFrame.hh0000644000175000017500000000013212106662425017344 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749876.187812462 30 ctime=1360750008.747811614 fluxbox-1.3.5/src/FbWinFrame.hh0000644000175000017500000003512512106662425015401 0ustar00mgmg00000000000000// FbWinFrame.hh for Fluxbox Window Manager // Copyright (c) 2003 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBWINFRAME_HH #define FBWINFRAME_HH #include "WindowState.hh" #include "FbTk/FbWindow.hh" #include "FbTk/EventHandler.hh" #include "FbTk/RefCount.hh" #include "FbTk/Color.hh" #include "FbTk/LayerItem.hh" #include "FbTk/TextButton.hh" #include "FbTk/DefaultValue.hh" #include "FbTk/Container.hh" #include "FbTk/Shape.hh" #include "FbTk/Signal.hh" #include #include class FbWinFrameTheme; class BScreen; class IconButton; class Focusable; template class FocusableTheme; namespace FbTk { class ImageControl; template class Command; class Texture; } /// holds a window frame with a client window /// (see: image) class FbWinFrame:public FbTk::EventHandler { public: // STRICTINTERNAL means it doesn't go external automatically when no titlebar enum TabMode { NOTSET = 0, INTERNAL = 1, EXTERNAL }; /// Toolbar placement on the screen enum TabPlacement{ // top and bottom placement TOPLEFT = 1, TOP, TOPRIGHT, BOTTOMLEFT, BOTTOM, BOTTOMRIGHT, // left and right placement LEFTBOTTOM, LEFT, LEFTTOP, RIGHTBOTTOM, RIGHT, RIGHTTOP, DEFAULT = TOPLEFT }; /// create a top level window FbWinFrame(BScreen &screen, unsigned int client_depth, WindowState &state, FocusableTheme &theme); /* /// create a frame window inside another FbWindow, NOT IMPLEMENTED! FbWinFrame(BScreen &screen, FbWinFrameTheme &theme, FbTk::ImageControl &imgctrl, const FbTk::FbWindow &parent, int x, int y, unsigned int width, unsigned int height); */ /// destroy frame ~FbWinFrame(); void hide(); void show(); bool isVisible() const { return m_visible; } void move(int x, int y); void resize(unsigned int width, unsigned int height); /// resize client to specified size and resize frame to it void resizeForClient(unsigned int width, unsigned int height, int win_gravity=ForgetGravity, unsigned int client_bw = 0); // for when there needs to be an atomic move+resize operation void moveResizeForClient(int x, int y, unsigned int width, unsigned int height, int win_gravity=ForgetGravity, unsigned int client_bw = 0, bool move = true, bool resize = true); // can elect to ignore move or resize (mainly for use of move/resize individual functions void moveResize(int x, int y, unsigned int width, unsigned int height, bool move = true, bool resize = true); // move without transparency or special effects (generally when dragging) void quietMoveResize(int x, int y, unsigned int width, unsigned int height); /// some outside move/resize happened, and we need to notify all of our windows /// in case of transparency void notifyMoved(bool clear); void clearAll(); /// set focus/unfocus style void setFocus(bool newvalue); void setFocusTitle(const FbTk::BiDiString &str) { m_label.setText(str); } bool setTabMode(TabMode tabmode); void updateTabProperties() { alignTabs(); } /// Alpha settings void setAlpha(bool focused, int value); void applyAlpha(); int getAlpha(bool focused) const; void setDefaultAlpha(); bool getUseDefaultAlpha() const; /// add a button to the left of the label void addLeftButton(FbTk::Button *btn); /// add a button to the right of the label void addRightButton(FbTk::Button *btn); /// remove all buttons from titlebar void removeAllButtons(); /// adds a button to tab container void createTab(FbTk::Button &button); /// removes a specific button from label window void removeTab(IconButton *id); /// move label button to the left void moveLabelButtonLeft(FbTk::TextButton &btn); /// move label button to the right void moveLabelButtonRight(FbTk::TextButton &btn); /// move label button to the given location( x and y are relative to the root window) void moveLabelButtonTo(FbTk::TextButton &btn, int x, int y); /// move the first label button to the left of the second void moveLabelButtonLeftOf(FbTk::TextButton &btn, const FbTk::TextButton &dest); //move the first label button to the right of the second void moveLabelButtonRightOf(FbTk::TextButton &btn, const FbTk::TextButton &dest); /// attach a client window for client area void setClientWindow(FbTk::FbWindow &win); /// remove attached client window void removeClient(); /// redirect events to another eventhandler void setEventHandler(FbTk::EventHandler &evh); /// remove any handler for the windows void removeEventHandler(); const SizeHints &sizeHints() const { return m_state.size_hints; } void setSizeHints(const SizeHints &hint) { m_state.size_hints = hint; } void applySizeHints(unsigned int &width, unsigned int &height, bool maximizing = false) const; void displaySize(unsigned int width, unsigned int height) const; void setDecorationMask(unsigned int mask) { m_state.deco_mask = mask; } void applyDecorations(bool do_move = true); void applyState(); // this function translates its arguments according to win_gravity // if win_gravity is negative, it does an inverse translation void gravityTranslate(int &x, int &y, int win_gravity, unsigned int client_bw, bool move_frame = false); void setActiveGravity(int gravity, unsigned int orig_client_bw) { m_state.size_hints.win_gravity = gravity; m_active_orig_client_bw = orig_client_bw; } /** @name Event handlers */ //@{ void exposeEvent(XExposeEvent &event); void configureNotifyEvent(XConfigureEvent &event); void handleEvent(XEvent &event); //@} void reconfigure(); void setShapingClient(FbTk::FbWindow *win, bool always_update); void updateShape() { m_shape.update(); } /** @name accessors */ //@{ int x() const { return m_window.x(); } int y() const { return m_window.y(); } unsigned int width() const { return m_window.width(); } unsigned int height() const { return m_window.height(); } // extra bits for tabs int xOffset() const; int yOffset() const; int widthOffset() const; int heightOffset() const; const FbTk::FbWindow &window() const { return m_window; } FbTk::FbWindow &window() { return m_window; } /// @return titlebar window const FbTk::FbWindow &titlebar() const { return m_titlebar; } FbTk::FbWindow &titlebar() { return m_titlebar; } const FbTk::FbWindow &label() const { return m_label; } FbTk::FbWindow &label() { return m_label; } const FbTk::Container &tabcontainer() const { return m_tab_container; } FbTk::Container &tabcontainer() { return m_tab_container; } /// @return clientarea window const FbTk::FbWindow &clientArea() const { return m_clientarea; } FbTk::FbWindow &clientArea() { return m_clientarea; } /// @return handle window const FbTk::FbWindow &handle() const { return m_handle; } FbTk::FbWindow &handle() { return m_handle; } const FbTk::FbWindow &gripLeft() const { return m_grip_left; } FbTk::FbWindow &gripLeft() { return m_grip_left; } const FbTk::FbWindow &gripRight() const { return m_grip_right; } FbTk::FbWindow &gripRight() { return m_grip_right; } bool focused() const { return m_state.focused; } FocusableTheme &theme() const { return m_theme; } /// @return titlebar height unsigned int titlebarHeight() const { return (m_use_titlebar?m_titlebar.height()+m_titlebar.borderWidth():0); } unsigned int handleHeight() const { return (m_use_handle?m_handle.height()+m_handle.borderWidth():0); } /// @return size of button unsigned int buttonHeight() const; bool externalTabMode() const { return m_tabmode == EXTERNAL && m_use_tabs; } const FbTk::LayerItem &layerItem() const { return m_layeritem; } FbTk::LayerItem &layerItem() { return m_layeritem; } FbTk::Signal<> &frameExtentSig() { return m_frame_extent_sig; } /// @returns true if the window is inside titlebar, /// assuming window is an event window that was generated for this frame. bool insideTitlebar(Window win) const; /// @returns context for window, /// assuming window is an event window that was generated for this frame. int getContext(Window win, int x=0, int y=0, int last_x=0, int last_y=0, bool doBorders=false); //@} private: void redrawTitlebar(); /// reposition titlebar items void reconfigureTitlebar(); /** @name render helper functions */ //@{ void renderAll(); void renderTitlebar(); void renderHandles(); void renderTabContainer(); // and labelbuttons void renderButtons(); // subset of renderTitlebar - don't call directly /// renders to pixmap or sets color void render(const FbTk::Texture &tex, FbTk::Color &col, Pixmap &pm, unsigned int width, unsigned int height, FbTk::Orientation orient = FbTk::ROT0); //@} // these return true/false for if something changed bool hideTitlebar(); bool showTitlebar(); bool hideTabs(); bool showTabs(); bool hideHandle(); bool showHandle(); bool setBorderWidth(bool do_move = true); // check which corners should be rounded int getShape() const; /** @name apply pixmaps depending on focus */ //@{ void applyAll(); void applyTitlebar(); void applyHandles(); void applyTabContainer(); // and label buttons void applyButtons(); // only called within applyTitlebar void getCurrentFocusPixmap(Pixmap &label_pm, Pixmap &title_pm, FbTk::Color &label_color, FbTk::Color &title_color); /// initiate inserted button for current theme void applyButton(FbTk::Button &btn); void alignTabs(); //@} /// initiate some commont variables void init(); BScreen &m_screen; FocusableTheme &m_theme; ///< theme to be used FbTk::ImageControl &m_imagectrl; ///< Image control for rendering WindowState &m_state; /** @name windows */ //@{ FbTk::FbWindow m_window; ///< base window that holds each decorations (ie titlebar, handles) // want this deleted before the windows in it FbTk::LayerItem m_layeritem; FbTk::FbWindow m_titlebar; ///< titlebar window FbTk::Container m_tab_container; ///< Holds tabs FbTk::TextButton m_label; ///< holds title FbTk::FbWindow m_handle; ///< handle between grips FbTk::FbWindow m_grip_right, ///< rightgrip m_grip_left; ///< left grip FbTk::FbWindow m_clientarea; ///< window that sits behind client window to fill gaps @see setClientWindow //@} FbTk::Signal<> m_frame_extent_sig; typedef std::vector ButtonList; ButtonList m_buttons_left, ///< buttons to the left m_buttons_right; ///< buttons to the right typedef std::list LabelList; int m_bevel; ///< bevel between titlebar items and titlebar bool m_use_titlebar; ///< if we should use titlebar bool m_use_tabs; ///< if we should use tabs (turns them off in external mode only) bool m_use_handle; ///< if we should use handle bool m_visible; ///< if we are currently showing ///< do we use screen or window alpha settings ? (0 = window, 1 = default, 2 = default and window never set) /** @name pixmaps and colors for rendering */ //@{ Pixmap m_title_focused_pm; ///< pixmap for focused title FbTk::Color m_title_focused_color; ///< color for focused title Pixmap m_title_unfocused_pm; ///< pixmap for unfocused title FbTk::Color m_title_unfocused_color; ///< color for unfocused title Pixmap m_label_focused_pm; ///< pixmap for focused label (only visible with external tabs) FbTk::Color m_label_focused_color; ///< color for focused label Pixmap m_label_unfocused_pm; ///< pixmap for unfocused label FbTk::Color m_label_unfocused_color; ///< color for unfocused label Pixmap m_tabcontainer_focused_pm; ///< pixmap for focused tab container FbTk::Color m_tabcontainer_focused_color; ///< color for focused tab container Pixmap m_tabcontainer_unfocused_pm; ///< pixmap for unfocused tab container FbTk::Color m_tabcontainer_unfocused_color; ///< color for unfocused tab container FbTk::Color m_handle_focused_color, m_handle_unfocused_color; Pixmap m_handle_focused_pm, m_handle_unfocused_pm; Pixmap m_button_pm; ///< normal button FbTk::Color m_button_color; ///< normal color button Pixmap m_button_unfocused_pm; ///< unfocused button FbTk::Color m_button_unfocused_color; ///< unfocused color button Pixmap m_button_pressed_pm; ///< pressed button FbTk::Color m_button_pressed_color; ///< pressed button color Pixmap m_grip_focused_pm; FbTk::Color m_grip_focused_color; ///< if no pixmap is given for grip, use this color Pixmap m_grip_unfocused_pm; ///< unfocused pixmap for grip FbTk::Color m_grip_unfocused_color; ///< unfocused color for grip if no pixmap is given //@} TabMode m_tabmode; unsigned int m_active_orig_client_bw; bool m_need_render; int m_button_size; ///< size for all titlebar buttons /// alpha values typedef FbTk::ConstObjectAccessor AlphaAcc; FbTk::DefaultValue m_focused_alpha; FbTk::DefaultValue m_unfocused_alpha; FbTk::Shape m_shape; }; #endif // FBWINFRAME_HH fluxbox-1.3.5/src/PaxHeaders.25974/FbAtoms.cc0000644000175000017500000000013212106662425016705 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.187812462 30 ctime=1360750008.747811614 fluxbox-1.3.5/src/FbAtoms.cc0000644000175000017500000000405012106662425014733 0ustar00mgmg00000000000000// FbAtom.cc // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "FbAtoms.hh" #include "FbTk/App.hh" namespace { FbAtoms* s_singleton = 0; } // end of anonymous namespace FbAtoms::FbAtoms() { Display* dpy = FbTk::App::instance()->display(); xa_wm_protocols = XInternAtom(dpy, "WM_PROTOCOLS", False); xa_wm_state = XInternAtom(dpy, "WM_STATE", False); xa_wm_change_state = XInternAtom(dpy, "WM_CHANGE_STATE", False); xa_wm_delete_window = XInternAtom(dpy, "WM_DELETE_WINDOW", False); xa_wm_take_focus = XInternAtom(dpy, "WM_TAKE_FOCUS", False); motif_wm_info = XInternAtom(dpy, "_MOTIF_WM_INFO", False); motif_wm_hints = XInternAtom(dpy, "_MOTIF_WM_HINTS", False); blackbox_attributes = XInternAtom(dpy, "_BLACKBOX_ATTRIBUTES", False); s_singleton = this; } FbAtoms::~FbAtoms() { s_singleton = 0; } FbAtoms *FbAtoms::instance() { if (s_singleton == 0) { s_singleton = new FbAtoms(); } return s_singleton; } fluxbox-1.3.5/src/PaxHeaders.25974/FbAtoms.hh0000644000175000017500000000013212106662425016717 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.183812462 30 ctime=1360750008.747811614 fluxbox-1.3.5/src/FbAtoms.hh0000644000175000017500000000414312106662425014750 0ustar00mgmg00000000000000// FbAtom.hh // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef FBATOMS_HH #define FBATOMS_HH #include /// atom handler for basic X atoms class FbAtoms { public: ~FbAtoms(); static FbAtoms *instance(); Atom getWMChangeStateAtom() const { return xa_wm_change_state; } Atom getWMStateAtom() const { return xa_wm_state; } Atom getWMDeleteAtom() const { return xa_wm_delete_window; } Atom getWMProtocolsAtom() const { return xa_wm_protocols; } Atom getWMTakeFocusAtom() const { return xa_wm_take_focus; } Atom getMWMHintsAtom() const { return motif_wm_hints; } // these atoms are for normal app->WM interaction beyond the scope of the // ICCCM... Atom getFluxboxAttributesAtom() const { return blackbox_attributes; } private: FbAtoms(); Atom blackbox_attributes; Atom motif_wm_info; Atom motif_wm_hints; Atom xa_wm_protocols; Atom xa_wm_state; Atom xa_wm_delete_window; Atom xa_wm_take_focus; Atom xa_wm_change_state; }; #endif //FBATOMS_HH fluxbox-1.3.5/src/PaxHeaders.25974/ArrowButton.cc0000644000175000017500000000013212106662425017640 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.183812462 30 ctime=1360750008.747811614 fluxbox-1.3.5/src/ArrowButton.cc0000644000175000017500000000652512106662425015677 0ustar00mgmg00000000000000// ArrowButton.cc for Fluxbox Window Manager // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #include "ArrowButton.hh" #include "ButtonTheme.hh" #include "FbTk/Util.hh" ArrowButton::ArrowButton(FbTk::FbDrawable::TriangleType arrow_type, const FbTk::FbWindow &parent, int x, int y, unsigned int width, unsigned int height): FbTk::Button(parent, x, y, width, height), m_arrow_type(arrow_type), m_mouse_handler(0), m_arrowscale(250) { setEventMask(ExposureMask | ButtonPressMask | ButtonReleaseMask | EnterWindowMask | LeaveWindowMask); } ArrowButton::ArrowButton(FbTk::FbDrawable::TriangleType arrow_type, int screen_num, int x, int y, unsigned int width, unsigned int height): FbTk::Button(screen_num, x, y, width, height), m_arrow_type(arrow_type), m_mouse_handler(0), m_arrowscale(250) { setEventMask(ExposureMask | ButtonPressMask | ButtonReleaseMask | EnterWindowMask | LeaveWindowMask); } void ArrowButton::clear() { FbTk::Button::clear(); drawArrow(); } void ArrowButton::exposeEvent(XExposeEvent &event) { FbTk::Button::exposeEvent(event); drawArrow(); } void ArrowButton::buttonPressEvent(XButtonEvent &event) { FbTk::Button::buttonPressEvent(event); drawArrow(); } void ArrowButton::buttonReleaseEvent(XButtonEvent &event) { FbTk::Button::buttonReleaseEvent(event); drawArrow(); } void ArrowButton::enterNotifyEvent(XCrossingEvent &ce) { if (m_mouse_handler) m_mouse_handler->enterNotifyEvent(ce); } void ArrowButton::leaveNotifyEvent(XCrossingEvent &ce) { if (m_mouse_handler) m_mouse_handler->leaveNotifyEvent(ce); } /** redraws the arrow button */ void ArrowButton::drawArrow() { if (gc() != 0) drawTriangle(gc(), m_arrow_type, 0, 0, width(), height(), m_arrowscale); } void ArrowButton::updateTheme(const FbTk::Theme &theme) { // it must be a button theme const ButtonTheme &btheme = static_cast(theme); m_arrowscale = btheme.scale(); if (m_arrowscale == 0) m_arrowscale = 250; // default is 0 => 300 m_arrowscale = FbTk::Util::clamp(m_arrowscale, 100, 100000); } fluxbox-1.3.5/src/PaxHeaders.25974/ArrowButton.hh0000644000175000017500000000013212106662425017652 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.179812462 30 ctime=1360750008.751811614 fluxbox-1.3.5/src/ArrowButton.hh0000644000175000017500000000416712106662425015711 0ustar00mgmg00000000000000// ArrowButton.hh for Fluxbox Window Manager // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef ARROWBUTTON_HH #define ARROWBUTTON_HH #include "FbTk/Button.hh" /// Displays a arrow on a button class ArrowButton: public FbTk::Button { public: ArrowButton(FbTk::FbDrawable::TriangleType arrow_type, const FbTk::FbWindow &parent, int x, int y, unsigned int width, unsigned int height); ArrowButton(FbTk::FbDrawable::TriangleType arrow_type, int screen_num, int x, int y, unsigned int width, unsigned int height); void clear(); void buttonReleaseEvent(XButtonEvent &event); void buttonPressEvent(XButtonEvent &event); void exposeEvent(XExposeEvent &event); void enterNotifyEvent(XCrossingEvent &ce); void leaveNotifyEvent(XCrossingEvent &ce); void updateTheme(const FbTk::Theme &theme); private: void drawArrow(); FbTk::FbDrawable::TriangleType m_arrow_type; FbTk::EventHandler *m_mouse_handler; int m_arrowscale; }; #endif // ARROWBUTTON_HH fluxbox-1.3.5/src/PaxHeaders.25974/AtomHandler.hh0000644000175000017500000000013212106662425017562 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.179812462 30 ctime=1360750008.751811614 fluxbox-1.3.5/src/AtomHandler.hh0000644000175000017500000000611212106662425015611 0ustar00mgmg00000000000000// AtomHandler for fluxbox // Copyright (c) 2002 - 2006 Henrik Kinnunen (fluxgen at fluxbox dot org) // 2003 - 2005 Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. #ifndef ATOMHANDLER_HH #define ATOMHANDLER_HH #include #include class FluxboxWindow; class WinClient; class BScreen; class AtomHandler { public: virtual ~AtomHandler() { } virtual void initForScreen(BScreen &screen) = 0; virtual void setupFrame(FluxboxWindow &win) = 0; virtual void setupClient(WinClient &winclient) = 0; virtual void updateFocusedWindow(BScreen &screen, Window win) = 0; virtual void updateClientList(BScreen &screen) = 0; virtual void updateWorkspaceNames(BScreen &screen) = 0; virtual void updateCurrentWorkspace(BScreen &screen) = 0; virtual void updateWorkspaceCount(BScreen &screen) = 0; virtual void updateWorkarea(BScreen &screen) = 0; virtual void updateFrameClose(FluxboxWindow &win) = 0; virtual void updateClientClose(WinClient &winclient) = 0; virtual void updateWorkspace(FluxboxWindow &win) = 0; virtual void updateState(FluxboxWindow &win) = 0; virtual void updateHints(FluxboxWindow &win) = 0; virtual void updateLayer(FluxboxWindow &win) = 0; virtual void updateFrameExtents(FluxboxWindow &win) { } virtual bool checkClientMessage(const XClientMessageEvent &ce, BScreen * screen, WinClient * const winclient) = 0; virtual bool propertyNotify(WinClient &winclient, Atom the_property) = 0; virtual void reconfigure() {} /// should this object be updated or not? bool update() const { return m_update; } void setName(const std::string& name) { m_name = name; } const std::string& getName() const { return m_name; } protected: AtomHandler():m_update(true) { } void disableUpdate() { m_update = false; } void enableUpdate() { m_update = true; } private: bool m_update; ///< do we get update or not std::string m_name; ///< name of atomhandler }; #endif // ATOMHANDLER_HH fluxbox-1.3.5/src/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662604017107 xustar000000000000000030 mtime=1360749956.539811948 30 atime=1360750002.967811651 30 ctime=1360750008.751811614 fluxbox-1.3.5/src/Makefile.in0000644000175000017500000010765112106662604015150 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Makefile.am for fluxbox # Copyright (c) 2001 - 2003 Henrik Kinnunen (fluxgen at users.sourceforge.net) # # src/Makefile.am for Blackbox 0.61.x - an X11 Window manager # Copyright (c) 1997 - 2000 Brad Hughes (bhughes at tcac.net) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), # to deal in the Software without restriction, including without limitation # the rights to use, copy, modify, merge, publish, distribute, sublicense, # and/or sell copies of the Software, and to permit persons to whom the # Software is furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # DEALINGS IN THE SOFTWARE. VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : bin_PROGRAMS = fluxbox$(EXEEXT) @SYSTRAY_SRC_TRUE@@TOOLBAR_SRC_TRUE@am__append_1 = SystemTray.hh SystemTray.cc subdir = src DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am__fluxbox_SOURCES_DIST = AtomHandler.hh ArrowButton.hh \ ArrowButton.cc FbAtoms.hh FbAtoms.cc FbWinFrame.hh \ FbWinFrame.cc FbWinFrameTheme.hh FbWinFrameTheme.cc fluxbox.cc \ fluxbox.hh Keys.cc Keys.hh main.cc RootTheme.hh RootTheme.cc \ FbRootWindow.hh FbRootWindow.cc OSDWindow.hh OSDWindow.cc \ TooltipWindow.hh TooltipWindow.cc Screen.cc Screen.hh \ WinButton.hh WinButton.cc WinButtonTheme.hh WinButtonTheme.cc \ Window.cc Window.hh WindowState.cc WindowState.hh Workspace.cc \ Workspace.hh FbCommands.hh FbCommands.cc LayerMenu.hh \ LayerMenu.cc Layer.hh FbMenu.hh FbMenu.cc WinClient.hh \ WinClient.cc Strut.hh Xinerama.hh Xutil.hh Xutil.cc \ CurrentWindowCmd.hh CurrentWindowCmd.cc WorkspaceCmd.hh \ WorkspaceCmd.cc TextDialog.hh TextDialog.cc CommandDialog.hh \ CommandDialog.cc SendToMenu.hh SendToMenu.cc AlphaMenu.hh \ AlphaMenu.cc FbMenuParser.hh FbMenuParser.cc StyleMenuItem.hh \ StyleMenuItem.cc RootCmdMenuItem.hh RootCmdMenuItem.cc \ MenuCreator.hh MenuCreator.cc ClientMenu.hh ClientMenu.cc \ ClientPattern.hh ClientPattern.cc WorkspaceMenu.hh \ WorkspaceMenu.cc FocusModelMenuItem.hh ToggleMenu.hh \ HeadArea.hh HeadArea.cc Resources.cc WindowCmd.hh WindowCmd.cc \ FocusControl.hh FocusControl.cc PlacementStrategy.hh \ CascadePlacement.hh CascadePlacement.cc ColSmartPlacement.hh \ ColSmartPlacement.cc MinOverlapPlacement.hh \ MinOverlapPlacement.cc RowSmartPlacement.hh \ RowSmartPlacement.cc ScreenPlacement.hh ScreenPlacement.cc \ UnderMousePlacement.hh UnderMousePlacement.cc \ AttentionNoticeHandler.hh AttentionNoticeHandler.cc \ IconButton.hh IconButton.cc IconbarTheme.hh IconbarTheme.cc \ Focusable.hh FocusableList.hh FocusableList.cc \ FocusableTheme.hh WindowMenuAccessor.hh RectangleUtil.hh \ Debug.hh Ewmh.hh Ewmh.cc Remember.hh Remember.cc Slit.cc \ Slit.hh SlitTheme.hh SlitTheme.cc SlitClient.hh SlitClient.cc \ Toolbar.hh Toolbar.cc ToolbarTheme.hh ToolbarTheme.cc \ ToolbarItem.hh ToolbarItem.cc ClockTool.hh ClockTool.cc \ WorkspaceNameTool.hh WorkspaceNameTool.cc \ WorkspaceNameTheme.hh IconbarTool.hh IconbarTool.cc \ ToolTheme.hh ToolTheme.cc GenericTool.hh GenericTool.cc \ ButtonTool.hh ButtonTool.cc ButtonTheme.hh ButtonTheme.cc \ ToolFactory.hh ToolFactory.cc SystemTray.hh SystemTray.cc @EWMH_TRUE@am__objects_1 = Ewmh.$(OBJEXT) @REMEMBER_SRC_TRUE@am__objects_2 = Remember.$(OBJEXT) @SLIT_SRC_TRUE@am__objects_3 = Slit.$(OBJEXT) SlitTheme.$(OBJEXT) \ @SLIT_SRC_TRUE@ SlitClient.$(OBJEXT) @SYSTRAY_SRC_TRUE@@TOOLBAR_SRC_TRUE@am__objects_4 = \ @SYSTRAY_SRC_TRUE@@TOOLBAR_SRC_TRUE@ SystemTray.$(OBJEXT) @TOOLBAR_SRC_TRUE@am__objects_5 = Toolbar.$(OBJEXT) \ @TOOLBAR_SRC_TRUE@ ToolbarTheme.$(OBJEXT) ToolbarItem.$(OBJEXT) \ @TOOLBAR_SRC_TRUE@ ClockTool.$(OBJEXT) \ @TOOLBAR_SRC_TRUE@ WorkspaceNameTool.$(OBJEXT) \ @TOOLBAR_SRC_TRUE@ IconbarTool.$(OBJEXT) ToolTheme.$(OBJEXT) \ @TOOLBAR_SRC_TRUE@ GenericTool.$(OBJEXT) ButtonTool.$(OBJEXT) \ @TOOLBAR_SRC_TRUE@ ButtonTheme.$(OBJEXT) ToolFactory.$(OBJEXT) \ @TOOLBAR_SRC_TRUE@ $(am__objects_4) am_fluxbox_OBJECTS = ArrowButton.$(OBJEXT) FbAtoms.$(OBJEXT) \ FbWinFrame.$(OBJEXT) FbWinFrameTheme.$(OBJEXT) \ fluxbox.$(OBJEXT) Keys.$(OBJEXT) main.$(OBJEXT) \ RootTheme.$(OBJEXT) FbRootWindow.$(OBJEXT) OSDWindow.$(OBJEXT) \ TooltipWindow.$(OBJEXT) Screen.$(OBJEXT) WinButton.$(OBJEXT) \ WinButtonTheme.$(OBJEXT) Window.$(OBJEXT) \ WindowState.$(OBJEXT) Workspace.$(OBJEXT) FbCommands.$(OBJEXT) \ LayerMenu.$(OBJEXT) FbMenu.$(OBJEXT) WinClient.$(OBJEXT) \ Xutil.$(OBJEXT) CurrentWindowCmd.$(OBJEXT) \ WorkspaceCmd.$(OBJEXT) TextDialog.$(OBJEXT) \ CommandDialog.$(OBJEXT) SendToMenu.$(OBJEXT) \ AlphaMenu.$(OBJEXT) FbMenuParser.$(OBJEXT) \ StyleMenuItem.$(OBJEXT) RootCmdMenuItem.$(OBJEXT) \ MenuCreator.$(OBJEXT) ClientMenu.$(OBJEXT) \ ClientPattern.$(OBJEXT) WorkspaceMenu.$(OBJEXT) \ HeadArea.$(OBJEXT) Resources.$(OBJEXT) WindowCmd.$(OBJEXT) \ FocusControl.$(OBJEXT) CascadePlacement.$(OBJEXT) \ ColSmartPlacement.$(OBJEXT) MinOverlapPlacement.$(OBJEXT) \ RowSmartPlacement.$(OBJEXT) ScreenPlacement.$(OBJEXT) \ UnderMousePlacement.$(OBJEXT) AttentionNoticeHandler.$(OBJEXT) \ IconButton.$(OBJEXT) IconbarTheme.$(OBJEXT) \ FocusableList.$(OBJEXT) $(am__objects_1) $(am__objects_2) \ $(am__objects_3) $(am__objects_5) fluxbox_OBJECTS = $(am_fluxbox_OBJECTS) fluxbox_LDADD = $(LDADD) fluxbox_DEPENDENCIES = FbTk/libFbTk.a defaults.$(OBJEXT) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(fluxbox_SOURCES) DIST_SOURCES = $(am__fluxbox_SOURCES_DIST) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = FbTk tests DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @TEST_TRUE@BUILD_TEST = tests SUBDIRS = FbTk $(BUILD_TEST) DEFAULT_KEYSFILE = @DEFAULT_KEYS@ DEFAULT_APPSFILE = @DEFAULT_APPS@ DEFAULT_INITFILE = @DEFAULT_INIT@ PROGRAM_PREFIX = @program_prefix@ PROGRAM_SUFFIX = @program_suffix@ AM_CPPFLAGS = BUILT_SOURCES = defaults.hh defaults.cc CONFIG_CLEAN_FILES = defaults.hh defaults.cc @EWMH_TRUE@EWMH_SOURCE = Ewmh.hh Ewmh.cc @REMEMBER_SRC_TRUE@REMEMBER_SOURCE = Remember.hh Remember.cc @TOOLBAR_SRC_TRUE@TOOLBAR_SOURCE = Toolbar.hh Toolbar.cc \ @TOOLBAR_SRC_TRUE@ ToolbarTheme.hh ToolbarTheme.cc \ @TOOLBAR_SRC_TRUE@ ToolbarItem.hh ToolbarItem.cc ClockTool.hh \ @TOOLBAR_SRC_TRUE@ ClockTool.cc WorkspaceNameTool.hh \ @TOOLBAR_SRC_TRUE@ WorkspaceNameTool.cc WorkspaceNameTheme.hh \ @TOOLBAR_SRC_TRUE@ IconbarTool.hh IconbarTool.cc ToolTheme.hh \ @TOOLBAR_SRC_TRUE@ ToolTheme.cc GenericTool.hh GenericTool.cc \ @TOOLBAR_SRC_TRUE@ ButtonTool.hh ButtonTool.cc ButtonTheme.hh \ @TOOLBAR_SRC_TRUE@ ButtonTheme.cc ToolFactory.hh ToolFactory.cc \ @TOOLBAR_SRC_TRUE@ $(am__append_1) @SLIT_SRC_TRUE@SLIT_SOURCE = Slit.cc Slit.hh SlitTheme.hh SlitTheme.cc SlitClient.hh SlitClient.cc fluxbox_SOURCES = AtomHandler.hh ArrowButton.hh ArrowButton.cc \ FbAtoms.hh FbAtoms.cc FbWinFrame.hh FbWinFrame.cc \ FbWinFrameTheme.hh FbWinFrameTheme.cc \ fluxbox.cc fluxbox.hh \ Keys.cc Keys.hh main.cc \ RootTheme.hh RootTheme.cc \ FbRootWindow.hh FbRootWindow.cc \ OSDWindow.hh OSDWindow.cc \ TooltipWindow.hh TooltipWindow.cc \ Screen.cc Screen.hh \ WinButton.hh WinButton.cc \ WinButtonTheme.hh WinButtonTheme.cc \ Window.cc Window.hh WindowState.cc WindowState.hh\ Workspace.cc Workspace.hh \ FbCommands.hh FbCommands.cc LayerMenu.hh LayerMenu.cc \ Layer.hh \ FbMenu.hh FbMenu.cc \ WinClient.hh WinClient.cc \ Strut.hh \ Xinerama.hh \ Xutil.hh Xutil.cc \ CurrentWindowCmd.hh CurrentWindowCmd.cc \ WorkspaceCmd.hh WorkspaceCmd.cc \ TextDialog.hh TextDialog.cc \ CommandDialog.hh CommandDialog.cc SendToMenu.hh SendToMenu.cc \ AlphaMenu.hh AlphaMenu.cc \ FbMenuParser.hh FbMenuParser.cc \ StyleMenuItem.hh StyleMenuItem.cc \ RootCmdMenuItem.hh RootCmdMenuItem.cc\ MenuCreator.hh MenuCreator.cc \ ClientMenu.hh ClientMenu.cc \ ClientPattern.hh ClientPattern.cc \ WorkspaceMenu.hh WorkspaceMenu.cc \ FocusModelMenuItem.hh \ ToggleMenu.hh \ HeadArea.hh HeadArea.cc \ Resources.cc \ WindowCmd.hh WindowCmd.cc \ FocusControl.hh FocusControl.cc \ PlacementStrategy.hh \ CascadePlacement.hh CascadePlacement.cc \ ColSmartPlacement.hh ColSmartPlacement.cc \ MinOverlapPlacement.hh MinOverlapPlacement.cc \ RowSmartPlacement.hh RowSmartPlacement.cc \ ScreenPlacement.hh ScreenPlacement.cc \ UnderMousePlacement.hh UnderMousePlacement.cc \ AttentionNoticeHandler.hh AttentionNoticeHandler.cc \ IconButton.hh IconButton.cc \ IconbarTheme.hh IconbarTheme.cc \ Focusable.hh FocusableList.hh FocusableList.cc FocusableTheme.hh \ WindowMenuAccessor.hh \ RectangleUtil.hh \ Debug.hh \ ${EWMH_SOURCE} \ ${REMEMBER_SOURCE} \ ${SLIT_SOURCE} \ ${TOOLBAR_SOURCE} LDADD = FbTk/libFbTk.a defaults.$(OBJEXT) all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: .SUFFIXES: .cc .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) fluxbox$(EXEEXT): $(fluxbox_OBJECTS) $(fluxbox_DEPENDENCIES) $(EXTRA_fluxbox_DEPENDENCIES) @rm -f fluxbox$(EXEEXT) $(CXXLINK) $(fluxbox_OBJECTS) $(fluxbox_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AlphaMenu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ArrowButton.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/AttentionNoticeHandler.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ButtonTheme.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ButtonTool.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CascadePlacement.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ClientMenu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ClientPattern.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ClockTool.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ColSmartPlacement.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CommandDialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/CurrentWindowCmd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Ewmh.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FbAtoms.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FbCommands.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FbMenu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FbMenuParser.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FbRootWindow.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FbWinFrame.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FbWinFrameTheme.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FocusControl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/FocusableList.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GenericTool.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/HeadArea.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IconButton.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IconbarTheme.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/IconbarTool.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Keys.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LayerMenu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MenuCreator.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MinOverlapPlacement.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OSDWindow.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Remember.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Resources.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RootCmdMenuItem.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RootTheme.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/RowSmartPlacement.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Screen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ScreenPlacement.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SendToMenu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Slit.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SlitClient.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SlitTheme.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StyleMenuItem.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SystemTray.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TextDialog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ToolFactory.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ToolTheme.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Toolbar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ToolbarItem.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ToolbarTheme.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TooltipWindow.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UnderMousePlacement.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WinButton.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WinButtonTheme.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WinClient.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Window.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WindowCmd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WindowState.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Workspace.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WorkspaceCmd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WorkspaceMenu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/WorkspaceNameTool.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Xutil.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fluxbox.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ .cc.o: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile $(PROGRAMS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \ ctags-recursive install install-am install-strip \ tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-binPROGRAMS \ clean-generic ctags ctags-recursive distclean \ distclean-compile distclean-generic distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-binPROGRAMS install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-binPROGRAMS defaults.hh: Makefile @( \ echo '// This file is generated from Makefile. Do not edit!'; \ echo '#include '; \ echo ''; \ echo '#ifdef _WIN32'; \ echo '#define DUMMYPREFIX "/DUMMYPREFIX"'; \ echo '#define PATHPREFIX DUMMYPREFIX'; \ echo '#else'; \ echo '#define PATHPREFIX'; \ echo '#endif'; \ echo '#define DEFAULTMENU PATHPREFIX "$(DEFAULT_MENU)"'; \ echo '#define DEFAULTSTYLE PATHPREFIX "$(DEFAULT_STYLE)"'; \ echo '#define DEFAULTKEYSFILE PATHPREFIX "$(DEFAULT_KEYSFILE)"'; \ echo '#define DEFAULT_APPSFILE PATHPREFIX "$(DEFAULT_APPSFILE)"'; \ echo '#define DEFAULT_OVERLAY PATHPREFIX "$(DEFAULT_OVERLAY)"'; \ echo '#define DEFAULT_INITFILE PATHPREFIX "$(DEFAULT_INITFILE)"'; \ echo '#define DEFAULT_WINDOWMENU PATHPREFIX "$(DEFAULT_WINDOWMENU)"'; \ echo '#define PROGRAM_PREFIX "$(PROGRAM_PREFIX:NONE=)"'; \ echo '#define PROGRAM_SUFFIX "$(PROGRAM_SUFFIX:NONE=)"'; \ echo 'std::string realProgramName(const std::string& name);'; \ echo 'const char* gitrevision();' ) > defaults.hh defaults.cc: force @( \ GITDIR=$(top_srcdir)/.git; \ echo '// This file is generated from Makefile. Do not edit!'; \ echo '#include "defaults.hh"'; \ echo ''; \ echo 'std::string realProgramName(const std::string& name) {'; \ echo ' return PROGRAM_PREFIX + name + PROGRAM_SUFFIX;'; \ echo '}'; \ echo ''; \ echo 'const char* gitrevision() {'; \ if test -r $$GITDIR/HEAD; then \ echo ' return "'`cat $$GITDIR/$$(cat $$GITDIR/HEAD | cut -f 2 -d ' ')`'";'; \ else \ echo ' return "this_is_tar_ball_build";'; \ fi; \ echo '}' ) > defaults_tmp.cc @if ! cmp defaults_tmp.cc defaults.cc ; then cp defaults_tmp.cc defaults.cc; fi @rm defaults_tmp.cc force: ; # an extra dep for fluxbox fluxbox.$(OBJEXT): defaults.hh # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/src/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425017077 xustar000000000000000030 mtime=1360749845.895812656 30 atime=1360749854.371812602 30 ctime=1360750008.751811614 fluxbox-1.3.5/src/Makefile.am0000644000175000017500000001406512106662425015134 0ustar00mgmg00000000000000# Makefile.am for fluxbox # Copyright (c) 2001 - 2003 Henrik Kinnunen (fluxgen at users.sourceforge.net) # # src/Makefile.am for Blackbox 0.61.x - an X11 Window manager # Copyright (c) 1997 - 2000 Brad Hughes (bhughes at tcac.net) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), # to deal in the Software without restriction, including without limitation # the rights to use, copy, modify, merge, publish, distribute, sublicense, # and/or sell copies of the Software, and to permit persons to whom the # Software is furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # DEALINGS IN THE SOFTWARE. if TEST BUILD_TEST= tests endif SUBDIRS= FbTk $(BUILD_TEST) DEFAULT_MENU=@DEFAULT_MENU@ DEFAULT_STYLE=@DEFAULT_STYLE@ DEFAULT_KEYSFILE=@DEFAULT_KEYS@ DEFAULT_APPSFILE=@DEFAULT_APPS@ DEFAULT_OVERLAY=@DEFAULT_OVERLAY@ DEFAULT_INITFILE=@DEFAULT_INIT@ DEFAULT_WINDOWMENU=@DEFAULT_WINDOWMENU@ PROGRAM_PREFIX=@program_prefix@ PROGRAM_SUFFIX=@program_suffix@ AM_CPPFLAGS= bin_PROGRAMS= fluxbox BUILT_SOURCES = defaults.hh defaults.cc CONFIG_CLEAN_FILES = defaults.hh defaults.cc defaults.hh: Makefile @( \ echo '// This file is generated from Makefile. Do not edit!'; \ echo '#include '; \ echo ''; \ echo '#ifdef _WIN32'; \ echo '#define DUMMYPREFIX "/DUMMYPREFIX"'; \ echo '#define PATHPREFIX DUMMYPREFIX'; \ echo '#else'; \ echo '#define PATHPREFIX'; \ echo '#endif'; \ echo '#define DEFAULTMENU PATHPREFIX "$(DEFAULT_MENU)"'; \ echo '#define DEFAULTSTYLE PATHPREFIX "$(DEFAULT_STYLE)"'; \ echo '#define DEFAULTKEYSFILE PATHPREFIX "$(DEFAULT_KEYSFILE)"'; \ echo '#define DEFAULT_APPSFILE PATHPREFIX "$(DEFAULT_APPSFILE)"'; \ echo '#define DEFAULT_OVERLAY PATHPREFIX "$(DEFAULT_OVERLAY)"'; \ echo '#define DEFAULT_INITFILE PATHPREFIX "$(DEFAULT_INITFILE)"'; \ echo '#define DEFAULT_WINDOWMENU PATHPREFIX "$(DEFAULT_WINDOWMENU)"'; \ echo '#define PROGRAM_PREFIX "$(PROGRAM_PREFIX:NONE=)"'; \ echo '#define PROGRAM_SUFFIX "$(PROGRAM_SUFFIX:NONE=)"'; \ echo 'std::string realProgramName(const std::string& name);'; \ echo 'const char* gitrevision();' ) > defaults.hh defaults.cc: force @( \ GITDIR=$(top_srcdir)/.git; \ echo '// This file is generated from Makefile. Do not edit!'; \ echo '#include "defaults.hh"'; \ echo ''; \ echo 'std::string realProgramName(const std::string& name) {'; \ echo ' return PROGRAM_PREFIX + name + PROGRAM_SUFFIX;'; \ echo '}'; \ echo ''; \ echo 'const char* gitrevision() {'; \ if test -r $$GITDIR/HEAD; then \ echo ' return "'`cat $$GITDIR/$$(cat $$GITDIR/HEAD | cut -f 2 -d ' ')`'";'; \ else \ echo ' return "this_is_tar_ball_build";'; \ fi; \ echo '}' ) > defaults_tmp.cc @if ! cmp defaults_tmp.cc defaults.cc ; then cp defaults_tmp.cc defaults.cc; fi @rm defaults_tmp.cc force: ; # an extra dep for fluxbox fluxbox.$(OBJEXT): defaults.hh if EWMH EWMH_SOURCE= Ewmh.hh Ewmh.cc endif if REMEMBER_SRC REMEMBER_SOURCE= Remember.hh Remember.cc endif if TOOLBAR_SRC TOOLBAR_SOURCE = Toolbar.hh Toolbar.cc \ ToolbarTheme.hh ToolbarTheme.cc ToolbarItem.hh ToolbarItem.cc \ ClockTool.hh ClockTool.cc \ WorkspaceNameTool.hh WorkspaceNameTool.cc WorkspaceNameTheme.hh \ IconbarTool.hh IconbarTool.cc \ ToolTheme.hh ToolTheme.cc \ GenericTool.hh GenericTool.cc \ ButtonTool.hh ButtonTool.cc ButtonTheme.hh ButtonTheme.cc \ ToolFactory.hh ToolFactory.cc if SYSTRAY_SRC TOOLBAR_SOURCE += SystemTray.hh SystemTray.cc endif endif if SLIT_SRC SLIT_SOURCE = Slit.cc Slit.hh SlitTheme.hh SlitTheme.cc SlitClient.hh SlitClient.cc endif fluxbox_SOURCES = AtomHandler.hh ArrowButton.hh ArrowButton.cc \ FbAtoms.hh FbAtoms.cc FbWinFrame.hh FbWinFrame.cc \ FbWinFrameTheme.hh FbWinFrameTheme.cc \ fluxbox.cc fluxbox.hh \ Keys.cc Keys.hh main.cc \ RootTheme.hh RootTheme.cc \ FbRootWindow.hh FbRootWindow.cc \ OSDWindow.hh OSDWindow.cc \ TooltipWindow.hh TooltipWindow.cc \ Screen.cc Screen.hh \ WinButton.hh WinButton.cc \ WinButtonTheme.hh WinButtonTheme.cc \ Window.cc Window.hh WindowState.cc WindowState.hh\ Workspace.cc Workspace.hh \ FbCommands.hh FbCommands.cc LayerMenu.hh LayerMenu.cc \ Layer.hh \ FbMenu.hh FbMenu.cc \ WinClient.hh WinClient.cc \ Strut.hh \ Xinerama.hh \ Xutil.hh Xutil.cc \ CurrentWindowCmd.hh CurrentWindowCmd.cc \ WorkspaceCmd.hh WorkspaceCmd.cc \ TextDialog.hh TextDialog.cc \ CommandDialog.hh CommandDialog.cc SendToMenu.hh SendToMenu.cc \ AlphaMenu.hh AlphaMenu.cc \ FbMenuParser.hh FbMenuParser.cc \ StyleMenuItem.hh StyleMenuItem.cc \ RootCmdMenuItem.hh RootCmdMenuItem.cc\ MenuCreator.hh MenuCreator.cc \ ClientMenu.hh ClientMenu.cc \ ClientPattern.hh ClientPattern.cc \ WorkspaceMenu.hh WorkspaceMenu.cc \ FocusModelMenuItem.hh \ ToggleMenu.hh \ HeadArea.hh HeadArea.cc \ Resources.cc \ WindowCmd.hh WindowCmd.cc \ FocusControl.hh FocusControl.cc \ PlacementStrategy.hh \ CascadePlacement.hh CascadePlacement.cc \ ColSmartPlacement.hh ColSmartPlacement.cc \ MinOverlapPlacement.hh MinOverlapPlacement.cc \ RowSmartPlacement.hh RowSmartPlacement.cc \ ScreenPlacement.hh ScreenPlacement.cc \ UnderMousePlacement.hh UnderMousePlacement.cc \ AttentionNoticeHandler.hh AttentionNoticeHandler.cc \ IconButton.hh IconButton.cc \ IconbarTheme.hh IconbarTheme.cc \ Focusable.hh FocusableList.hh FocusableList.cc FocusableTheme.hh \ WindowMenuAccessor.hh \ RectangleUtil.hh \ Debug.hh \ ${EWMH_SOURCE} \ ${REMEMBER_SOURCE} \ ${SLIT_SOURCE} \ ${TOOLBAR_SOURCE} LDADD=FbTk/libFbTk.a defaults.$(OBJEXT) fluxbox-1.3.5/PaxHeaders.25974/nls0000644000175000017500000000013212106662666015002 xustar000000000000000030 mtime=1360750006.779811627 30 atime=1360750008.755811614 30 ctime=1360750008.755811614 fluxbox-1.3.5/nls/0000755000175000017500000000000012106662666013106 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/PaxHeaders.25974/he_IL0000644000175000017500000000013212106662666015762 xustar000000000000000030 mtime=1360750006.811811626 30 atime=1360750008.755811614 30 ctime=1360750008.755811614 fluxbox-1.3.5/nls/he_IL/0000755000175000017500000000000012106662666014066 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/he_IL/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662464020750 xustar000000000000000030 mtime=1360749876.119812463 30 atime=1360749876.135812463 30 ctime=1360750008.755811614 fluxbox-1.3.5/nls/he_IL/generated-UTF-8.m0000644000175000017500000001505212106662464017002 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 תחת מרכזי 2 תחת שמ×לי 3 תחת ימני 4 Horizontal_OBSOLETE 5 Left_OBSOLETE 6 שמ×ל תחתון 7 שמ×ל מרכז 8 שמ×ל עליון 9 Relative_OBSOLETE 10 Right_OBSOLETE 11 ימין תחתון 12 ימין מרכז 13 ימין עליון 14 ×©×™× ×ž×¨×›×–×™ 15 ×©×™× ×©×ž×לי 16 ×©×™× ×™×ž× ×™ 17 Vertical_OBSOLETE 18 Center_OBSOLETE 19 Top_OBSOLETE 20 Bottom_OBSOLETE $set 2 #BaseDisplay 1 Aborting... dumping core\n 2 Shutting Down\n 3 %s: signal %d caught\n $set 3 #Common 1 ××œ×¤× 2 הסתר ×וטומטית 3 Compiled 4 Compiled options 5 Compiler 6 Compiler version 7 init 8 keys 9 nls 10 menu 11 style 12 Defaults 13 disabled 14 Error 15 Fluxbox version 16 הגדל על פני 17 GIT Revision 18 Visible 19 There is no background option specified in this style.\nPlease consult the manual or read the FAQ. $set 4 #Configmenu 1 AntiAlias_OBSOLETE 2 ×”×¨× ×וטומטית 3 קליק ×ž×¨×™× 4 קליק למקד 5 Decorate Transient Windows_OBSOLETE 6 Desktop MouseWheel Switching_OBSOLETE 7 Focus Window on Workspace Change_OBSOLETE 8 ××™×ž×•× ×ž×™×§×•×“ 9 מקד חלונות ×—×“×©×™× 10 הגדלה מרבית 11 Image Dithering_OBSOLETE 12 הזזת חלון ×טומה 13 מיקוד עכבר (מוחלט) 14 מיקוד עכבר 15 כריכת שולחן עבודה 16 כפה שקיפות-פסבדו 17 ××œ×¤× ×©×œ תפריט 18 שקיפות 19 ××œ×¤× ×©×œ חלון ממוקד 20 ××œ×¤× ×©×œ חלון ×œ× ×ž×ž×•×§×“ 21 ×פשרויות כרטיסייה 22 כרטיסיות בתוך שורת כותרת 23 רוחב כרטיסייה חיצונית 24 מיקוד כרטיסייה קליק 25 מיקוד כרטיסייה עכבר 26 ×פשרויות הגדלה 27 ×”×ª×¢×œ× ×ž×”×’×“×œ×ª מידה 28 נטרל ×”×–×–×” 29 נטרל שינוי מידה $set 5 #Ewmh_OBSOLETE 1 Fatal: Out of memory, can't allocate for EWMH client list_OBSOLETE $set 6 #FbTkError 1 Warning! Height > 3200, setting Height = 3200 2 Warning! Width > 3200, setting Width = 3200 3 Warning: can't load fallback font 4 Allocation error. 5 Error creating pixmap 6 Can't create XImage 7 Failed to read 8 Warning: Failed to find valid format for alpha. 9 Warning: Failed to create alpha picture. 10 Warning: Failed to create alpha pixmap. 11 Failed to find format for screen(%d) 12 Out of memory 13 Out of memory while allocating blue buffer. 14 Out of memory while allocating green buffer. 15 Out of memory while allocating red buffer. 16 Failed to read theme item 17 unsupported visual 18 Setting default value $set 7 #Fluxbox 1 rc filename is invalid! 2 Failed to load groupfile_OBSOLETE 3 Failed to load database 4 Retrying with 5 Warning! Could not find screen to map window on! 6 Can't create directory %s 7 Couldn't find screens to manage.\nMake sure you don't have another window manager running. 8 Error parsing regular expression 9 Fatal! There can only one instance of fluxbox class. 10 Can not connect to X server.\nMake sure you started X before you start Fluxbox. 11 Warning: X server does not support locale 12 Warning: cannot set locale modifiers $set 8 #Gnome_OBSOLETE 1 Fatal: Out of memory, can't allocate for GNOME client list_OBSOLETE $set 9 #Keys 1 Keys: Error on line 2 Keys: Failed to merge keytree!_OBSOLETE 3 Keys: Invalid key/modifier on line $set 10 #Menu 1 תצורה 2 תפריט משתמט Fluxbox 3 יצי××” 4 צלמיות 5 רובד... 6 על ר×ש... 7 ×ž×™×§×•× 8 טען תצורה מחדש 9 ריסט 10 Warning: unbalanced [encoding] tags $set 11 #Remember 1 ×¢×™×˜×•×¨×™× 2 ×ž×ž×“×™× 3 קפוץ ×ל מרחב עבודה 4 רובד 5 זכור... 6 עמדה 7 שמור בעת סגירה 8 מו×פל 9 דביק 10 Unknown apps key_OBSOLETE 11 מרחב עבודה 12 ר×ש 13 שקיפות 14 ממוזער 15 מוגדל 16 מסך ×ž×œ× $set 12 #Screen 1 BScreen::BScreen: an error occured while querying the X server.\n another window manager already running on display 2 W: %4d x H: %4d 3 BScreen::BScreen: managing screen %d using visual 0x%lx, depth %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 לקוחות 2 העבר מטה 3 העבר מעלה 4 כיוון סדק: 5 רובד סדק 6 סדק על ר×ש 7 ×ž×™×§×•× ×¡×“×§ 8 סדק 9 שמור רשימה $set 14 #Toolbar 1 שנה ×©× ×ž×¨×—×‘ עבודה נוכחי 2 מצב סרגל צלמיות 3 כל החלונות 4 צלמיות 5 None 6 מרחב עבודה 7 מרחב עבודה צלמיות 8 רובד סרגל ×›×œ×™× 9 דרגל ×›×œ×™× ×¢×œ ר×ש 10 ×ž×™×§×•× ×¡×¨×’×œ ×›×œ×™× 11 סרגל ×›×œ×™× 12 ×חוז רוחב סרגל ×›×œ×™× 13 שעון: 24ש 14 שעון: 12ש 15 ערוך פורמט שעון 16 הצג תמונות 17 ×ין צלמיות 18 מרחב עבודה ×ין צלמיות $set 15 #Window 1 ×œ×œ× ×©× $set 16 #Windowmenu 1 סגור 2 הקטן 3 רובד 4 הנמך 5 הגדל 6 ×”×¨× 7 שלח ×ל ... 8 ×”×פל 9 דביק 10 Kill_OBSOLETE 11 Use Defaults_OBSOLETE 12 קבע כותרת חלון $set 17 #Workspace 1 מרחב עבודה %d 2 מרחבי עבודה 3 מרחב עבודה חדש 4 הסר ×חרון $set 18 #fbsetroot 1 Error: must specify one of: -solid, -mod, -gradient\n 2 Couldn't create pixmap atoms, giving up! 3 -display display connection\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient gradient texture\n\ -from gradient start color\n\ -to gradient end color\n\n\ -solid solid color\n\n\ -help print this help text and exit\n $set 19 #main 1 error: '-display' requires an argument 2 Bad Alloc 3 Bad cast 4 Out of range 5 Runtime error 6 Standard Exception 7 Unknown error 8 error: '-log' needs an argument 9 Log File 10 Logging to 11 error: '-rc' requires an argument 12 error: '-screen' requires an argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ Website: http://www.fluxbox.org/\n\n\ -display \t\tuse display connection.\n\ -screen \trun on specified screens only.\n\ -rc \t\t\tuse alternate resource file.\n\ -version\t\t\tdisplay version and exit.\n\ -info\t\t\t\tdisplay some useful information.\n\ -list-commands\t\t\tlist all valid key commands.\n\ -sync\t\t\t\tsynchronize with X server for debugging.\n\ -log \t\t\tlog output to file.\n\ -help\t\t\t\tdisplay this help text and exit.\n\n 14 warning: couldn't set environment variable 'DISPLAY' $set 20 #layers 1 מעל רציף 2 תחתון 3 שולחן עבודה 4 רציף 5 רגיל 6 עליון fluxbox-1.3.5/nls/he_IL/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020504 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749876.119812463 30 ctime=1360750008.755811614 fluxbox-1.3.5/nls/he_IL/Translation.m0000644000175000017500000001505212106662425016536 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 תחת מרכזי 2 תחת שמ×לי 3 תחת ימני 4 Horizontal_OBSOLETE 5 Left_OBSOLETE 6 שמ×ל תחתון 7 שמ×ל מרכז 8 שמ×ל עליון 9 Relative_OBSOLETE 10 Right_OBSOLETE 11 ימין תחתון 12 ימין מרכז 13 ימין עליון 14 ×©×™× ×ž×¨×›×–×™ 15 ×©×™× ×©×ž×לי 16 ×©×™× ×™×ž× ×™ 17 Vertical_OBSOLETE 18 Center_OBSOLETE 19 Top_OBSOLETE 20 Bottom_OBSOLETE $set 2 #BaseDisplay 1 Aborting... dumping core\n 2 Shutting Down\n 3 %s: signal %d caught\n $set 3 #Common 1 ××œ×¤× 2 הסתר ×וטומטית 3 Compiled 4 Compiled options 5 Compiler 6 Compiler version 7 init 8 keys 9 nls 10 menu 11 style 12 Defaults 13 disabled 14 Error 15 Fluxbox version 16 הגדל על פני 17 GIT Revision 18 Visible 19 There is no background option specified in this style.\nPlease consult the manual or read the FAQ. $set 4 #Configmenu 1 AntiAlias_OBSOLETE 2 ×”×¨× ×וטומטית 3 קליק ×ž×¨×™× 4 קליק למקד 5 Decorate Transient Windows_OBSOLETE 6 Desktop MouseWheel Switching_OBSOLETE 7 Focus Window on Workspace Change_OBSOLETE 8 ××™×ž×•× ×ž×™×§×•×“ 9 מקד חלונות ×—×“×©×™× 10 הגדלה מרבית 11 Image Dithering_OBSOLETE 12 הזזת חלון ×טומה 13 מיקוד עכבר (מוחלט) 14 מיקוד עכבר 15 כריכת שולחן עבודה 16 כפה שקיפות-פסבדו 17 ××œ×¤× ×©×œ תפריט 18 שקיפות 19 ××œ×¤× ×©×œ חלון ממוקד 20 ××œ×¤× ×©×œ חלון ×œ× ×ž×ž×•×§×“ 21 ×פשרויות כרטיסייה 22 כרטיסיות בתוך שורת כותרת 23 רוחב כרטיסייה חיצונית 24 מיקוד כרטיסייה קליק 25 מיקוד כרטיסייה עכבר 26 ×פשרויות הגדלה 27 ×”×ª×¢×œ× ×ž×”×’×“×œ×ª מידה 28 נטרל ×”×–×–×” 29 נטרל שינוי מידה $set 5 #Ewmh_OBSOLETE 1 Fatal: Out of memory, can't allocate for EWMH client list_OBSOLETE $set 6 #FbTkError 1 Warning! Height > 3200, setting Height = 3200 2 Warning! Width > 3200, setting Width = 3200 3 Warning: can't load fallback font 4 Allocation error. 5 Error creating pixmap 6 Can't create XImage 7 Failed to read 8 Warning: Failed to find valid format for alpha. 9 Warning: Failed to create alpha picture. 10 Warning: Failed to create alpha pixmap. 11 Failed to find format for screen(%d) 12 Out of memory 13 Out of memory while allocating blue buffer. 14 Out of memory while allocating green buffer. 15 Out of memory while allocating red buffer. 16 Failed to read theme item 17 unsupported visual 18 Setting default value $set 7 #Fluxbox 1 rc filename is invalid! 2 Failed to load groupfile_OBSOLETE 3 Failed to load database 4 Retrying with 5 Warning! Could not find screen to map window on! 6 Can't create directory %s 7 Couldn't find screens to manage.\nMake sure you don't have another window manager running. 8 Error parsing regular expression 9 Fatal! There can only one instance of fluxbox class. 10 Can not connect to X server.\nMake sure you started X before you start Fluxbox. 11 Warning: X server does not support locale 12 Warning: cannot set locale modifiers $set 8 #Gnome_OBSOLETE 1 Fatal: Out of memory, can't allocate for GNOME client list_OBSOLETE $set 9 #Keys 1 Keys: Error on line 2 Keys: Failed to merge keytree!_OBSOLETE 3 Keys: Invalid key/modifier on line $set 10 #Menu 1 תצורה 2 תפריט משתמט Fluxbox 3 יצי××” 4 צלמיות 5 רובד... 6 על ר×ש... 7 ×ž×™×§×•× 8 טען תצורה מחדש 9 ריסט 10 Warning: unbalanced [encoding] tags $set 11 #Remember 1 ×¢×™×˜×•×¨×™× 2 ×ž×ž×“×™× 3 קפוץ ×ל מרחב עבודה 4 רובד 5 זכור... 6 עמדה 7 שמור בעת סגירה 8 מו×פל 9 דביק 10 Unknown apps key_OBSOLETE 11 מרחב עבודה 12 ר×ש 13 שקיפות 14 ממוזער 15 מוגדל 16 מסך ×ž×œ× $set 12 #Screen 1 BScreen::BScreen: an error occured while querying the X server.\n another window manager already running on display 2 W: %4d x H: %4d 3 BScreen::BScreen: managing screen %d using visual 0x%lx, depth %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 לקוחות 2 העבר מטה 3 העבר מעלה 4 כיוון סדק: 5 רובד סדק 6 סדק על ר×ש 7 ×ž×™×§×•× ×¡×“×§ 8 סדק 9 שמור רשימה $set 14 #Toolbar 1 שנה ×©× ×ž×¨×—×‘ עבודה נוכחי 2 מצב סרגל צלמיות 3 כל החלונות 4 צלמיות 5 None 6 מרחב עבודה 7 מרחב עבודה צלמיות 8 רובד סרגל ×›×œ×™× 9 דרגל ×›×œ×™× ×¢×œ ר×ש 10 ×ž×™×§×•× ×¡×¨×’×œ ×›×œ×™× 11 סרגל ×›×œ×™× 12 ×חוז רוחב סרגל ×›×œ×™× 13 שעון: 24ש 14 שעון: 12ש 15 ערוך פורמט שעון 16 הצג תמונות 17 ×ין צלמיות 18 מרחב עבודה ×ין צלמיות $set 15 #Window 1 ×œ×œ× ×©× $set 16 #Windowmenu 1 סגור 2 הקטן 3 רובד 4 הנמך 5 הגדל 6 ×”×¨× 7 שלח ×ל ... 8 ×”×פל 9 דביק 10 Kill_OBSOLETE 11 Use Defaults_OBSOLETE 12 קבע כותרת חלון $set 17 #Workspace 1 מרחב עבודה %d 2 מרחבי עבודה 3 מרחב עבודה חדש 4 הסר ×חרון $set 18 #fbsetroot 1 Error: must specify one of: -solid, -mod, -gradient\n 2 Couldn't create pixmap atoms, giving up! 3 -display display connection\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient gradient texture\n\ -from gradient start color\n\ -to gradient end color\n\n\ -solid solid color\n\n\ -help print this help text and exit\n $set 19 #main 1 error: '-display' requires an argument 2 Bad Alloc 3 Bad cast 4 Out of range 5 Runtime error 6 Standard Exception 7 Unknown error 8 error: '-log' needs an argument 9 Log File 10 Logging to 11 error: '-rc' requires an argument 12 error: '-screen' requires an argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ Website: http://www.fluxbox.org/\n\n\ -display \t\tuse display connection.\n\ -screen \trun on specified screens only.\n\ -rc \t\t\tuse alternate resource file.\n\ -version\t\t\tdisplay version and exit.\n\ -info\t\t\t\tdisplay some useful information.\n\ -list-commands\t\t\tlist all valid key commands.\n\ -sync\t\t\t\tsynchronize with X server for debugging.\n\ -log \t\t\tlog output to file.\n\ -help\t\t\t\tdisplay this help text and exit.\n\n 14 warning: couldn't set environment variable 'DISPLAY' $set 20 #layers 1 מעל רציף 2 תחתון 3 שולחן עבודה 4 רציף 5 רגיל 6 עליון fluxbox-1.3.5/nls/he_IL/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662604020074 xustar000000000000000030 mtime=1360749956.023811951 30 atime=1360750003.735811646 30 ctime=1360750008.759811614 fluxbox-1.3.5/nls/he_IL/Makefile.in0000644000175000017500000002713412106662604016132 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/de_DE/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/he_IL DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = he_IL SRC_CODESET = UTF-8 DEST_CODESETS = UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/he_IL/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/he_IL/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/he_IL/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020064 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749853.875812605 30 ctime=1360750008.759811614 fluxbox-1.3.5/nls/he_IL/Makefile.am0000644000175000017500000000277012106662425016121 0ustar00mgmg00000000000000# nls/de_DE/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = he_IL SRC_CODESET = UTF-8 DEST_CODESETS = UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/mk_MK0000644000175000017500000000013212106662666016000 xustar000000000000000030 mtime=1360750006.775811627 30 atime=1360750008.759811614 30 ctime=1360750008.759811614 fluxbox-1.3.5/nls/mk_MK/0000755000175000017500000000000012106662666014104 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/mk_MK/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662464020766 xustar000000000000000030 mtime=1360749876.083812463 30 atime=1360749876.099812463 30 ctime=1360750008.759811614 fluxbox-1.3.5/nls/mk_MK/generated-UTF-8.m0000644000175000017500000002270712106662464017025 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Дно Средина 2 Дно Лево 3 Дно ДеÑно 4 Хоринзонтално 5 Лево 6 Лево Дно 7 Лево Средина 8 Лево Горе 9 Приближно 10 ДеÑно 11 ДеÑно Дно 12 ДеÑно Средина 13 Right Top 14 Горе Средина 15 Горе Лево 16 Горе ДеÑно 17 Вертикално $set 2 #BaseDisplay 1 Откажувам... Ñкладирам јадро\n 2 ИÑклучување \n 3 %s: Ñигнал %d е фатен\n $set 3 #Common 1 Ðлфа 2 ÐвтоматÑки кријај 3 СоÑтави 4 Опции на СоÑтавувач 5 СоÑтавувач 6 Верзија на СоÑтавувач 7 приклучување 8 команди 9 Ð½Ð»Ñ 10 мени 11 Ñтил 12 ОÑновни 13 оневозможени 14 Грешки 15 Fluxbox верзија 16 Maximize Over 17 GIT Ðадзор 18 Видлив 19 Во овој Ñтил нема зададено подеÑување на позадината.\nВе молиме Ñоветувајте Ñе Ñо упатÑтвото или ЧПП. $set 4 #Configmenu 1 Одмаглување 2 Ðвто кревање 3 Кликнувањето крева 4 Кликни за Ñ„Ð¾ÐºÑƒÑ 5 УкраÑи ги привремените прозорци 6 Сменување на Раб. површина на тркалце 7 ФокуÑирај прозорец на Ñмена на раб. меÑто 8 ФокуÑен модел 9 ФокуÑирај Ðови Прозорци 10 ЦелоÑно раширување 11 Image Dithering 12 Проѕирно премеÑтување 14 Ð¤Ð¾ÐºÑƒÑ Ð½Ð° глушец 15 Скок до др. Раб. меÑто 16 ПриÑили лажна проѕирноÑÑ‚ 17 Ðлфа на мени 18 ПроѕирноÑÑ‚ 19 ФокуÑиран алфа прозорец 20 дефокуÑиран алфа прозорец 21 МожноÑти на јазиче 22 Јазиче над прозорец 23 Ðадворешна големина на јазиче 24 ФокуÑирај јазиче на клик 25 Ð¤Ð¾ÐºÑƒÑ Ð½Ð° јазиче при движење 26 МожноÑÑ‚ за низцело 27 Игнорирај промена на големина 28 Оневозможи ПремеÑтување 29 Оневозможи Променување големина $set 5 #Ewmh 1 ОпаÑноÑÑ‚: Меморијата е полна, не може да Ñе оддели За EWMH лиÑтата на клиенти $set 6 #FbTkError 1 Предупредување! ВиÑината > 3200, меÑтам ВиÑина = 3200 2 Предупредување! Ширината > 3200, меÑтам Ширина = 3200 3 Предупредување: неможам да го вклучам резервниот фонт 4 Грешка при доделување. 5 Грешка во правење на пикÑел 6 Ðеможе да Ñе направи XImage 7 ÐеуÑпех при читање 8 Предупредување: Ðе уÑпеав да пронајдам валиден формат за алфа. 9 Предупредување: Ðе уÑпеав да Ñоздадам алфа Ñлика. 10 Предупредување: Ðе уÑпеав да Ñоздадам алфа икона. 11 Ðе уÑпеав да пронајдам формат за (%d) 12 Меморијата е полна 13 Меморијата на Ñиниот магацин Ñе преполни. 14 Меморијата на зелениот магацин Ñе преполни.. 15 Меморијата на црвениот магацин Ñе преполни.. 16 ÐеуÑпеав да прочитам дел од темата 17 неподдржана графика 18 ПоÑтавување оÑновна вредноÑÑ‚ $set 7 #Fluxbox 1 rc фајлот е невалиден! 2 Ðе уÑпеав да вчитам groupfile 3 Ðе уÑпеав да вчитам датабаза 4 Пробувам Со 5 Предупредување ! Ðеможам да најдам екран за прозорецот да го мапирам! 6 Ðеможе да Ñе направи директориумот %s 7 Ðеможам да пронајдам екрани за управување.\nПогрижете Ñе да немате приклучено уште еден управувач на прозорци. 8 Грешка во раÑленувањето на регуларниот израз 9 КатаÑтрофа! Може Ñамо да има еден примерок од клаÑата на fluxbox. 10 Ðеможам да Ñе поврзам на X Ñерверот.\nПогрижи Ñе да Ñтартува X пред Fluxbox. 11 Предупредување: X Ñерверот не го поддржува одбраниот локал 12 Предупредување: неможам да поÑтавам локални менувачи $set 8 #Gnome 1 ОпаÑноÑÑ‚: Меморијата е полна, не може да Ñе оддели за Гном клиент лиÑтата $set 9 #Keys 1 Команди: Грешки во линијата 2 Команди: Ðе уÑпеав да го Ñпојам дрвото на команди! 3 Команди: Ðевалиден команда/менувач во линијата $set 10 #Menu 1 Конфигурација 2 Fluxbox оÑновно мени 3 Излез 4 Икони 5 Слој... 6 On Head... 7 ПоÑтавување 8 Превчитај конфигурација 9 РеÑтартирај 10 Предупредување: небаланÑирани [кодовни] тагови $set 11 #Remember 1 УкраÑи 2 Димензии 3 Скокни до Раб. меÑто 4 Слој 5 Запамти... 6 МеÑтоположба 7 Сними на затворање 8 ЗаÑенето 9 Лепливо 10 Ðепозната апликациÑка контрола 11 раб. меÑто 12 Глава 13 ПроѕирноÑÑ‚ $set 12 #Screen 1 BScreen::BScreen: Друг управувач на прозорци е активен на Ñите екрани 2 W: %4d x H: %4d 3 BScreen::BScreen: управување на екранот %d Ñо 0x%lx и длабочиња %d\n 4 Ш: %04d x Ð’: %04d $set 13 #Slit 1 Странки 2 Врти Ðадолу 3 Врти Ðагоре 4 Слит Правец 5 Слит Слој 6 Слит на чело 7 Ориентација на Слит 8 Слит 9 Сними лиÑта на Слитови $set 14 #Toolbar 1 Реименувај го работното меÑто 2 Iconbar Mode 3 Сите Прозорци 4 Икони 5 Ðишто 6 Раб. меÑто 7 Раб. меÑто Ñо Икони 8 Слој Ñо Ðлатки 9 Toolbar on Head 10 МеÑтопоположба на Ðлатник 11 Ðлатник 12 Ширина на Ðлатник 13 ЧаÑовник: 24h 14 ЧаÑовник: 12h 15 Уреди приказ на чаÑовник 16 Прикажу икони 17 Без Икони 18 Раб. меÑто без икони $set 15 #Window 1 Ðеименуван $set 16 #Windowmenu 1 Затвори 2 Скриј 3 Слој 4 Спушти 5 Зголеми 6 Крени 7 Прати до ... 8 ЗаÑени 9 Залепи 10 Уништи 11 КориÑти оÑновно $set 17 #Workspace 1 Работното меÑто %d 2 Работни меÑта 3 Ðово Раб. меÑто 4 Избриши поÑледно $set 18 #fbsetroot 1 Грешка: Мора да одберите: -solid, -mod, -gradient\n 2 Ðеможам да направам иконÑки атоми, Ñе откажувам! 3 -display <текÑÑ‚> прикажи поврзување\n\ -mod модула шема\n\ -foreground, -fg <боја> модула боја на \n\ -background, -bg <боја> модула боја на позадина\n\n\ -gradient <ÑоÑтав> приливен ÑоÑтав\n\ -from <боја> почетна боја на прилив\n\ -to <боја> крајна боја на прилив\n\n\ -solid <боја> еднобојна\n\n\ -help Ñе прикажува Ñамо овој текÑÑ‚ и Ñе иÑклучува програмата\n $set 19 #main 1 грешка: '-display' бара аргумент 2 Грешно премеÑтување 3 Грешно доделување 4 Ðадвор од домет 5 Runtime error 6 Вообичаен иÑклучок 7 Ðепозната грешка 8 грешка: '-log' бара аргумент 9 ЗапиÑнички фајл 10 Ðајави Ñе 11 грешка: '-rc' бара аргумент 12 грешка: '-screen' бара аргумент 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ ВебÑајт: http://www.fluxbox.org/\n\n\ -display \t\tuse display connection.\n\ -screen \trun on specified screens only.\n\ -rc \t\t\tuse alternate resource file.\n\ -version\t\t\tприкажува верзија на Ñофтверот и Ñе иÑклучува.\n\ -info\t\t\t\tприкажува кориÑни податоци.\n\ -log \t\t\tводи запиÑник во фајл.\n\ -help\t\t\t\tја прикажува оваа текÑÑ‚ помош и Ñе иÑклучува .\n\n 14 предупредување: неможам да ја намеÑтам околинÑката променлива 'DISPLAY' $set 20 #layers 1 Ðад котва 2 Дно 3 Работна површина 4 Котва 5 Ðормално 6 Ðад Ñе fluxbox-1.3.5/nls/mk_MK/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020522 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749876.083812463 30 ctime=1360750008.763811614 fluxbox-1.3.5/nls/mk_MK/Translation.m0000644000175000017500000002270712106662425016561 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Дно Средина 2 Дно Лево 3 Дно ДеÑно 4 Хоринзонтално 5 Лево 6 Лево Дно 7 Лево Средина 8 Лево Горе 9 Приближно 10 ДеÑно 11 ДеÑно Дно 12 ДеÑно Средина 13 Right Top 14 Горе Средина 15 Горе Лево 16 Горе ДеÑно 17 Вертикално $set 2 #BaseDisplay 1 Откажувам... Ñкладирам јадро\n 2 ИÑклучување \n 3 %s: Ñигнал %d е фатен\n $set 3 #Common 1 Ðлфа 2 ÐвтоматÑки кријај 3 СоÑтави 4 Опции на СоÑтавувач 5 СоÑтавувач 6 Верзија на СоÑтавувач 7 приклучување 8 команди 9 Ð½Ð»Ñ 10 мени 11 Ñтил 12 ОÑновни 13 оневозможени 14 Грешки 15 Fluxbox верзија 16 Maximize Over 17 GIT Ðадзор 18 Видлив 19 Во овој Ñтил нема зададено подеÑување на позадината.\nВе молиме Ñоветувајте Ñе Ñо упатÑтвото или ЧПП. $set 4 #Configmenu 1 Одмаглување 2 Ðвто кревање 3 Кликнувањето крева 4 Кликни за Ñ„Ð¾ÐºÑƒÑ 5 УкраÑи ги привремените прозорци 6 Сменување на Раб. површина на тркалце 7 ФокуÑирај прозорец на Ñмена на раб. меÑто 8 ФокуÑен модел 9 ФокуÑирај Ðови Прозорци 10 ЦелоÑно раширување 11 Image Dithering 12 Проѕирно премеÑтување 14 Ð¤Ð¾ÐºÑƒÑ Ð½Ð° глушец 15 Скок до др. Раб. меÑто 16 ПриÑили лажна проѕирноÑÑ‚ 17 Ðлфа на мени 18 ПроѕирноÑÑ‚ 19 ФокуÑиран алфа прозорец 20 дефокуÑиран алфа прозорец 21 МожноÑти на јазиче 22 Јазиче над прозорец 23 Ðадворешна големина на јазиче 24 ФокуÑирај јазиче на клик 25 Ð¤Ð¾ÐºÑƒÑ Ð½Ð° јазиче при движење 26 МожноÑÑ‚ за низцело 27 Игнорирај промена на големина 28 Оневозможи ПремеÑтување 29 Оневозможи Променување големина $set 5 #Ewmh 1 ОпаÑноÑÑ‚: Меморијата е полна, не може да Ñе оддели За EWMH лиÑтата на клиенти $set 6 #FbTkError 1 Предупредување! ВиÑината > 3200, меÑтам ВиÑина = 3200 2 Предупредување! Ширината > 3200, меÑтам Ширина = 3200 3 Предупредување: неможам да го вклучам резервниот фонт 4 Грешка при доделување. 5 Грешка во правење на пикÑел 6 Ðеможе да Ñе направи XImage 7 ÐеуÑпех при читање 8 Предупредување: Ðе уÑпеав да пронајдам валиден формат за алфа. 9 Предупредување: Ðе уÑпеав да Ñоздадам алфа Ñлика. 10 Предупредување: Ðе уÑпеав да Ñоздадам алфа икона. 11 Ðе уÑпеав да пронајдам формат за (%d) 12 Меморијата е полна 13 Меморијата на Ñиниот магацин Ñе преполни. 14 Меморијата на зелениот магацин Ñе преполни.. 15 Меморијата на црвениот магацин Ñе преполни.. 16 ÐеуÑпеав да прочитам дел од темата 17 неподдржана графика 18 ПоÑтавување оÑновна вредноÑÑ‚ $set 7 #Fluxbox 1 rc фајлот е невалиден! 2 Ðе уÑпеав да вчитам groupfile 3 Ðе уÑпеав да вчитам датабаза 4 Пробувам Со 5 Предупредување ! Ðеможам да најдам екран за прозорецот да го мапирам! 6 Ðеможе да Ñе направи директориумот %s 7 Ðеможам да пронајдам екрани за управување.\nПогрижете Ñе да немате приклучено уште еден управувач на прозорци. 8 Грешка во раÑленувањето на регуларниот израз 9 КатаÑтрофа! Може Ñамо да има еден примерок од клаÑата на fluxbox. 10 Ðеможам да Ñе поврзам на X Ñерверот.\nПогрижи Ñе да Ñтартува X пред Fluxbox. 11 Предупредување: X Ñерверот не го поддржува одбраниот локал 12 Предупредување: неможам да поÑтавам локални менувачи $set 8 #Gnome 1 ОпаÑноÑÑ‚: Меморијата е полна, не може да Ñе оддели за Гном клиент лиÑтата $set 9 #Keys 1 Команди: Грешки во линијата 2 Команди: Ðе уÑпеав да го Ñпојам дрвото на команди! 3 Команди: Ðевалиден команда/менувач во линијата $set 10 #Menu 1 Конфигурација 2 Fluxbox оÑновно мени 3 Излез 4 Икони 5 Слој... 6 On Head... 7 ПоÑтавување 8 Превчитај конфигурација 9 РеÑтартирај 10 Предупредување: небаланÑирани [кодовни] тагови $set 11 #Remember 1 УкраÑи 2 Димензии 3 Скокни до Раб. меÑто 4 Слој 5 Запамти... 6 МеÑтоположба 7 Сними на затворање 8 ЗаÑенето 9 Лепливо 10 Ðепозната апликациÑка контрола 11 раб. меÑто 12 Глава 13 ПроѕирноÑÑ‚ $set 12 #Screen 1 BScreen::BScreen: Друг управувач на прозорци е активен на Ñите екрани 2 W: %4d x H: %4d 3 BScreen::BScreen: управување на екранот %d Ñо 0x%lx и длабочиња %d\n 4 Ш: %04d x Ð’: %04d $set 13 #Slit 1 Странки 2 Врти Ðадолу 3 Врти Ðагоре 4 Слит Правец 5 Слит Слој 6 Слит на чело 7 Ориентација на Слит 8 Слит 9 Сними лиÑта на Слитови $set 14 #Toolbar 1 Реименувај го работното меÑто 2 Iconbar Mode 3 Сите Прозорци 4 Икони 5 Ðишто 6 Раб. меÑто 7 Раб. меÑто Ñо Икони 8 Слој Ñо Ðлатки 9 Toolbar on Head 10 МеÑтопоположба на Ðлатник 11 Ðлатник 12 Ширина на Ðлатник 13 ЧаÑовник: 24h 14 ЧаÑовник: 12h 15 Уреди приказ на чаÑовник 16 Прикажу икони 17 Без Икони 18 Раб. меÑто без икони $set 15 #Window 1 Ðеименуван $set 16 #Windowmenu 1 Затвори 2 Скриј 3 Слој 4 Спушти 5 Зголеми 6 Крени 7 Прати до ... 8 ЗаÑени 9 Залепи 10 Уништи 11 КориÑти оÑновно $set 17 #Workspace 1 Работното меÑто %d 2 Работни меÑта 3 Ðово Раб. меÑто 4 Избриши поÑледно $set 18 #fbsetroot 1 Грешка: Мора да одберите: -solid, -mod, -gradient\n 2 Ðеможам да направам иконÑки атоми, Ñе откажувам! 3 -display <текÑÑ‚> прикажи поврзување\n\ -mod модула шема\n\ -foreground, -fg <боја> модула боја на \n\ -background, -bg <боја> модула боја на позадина\n\n\ -gradient <ÑоÑтав> приливен ÑоÑтав\n\ -from <боја> почетна боја на прилив\n\ -to <боја> крајна боја на прилив\n\n\ -solid <боја> еднобојна\n\n\ -help Ñе прикажува Ñамо овој текÑÑ‚ и Ñе иÑклучува програмата\n $set 19 #main 1 грешка: '-display' бара аргумент 2 Грешно премеÑтување 3 Грешно доделување 4 Ðадвор од домет 5 Runtime error 6 Вообичаен иÑклучок 7 Ðепозната грешка 8 грешка: '-log' бара аргумент 9 ЗапиÑнички фајл 10 Ðајави Ñе 11 грешка: '-rc' бара аргумент 12 грешка: '-screen' бара аргумент 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ ВебÑајт: http://www.fluxbox.org/\n\n\ -display \t\tuse display connection.\n\ -screen \trun on specified screens only.\n\ -rc \t\t\tuse alternate resource file.\n\ -version\t\t\tприкажува верзија на Ñофтверот и Ñе иÑклучува.\n\ -info\t\t\t\tприкажува кориÑни податоци.\n\ -log \t\t\tводи запиÑник во фајл.\n\ -help\t\t\t\tја прикажува оваа текÑÑ‚ помош и Ñе иÑклучува .\n\n 14 предупредување: неможам да ја намеÑтам околинÑката променлива 'DISPLAY' $set 20 #layers 1 Ðад котва 2 Дно 3 Работна површина 4 Котва 5 Ðормално 6 Ðад Ñе fluxbox-1.3.5/nls/mk_MK/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662604020112 xustar000000000000000030 mtime=1360749956.131811951 30 atime=1360750003.827811645 30 ctime=1360750008.763811614 fluxbox-1.3.5/nls/mk_MK/Makefile.in0000644000175000017500000002713412106662604016150 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/mk_MK/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/mk_MK DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = mk_MK SRC_CODESET = UTF-8 DEST_CODESETS = UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/mk_MK/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/mk_MK/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/mk_MK/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020102 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749853.983812605 30 ctime=1360750008.763811614 fluxbox-1.3.5/nls/mk_MK/Makefile.am0000644000175000017500000000277012106662425016137 0ustar00mgmg00000000000000# nls/mk_MK/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = mk_MK SRC_CODESET = UTF-8 DEST_CODESETS = UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/zh_TW0000644000175000017500000000013212106662666016035 xustar000000000000000030 mtime=1360750006.743811627 30 atime=1360750008.763811614 30 ctime=1360750008.763811614 fluxbox-1.3.5/nls/zh_TW/0000755000175000017500000000000012106662666014141 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/zh_TW/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662464021023 xustar000000000000000030 mtime=1360749876.047812463 30 atime=1360749876.063812463 30 ctime=1360750008.763811614 fluxbox-1.3.5/nls/zh_TW/generated-UTF-8.m0000644000175000017500000001273712106662464017064 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 底部中間 2 åº•éƒ¨å·¦å´ 3 底部å³å´ 4 æ°´å¹³ 5 å·¦å´ 6 å·¦å´åº•部 7 å·¦å´ä¸­é–“ 8 å·¦å´é ‚端 9 相å°çš„ 10 å³å´ 11 å³å´åº•部 12 å³å´ä¸­é–“ 13 å³å´é ‚端 14 頂端中間 15 é ‚ç«¯å·¦å´ 16 頂端å³å´ 17 垂直 $set 2 #BaseDisplay 1 æ­£åœ¨ä¸­æ–·â€¦å‚¾å°æ ¸å¿ƒ\n 2 關機中\n 3 %s: æ“·å–到信號 %d\n $set 3 #Common 1 逿˜Žåº¦(Alpha) 2 è‡ªå‹•éš±è— 3 編譯 4 編譯的é¸é … 5 編譯器 6 編譯器版本 7 init 8 keys 9 nls 10 menu 11 style 12 é è¨­ 13 åœç”¨ 14 錯誤 15 Fluxbox 版本 16 被最大化視窗覆蓋 17 GIT 修訂 18 å¯è¦‹çš„ 19 在此樣å¼ä¸­æ²’有指定任何背景é¸é …。\n請查看手冊或閱讀 FAQ。 $set 4 #Configmenu 1 平滑字形 2 自動æå‡è¦–窗 3 單擊æå‡è¦–窗 4 單擊指定焦點 5 è£é£¾æš«æ™‚性視窗 6 æ»‘é¼ æ»¾è¼ªåˆ‡æ›æ¡Œé¢ 7 工作å€è®Šæ›´æ™‚指定焦點視窗 8 ç„¦é»žæŒ‡å®šåž‹å¼ 9 新視窗指定焦點 10 視窗完全最大化 11 å½±åƒéžè‰² 12 移動時混æ¿è¦–窗 14 焦點跟隨滑鼠 15 視窗滑移工作å€é‚Šç•Œ 16 å¼·åˆ¶å‡æ€§é€æ˜Ž 17 é¸å–®é€æ˜Žåº¦ 18 逿˜Žåº¦ 19 ç„¦é»žè¦–çª—é€æ˜Žåº¦ 20 éžç„¦é»žè¦–çª—é€æ˜Žåº¦ 21 分é é¸é … 22 æ¨™é¡Œæ¬„ä¸­çš„åˆ†é  23 外部分é å¯¬åº¦ 24 單擊指定分é ç„¦é»ž 25 滑鼠指定分é ç„¦é»ž $set 5 #Ewmh 1 åš´é‡ï¼šè¨˜æ†¶é«”ä¸è¶³ï¼Œç„¡æ³•é…置給 EWMH 客戶端清單 $set 6 #FbTkError 1 警告ï¼é«˜åº¦>3200, 設定高度=3200 2 警告ï¼å¯¬åº¦>3200, 設定寬度=3200 3 警告:無法載入權宜字型 4 é…é¡éŒ¯èª¤ã€‚ 5 建立åƒç´ å°æ˜ æ™‚發生錯誤 6 無法建立 XImage 7 è®€å–æ™‚失敗 8 è­¦å‘Šï¼šå°‹æ‰¾æœ‰æ•ˆé€æ˜Žæ ¼å¼æ™‚失敗。 9 è­¦å‘Šï¼šå»ºç«‹é€æ˜Žåœ–片時失敗。 10 è­¦å‘Šï¼šå»ºç«‹é€æ˜Žåƒç´ å°æ˜ æ™‚失敗。 11 å°‹æ‰¾èž¢å¹•è¦æ ¼ (%d) 時失敗 12 記憶體ä¸è¶³ 13 é…ç½®è—色緩è¡å€æ™‚記憶體ä¸è¶³ã€‚ 14 é…置綠色緩è¡å€æ™‚記憶體ä¸è¶³ã€‚ 15 é…置紅色緩è¡å€æ™‚記憶體ä¸è¶³ã€‚ 16 讀å–佈景主題項目時失敗 17 è¦–è¦ºä¸æ”¯æ´ 18 設定é è¨­å€¼ $set 7 #Fluxbox 1 rc 檔案åç¨±ç„¡æ•ˆï¼ 2 載入 groupfile 時失敗 3 載入 database 時失敗 4 釿–°å˜—試時以 5 è­¦å‘Šï¼æ‰¾ä¸åˆ°å¯ä»¥é¡¯ç¤ºè¦–çª—çš„èž¢å¹•ï¼ 6 無法建立目錄 %s 7 找ä¸åˆ°å¯ä»¥ç®¡ç†çš„螢幕。\n確定您沒有正在執行其他視窗管ç†å“¡ã€‚ 8 å‰–æžæ­£è¦è¡¨ç¤ºå¼æ™‚發生錯誤 9 åš´é‡ï¼åªèƒ½æœ‰ä¸€å€‹å¯¦é«”çš„ fluxbox 類別。 10 無法連線到 X 伺æœå™¨ã€‚\n確定您啟動 Fluxbox 之å‰å·²å•Ÿå‹• X。 11 警告:X 伺æœå™¨ä¸æ”¯æ´èªžå€ 12 è­¦å‘Šï¼šç„¡æ³•è¨­å®šèªžå€ $set 8 #Gnome 1 åš´é‡ï¼šè¨˜æ†¶é«”ä¸è¶³ï¼Œç„¡æ³•é…置給 GNOME 客戶端清單 $set 9 #Keys 1 按éµï¼šéŒ¯èª¤ç™¼ç”Ÿæ–¼åˆ—號 2 按éµï¼šåˆä½µ keytree æ™‚å¤±æ•—ï¼ 3 按éµï¼šç„¡æ•ˆçš„æŒ‰éµæ–¼åˆ—號 $set 10 #Menu 1 é…ç½® 2 Fluxbox é è¨­é¸å–® 3 離開 4 圖示 5 圖層… 6 在顯示器上… 7 放置ä½å€ 8 釿–°è¼‰å…¥é…ç½® 9 釿–°å•Ÿå‹• 10 è­¦å‘Šï¼šä¸æ­£å¸¸çš„ [編碼] 標記 $set 11 #Remember 1 è£é£¾ 2 維度 3 è·³è‡³å·¥ä½œå€ 4 圖層 5 記ä½â€¦ 6 ä½ç½® 7 關閉時儲存 8 é™°å½± 9 固定 10 䏿˜Žçš„æ‡‰ç”¨è»Ÿé«”éµ 11 å·¥ä½œå€ 12 顯示器 $set 12 #Screen 1 BScreen::BScreenï¼šå‘ X 伺æœå™¨æŸ¥è©¢æ™‚發生錯誤。\n 螢幕中已經執行å¦å¤–的視窗管ç†å“¡ 2 W: %4d x H: %4d 3 BScreen::BScreen:管ç†èž¢å¹• %d 是使用視訊 0x%lxã€è‰²æ·± %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 客戶端 2 å‘下循環 3 å‘上循環 4 å·¥å…·æ¢æ–¹å‘ 5 工具æ¢åœ–層 6 å·¥å…·æ¢æ–¼é¡¯ç¤ºå™¨ä¸Š 7 å·¥å…·æ¢æ”¾ç½®ä½å€ 8 å·¥å…·æ¢ 9 å„²å­˜å·¥å…·æ¢æ¸…å–® $set 14 #Toolbar 1 釿–°å‘½åç›®å‰å·¥ä½œå€ 2 åœ–ç¤ºæ¬„æ¨¡å¼ 3 所有視窗 4 圖示 5 ç„¡ 6 å·¥ä½œå€ 7 工作å€åœ–示 8 工具列圖層 9 工具列於顯示器上 10 工具列放置ä½å€ 11 工具列 12 工具列寬度百分比 13 時é˜ï¼š24 å°æ™‚制 14 時é˜ï¼š12 å°æ™‚制 15 ç·¨è¼¯æ™‚é˜æ ¼å¼ 16 顯示圖片 17 無圖示 18 工作å€ç„¡åœ–示 $set 15 #Window 1 未命å $set 16 #Windowmenu 1 關閉 2 最å°åŒ– 3 圖層 4 é™ä½Ž 5 最大化 6 æå‡ 7 傳é€åˆ°â€¦ 8 é™°å½± 9 固定 10 ç æŽ‰ $set 17 #Workspace 1 å·¥ä½œå€ %d 2 å·¥ä½œå€ 3 æ–°å¢žå·¥ä½œå€ 4 ç§»é™¤æœ«ç«¯å·¥ä½œå€ $set 18 #fbsetroot 1 錯誤:必須指定下列之一:-solidã€-modã€-gradient\n 2 無法建立åƒç´ å°æ˜ å…ƒç´ ï¼Œæ”¾æ£„ï¼ 3 -display 顯示連接\n\ -mod æ¨¡å¡Šå¼æ¨£\n\ -foreground, -fg æ¨¡å¡Šå‰æ™¯é¡è‰²\n\ -background, -bg 模塊背景é¡è‰²\n\n\ -gradient 梯度紋ç†\n\ -from 梯度開始é¡è‰²\n\ -to æ¢¯åº¦çµæŸé¡è‰²\n\n\ -solid 單色\n\n\ -help å°å‡ºæ­¤èªªæ˜Žæ–‡å­—然後離開\n $set 19 #main 1 錯誤:「-displayã€éœ€è¦ä¸€å€‹å¼•數 2 ä¸ç•¶çš„記憶體é…ç½® 3 ä¸ç•¶çš„é¡žåž‹è½‰æ› 4 è¶…å‡ºç¯„åœ 5 執行階段錯誤 6 標準異常 7 䏿˜Žçš„錯誤 8 錯誤:「-logã€éœ€è¦å¼•數 9 記錄檔 10 登入記錄到 11 錯誤:「-rcã€éœ€è¦ä¸€å€‹å¼•數 12 錯誤:「-screenã€éœ€è¦ä¸€å€‹å¼•數 13 Fluxbox %s:(c) %s Henrik Kinnunen\n\ 網站:http://www.fluxbox.org/\n\n\ -display \t\t所使用的顯示連接。\n\ -screen \tåªé‹è¡Œæ–¼æŒ‡å®šçš„螢幕。\n\ -rc \t\t\tä½¿ç”¨æ›¿ä»£çš„è³‡æºæª”案。\n\ -version\t\t\t顯示版本然後離開。\n\ -info\t\t\t\t顯示一些有用資訊。\n\ -log \t\t\t記錄輸出到檔案。\n\ -help\t\t\t\t顯示此說明文字然後離開。\n\n 14 警告:無法設定環境變數「DISPLAY〠$set 20 #layers 1 åœé§å€ä¹‹ä¸Š 2 底部 3 æ¡Œé¢ 4 åœé§å€ 5 一般 6 頂端 fluxbox-1.3.5/nls/zh_TW/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020557 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749876.047812463 30 ctime=1360750008.767811614 fluxbox-1.3.5/nls/zh_TW/Translation.m0000644000175000017500000001273712106662425016620 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 底部中間 2 åº•éƒ¨å·¦å´ 3 底部å³å´ 4 æ°´å¹³ 5 å·¦å´ 6 å·¦å´åº•部 7 å·¦å´ä¸­é–“ 8 å·¦å´é ‚端 9 相å°çš„ 10 å³å´ 11 å³å´åº•部 12 å³å´ä¸­é–“ 13 å³å´é ‚端 14 頂端中間 15 é ‚ç«¯å·¦å´ 16 頂端å³å´ 17 垂直 $set 2 #BaseDisplay 1 æ­£åœ¨ä¸­æ–·â€¦å‚¾å°æ ¸å¿ƒ\n 2 關機中\n 3 %s: æ“·å–到信號 %d\n $set 3 #Common 1 逿˜Žåº¦(Alpha) 2 è‡ªå‹•éš±è— 3 編譯 4 編譯的é¸é … 5 編譯器 6 編譯器版本 7 init 8 keys 9 nls 10 menu 11 style 12 é è¨­ 13 åœç”¨ 14 錯誤 15 Fluxbox 版本 16 被最大化視窗覆蓋 17 GIT 修訂 18 å¯è¦‹çš„ 19 在此樣å¼ä¸­æ²’有指定任何背景é¸é …。\n請查看手冊或閱讀 FAQ。 $set 4 #Configmenu 1 平滑字形 2 自動æå‡è¦–窗 3 單擊æå‡è¦–窗 4 單擊指定焦點 5 è£é£¾æš«æ™‚性視窗 6 æ»‘é¼ æ»¾è¼ªåˆ‡æ›æ¡Œé¢ 7 工作å€è®Šæ›´æ™‚指定焦點視窗 8 ç„¦é»žæŒ‡å®šåž‹å¼ 9 新視窗指定焦點 10 視窗完全最大化 11 å½±åƒéžè‰² 12 移動時混æ¿è¦–窗 14 焦點跟隨滑鼠 15 視窗滑移工作å€é‚Šç•Œ 16 å¼·åˆ¶å‡æ€§é€æ˜Ž 17 é¸å–®é€æ˜Žåº¦ 18 逿˜Žåº¦ 19 ç„¦é»žè¦–çª—é€æ˜Žåº¦ 20 éžç„¦é»žè¦–çª—é€æ˜Žåº¦ 21 分é é¸é … 22 æ¨™é¡Œæ¬„ä¸­çš„åˆ†é  23 外部分é å¯¬åº¦ 24 單擊指定分é ç„¦é»ž 25 滑鼠指定分é ç„¦é»ž $set 5 #Ewmh 1 åš´é‡ï¼šè¨˜æ†¶é«”ä¸è¶³ï¼Œç„¡æ³•é…置給 EWMH 客戶端清單 $set 6 #FbTkError 1 警告ï¼é«˜åº¦>3200, 設定高度=3200 2 警告ï¼å¯¬åº¦>3200, 設定寬度=3200 3 警告:無法載入權宜字型 4 é…é¡éŒ¯èª¤ã€‚ 5 建立åƒç´ å°æ˜ æ™‚發生錯誤 6 無法建立 XImage 7 è®€å–æ™‚失敗 8 è­¦å‘Šï¼šå°‹æ‰¾æœ‰æ•ˆé€æ˜Žæ ¼å¼æ™‚失敗。 9 è­¦å‘Šï¼šå»ºç«‹é€æ˜Žåœ–片時失敗。 10 è­¦å‘Šï¼šå»ºç«‹é€æ˜Žåƒç´ å°æ˜ æ™‚失敗。 11 å°‹æ‰¾èž¢å¹•è¦æ ¼ (%d) 時失敗 12 記憶體ä¸è¶³ 13 é…ç½®è—色緩è¡å€æ™‚記憶體ä¸è¶³ã€‚ 14 é…置綠色緩è¡å€æ™‚記憶體ä¸è¶³ã€‚ 15 é…置紅色緩è¡å€æ™‚記憶體ä¸è¶³ã€‚ 16 讀å–佈景主題項目時失敗 17 è¦–è¦ºä¸æ”¯æ´ 18 設定é è¨­å€¼ $set 7 #Fluxbox 1 rc 檔案åç¨±ç„¡æ•ˆï¼ 2 載入 groupfile 時失敗 3 載入 database 時失敗 4 釿–°å˜—試時以 5 è­¦å‘Šï¼æ‰¾ä¸åˆ°å¯ä»¥é¡¯ç¤ºè¦–çª—çš„èž¢å¹•ï¼ 6 無法建立目錄 %s 7 找ä¸åˆ°å¯ä»¥ç®¡ç†çš„螢幕。\n確定您沒有正在執行其他視窗管ç†å“¡ã€‚ 8 å‰–æžæ­£è¦è¡¨ç¤ºå¼æ™‚發生錯誤 9 åš´é‡ï¼åªèƒ½æœ‰ä¸€å€‹å¯¦é«”çš„ fluxbox 類別。 10 無法連線到 X 伺æœå™¨ã€‚\n確定您啟動 Fluxbox 之å‰å·²å•Ÿå‹• X。 11 警告:X 伺æœå™¨ä¸æ”¯æ´èªžå€ 12 è­¦å‘Šï¼šç„¡æ³•è¨­å®šèªžå€ $set 8 #Gnome 1 åš´é‡ï¼šè¨˜æ†¶é«”ä¸è¶³ï¼Œç„¡æ³•é…置給 GNOME 客戶端清單 $set 9 #Keys 1 按éµï¼šéŒ¯èª¤ç™¼ç”Ÿæ–¼åˆ—號 2 按éµï¼šåˆä½µ keytree æ™‚å¤±æ•—ï¼ 3 按éµï¼šç„¡æ•ˆçš„æŒ‰éµæ–¼åˆ—號 $set 10 #Menu 1 é…ç½® 2 Fluxbox é è¨­é¸å–® 3 離開 4 圖示 5 圖層… 6 在顯示器上… 7 放置ä½å€ 8 釿–°è¼‰å…¥é…ç½® 9 釿–°å•Ÿå‹• 10 è­¦å‘Šï¼šä¸æ­£å¸¸çš„ [編碼] 標記 $set 11 #Remember 1 è£é£¾ 2 維度 3 è·³è‡³å·¥ä½œå€ 4 圖層 5 記ä½â€¦ 6 ä½ç½® 7 關閉時儲存 8 é™°å½± 9 固定 10 䏿˜Žçš„æ‡‰ç”¨è»Ÿé«”éµ 11 å·¥ä½œå€ 12 顯示器 $set 12 #Screen 1 BScreen::BScreenï¼šå‘ X 伺æœå™¨æŸ¥è©¢æ™‚發生錯誤。\n 螢幕中已經執行å¦å¤–的視窗管ç†å“¡ 2 W: %4d x H: %4d 3 BScreen::BScreen:管ç†èž¢å¹• %d 是使用視訊 0x%lxã€è‰²æ·± %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 客戶端 2 å‘下循環 3 å‘上循環 4 å·¥å…·æ¢æ–¹å‘ 5 工具æ¢åœ–層 6 å·¥å…·æ¢æ–¼é¡¯ç¤ºå™¨ä¸Š 7 å·¥å…·æ¢æ”¾ç½®ä½å€ 8 å·¥å…·æ¢ 9 å„²å­˜å·¥å…·æ¢æ¸…å–® $set 14 #Toolbar 1 釿–°å‘½åç›®å‰å·¥ä½œå€ 2 åœ–ç¤ºæ¬„æ¨¡å¼ 3 所有視窗 4 圖示 5 ç„¡ 6 å·¥ä½œå€ 7 工作å€åœ–示 8 工具列圖層 9 工具列於顯示器上 10 工具列放置ä½å€ 11 工具列 12 工具列寬度百分比 13 時é˜ï¼š24 å°æ™‚制 14 時é˜ï¼š12 å°æ™‚制 15 ç·¨è¼¯æ™‚é˜æ ¼å¼ 16 顯示圖片 17 無圖示 18 工作å€ç„¡åœ–示 $set 15 #Window 1 未命å $set 16 #Windowmenu 1 關閉 2 最å°åŒ– 3 圖層 4 é™ä½Ž 5 最大化 6 æå‡ 7 傳é€åˆ°â€¦ 8 é™°å½± 9 固定 10 ç æŽ‰ $set 17 #Workspace 1 å·¥ä½œå€ %d 2 å·¥ä½œå€ 3 æ–°å¢žå·¥ä½œå€ 4 ç§»é™¤æœ«ç«¯å·¥ä½œå€ $set 18 #fbsetroot 1 錯誤:必須指定下列之一:-solidã€-modã€-gradient\n 2 無法建立åƒç´ å°æ˜ å…ƒç´ ï¼Œæ”¾æ£„ï¼ 3 -display 顯示連接\n\ -mod æ¨¡å¡Šå¼æ¨£\n\ -foreground, -fg æ¨¡å¡Šå‰æ™¯é¡è‰²\n\ -background, -bg 模塊背景é¡è‰²\n\n\ -gradient 梯度紋ç†\n\ -from 梯度開始é¡è‰²\n\ -to æ¢¯åº¦çµæŸé¡è‰²\n\n\ -solid 單色\n\n\ -help å°å‡ºæ­¤èªªæ˜Žæ–‡å­—然後離開\n $set 19 #main 1 錯誤:「-displayã€éœ€è¦ä¸€å€‹å¼•數 2 ä¸ç•¶çš„記憶體é…ç½® 3 ä¸ç•¶çš„é¡žåž‹è½‰æ› 4 è¶…å‡ºç¯„åœ 5 執行階段錯誤 6 標準異常 7 䏿˜Žçš„錯誤 8 錯誤:「-logã€éœ€è¦å¼•數 9 記錄檔 10 登入記錄到 11 錯誤:「-rcã€éœ€è¦ä¸€å€‹å¼•數 12 錯誤:「-screenã€éœ€è¦ä¸€å€‹å¼•數 13 Fluxbox %s:(c) %s Henrik Kinnunen\n\ 網站:http://www.fluxbox.org/\n\n\ -display \t\t所使用的顯示連接。\n\ -screen \tåªé‹è¡Œæ–¼æŒ‡å®šçš„螢幕。\n\ -rc \t\t\tä½¿ç”¨æ›¿ä»£çš„è³‡æºæª”案。\n\ -version\t\t\t顯示版本然後離開。\n\ -info\t\t\t\t顯示一些有用資訊。\n\ -log \t\t\t記錄輸出到檔案。\n\ -help\t\t\t\t顯示此說明文字然後離開。\n\n 14 警告:無法設定環境變數「DISPLAY〠$set 20 #layers 1 åœé§å€ä¹‹ä¸Š 2 底部 3 æ¡Œé¢ 4 åœé§å€ 5 一般 6 頂端 fluxbox-1.3.5/nls/zh_TW/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662604020147 xustar000000000000000030 mtime=1360749956.463811949 30 atime=1360750004.091811644 30 ctime=1360750008.767811614 fluxbox-1.3.5/nls/zh_TW/Makefile.in0000644000175000017500000002713412106662604016205 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/zh_TW/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/zh_TW DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = zh_TW SRC_CODESET = UTF-8 DEST_CODESETS = UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/zh_TW/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/zh_TW/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/zh_TW/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020137 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749854.311812602 30 ctime=1360750008.767811614 fluxbox-1.3.5/nls/zh_TW/Makefile.am0000644000175000017500000000277012106662425016174 0ustar00mgmg00000000000000# nls/zh_TW/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = zh_TW SRC_CODESET = UTF-8 DEST_CODESETS = UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/sk_SK0000644000175000017500000000013212106662666016014 xustar000000000000000030 mtime=1360750006.711811627 30 atime=1360750008.767811614 30 ctime=1360750008.767811614 fluxbox-1.3.5/nls/sk_SK/0000755000175000017500000000000012106662666014120 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/sk_SK/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662464021002 xustar000000000000000030 mtime=1360749876.011812464 30 atime=1360749876.027812463 30 ctime=1360750008.771811614 fluxbox-1.3.5/nls/sk_SK/generated-UTF-8.m0000644000175000017500000001452512106662464017040 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Dole v strede 2 Dole vľavo 3 Dole vpravo 4 Horizontálne 5 Vľavo 6 Vľavo dole 7 Vľavo v strede 8 Vľavo hore 9 Relatívne 10 Vpravo 11 Vpravo dole 12 Vpravo v strede 13 Vpravo hore 14 Hore v strede 15 Hore vľavo 16 Hore vpravo 17 Vertikálne $set 2 #BaseDisplay 1 UkonÄujem... zaznamenávam pád aplikácie\n 2 Vypínam\n 3 %s: zachytený signál %d\n $set 3 #Common 1 Alfa 2 Automatické skrývanie 3 Skompilované 4 Nastavenie kompilácie 5 Kompilátor 6 Verzia kompilátora 7 init 8 klávesy 9 nls 10 menu 11 Å¡týl 12 Predvolené 13 vypnuté 14 Chyba 15 Verzia Fluxboxu 16 MaximalizovaÅ¥ nad vÅ¡etkými oknami 17 Revízia GIT 18 Viditeľné 19 V tomto Å¡týle nie je uvedené žiadne pozadie.\nPrezrite si prosím manuál alebo preÄítajte ÄŒasto kladené otázky. $set 4 #Configmenu 1 AntiAlias 2 Automatické zdvihnutie okna 3 Zdvihnutie okna kliknutím 4 Prechod do okna kliknutím 5 DekorovaÅ¥ doÄasné okná 6 Prepínanie plôch kolieskom myÅ¡i 7 Prechod do okna pri zmene pracovnej plochy 8 Model prechodu do okna 9 PrejsÅ¥ do nových okien 10 Úplná maximalizácia 11 Dithering obrazu 12 Pohyb okna so zobrazovaním obsahu 14 Zameranie myÅ¡i 15 Warping pracovnej plochy 16 VnútiÅ¥ pseudo-priehľadnosÅ¥ 17 Alfa menu 18 PriehľadnosÅ¥ 19 Alfa zameraného okna 20 Alfa nezameraného okna 21 Voľby kariet 22 Karty v titulkovej liÅ¡te 23 Šírka externej karty 24 Kliknutie zameranie karty 25 MyÅ¡ zameranie karty $set 5 #Ewmh 1 Vážna chyba: DoÅ¡la pamäť, nedá sa alokovaÅ¥ pre zoznam klientov EWMH $set 6 #FbTkError 1 Varovanie! Výška > 3200, nastavuje sa Výška = 3200 2 Varovanie! Šírka > 3200, nastavuje sa Šírka = 3200 3 Varovanie: nedá sa naÄítaÅ¥ záložné písmo 4 Chyba alokácie. 5 Chyba pri vytváraní pixmap 6 Nedá sa vytvoriÅ¥ XImage 7 Zlyhalo Äítanie 8 Varovanie: Nepodarilo sa nájsÅ¥ platný formát pre alfu. 9 Varovanie: Nepodarilo sa vytvoriÅ¥ alfa obrázok. 10 Varovanie: Nepodarilo sa vytvoriÅ¥ alfa pixmap. 11 Nepodarilo sa nájsÅ¥ formát pre obrazovku(%d) 12 DoÅ¡la pamäť 13 PoÄas alokácie modrého zásobníka doÅ¡la pamäť. 14 PoÄas alokácie zeleného zásobníka doÅ¡la pamäť. 15 PoÄas alokácie Äerveného zásobníka doÅ¡la pamäť. 16 Nepodarilo sa naÄítaÅ¥ položku témy 17 nepodporovaný visual 18 Nastavuje sa predvolená hodnota $set 7 #Fluxbox 1 názov rc súboru je neplatný! 2 Nepodarilo sa naÄítaÅ¥ skupinový súbor 3 Nepodarilo sa naÄítaÅ¥ databázu 4 Zkúšam znovu s 5 Varovanie! Nepodarilo sa nájsÅ¥ obrazovku pre namapovanie tohto okna! 6 Nedá sa vytvoriÅ¥ adresár %s 7 Nepodarilo sa nájsÅ¥ obrazovky pre spravovanie.\nUistite sa, že nemáte spusteného iného správcu okien. 8 Chyba pri spracovaní regulárneho výrazu 9 Vážna chyba! Môže existovaÅ¥ iba jedna inÅ¡tancia trieky fluxbox. 10 Nedá sa pripojiÅ¥ k X serveru.\nUistite sa, že ste spustili X pred spustením Fluxboxu. 11 Varovanie: X server nepodporuje locale 12 Varovanie: nedajú sa nastaviÅ¥ modifikátory locale $set 8 #Gnome 1 Vážna chyba: DoÅ¡la pamäť, nedá sa alokovaÅ¥ pre zoznam klientov GNOME $set 9 #Keys 1 Klávesy: Chyba na riadku 2 Klávesy: Nepodarilo sa zlúÄiÅ¥ strom kláves! 3 Klávesy: Neplatný kláves/modifikáror na riadku $set 10 #Menu 1 Konfigurácia 2 Predvolené menu Fluxboxu 3 Koniec 4 Ikony 5 Vrstva... 6 V hlaviÄke... 7 Umiestnenie 8 Znovu naÄítaÅ¥ konfiguráciu 9 ReÅ¡tartovaÅ¥ 10 Varovanie: nevyvážené [encoding] tagy $set 11 #Remember 1 Dekorácie 2 Rozmery 3 PrejsÅ¥ na pracovnú plochu 4 Vrstva 5 PamätaÅ¥... 6 Pozícia 7 UložiÅ¥ pri zavretí 8 ZrolovaÅ¥ 9 PrilepiÅ¥ 10 Neznámy kláves aplikácie 11 Pracovná plocha 12 HlaviÄka 13 PriehľadnosÅ¥ $set 12 #Screen 1 BScreen::BScreen: pri dotazovaní X servera sa vyskytla chyba.\n na displeji je už spustený iný správca okien 2 Å : %4d x V: %4d 3 BScreen::BScreen: spravujem obrazovku %d používam visual 0x%lx, hĺbka %d\n 4 Å : %04d x V: %04d $set 13 #Slit 1 Klienti 2 RolovaÅ¥ dole 3 RolovaÅ¥ hore 4 Smer slitu 5 Vrstva slitu 6 Slit v hlaviÄke 7 Umiestnenie slitu 8 Slit 9 UložiÅ¥ zoznam slitu $set 14 #Toolbar 1 PremenovaÅ¥ aktuálnu pracovnú plochu 2 Režim liÅ¡ty ikon 3 VÅ¡etky okná 4 Ikony 5 Žiadne 6 Pracovná plocha 7 Ikony pracovnej plochy 8 Vrstva nástrojovej liÅ¡ty 9 Nástrojová liÅ¡ta v hlaviÄke 10 Umiestnenie nástrojovej liÅ¡ty 11 Nástrojová liÅ¡ta 12 Šírka nástrojovej liÅ¡ty v percentách 13 Hodiny: 24h 14 Hodiny: 12h 15 UpraviÅ¥ formát hodín 16 ZobraziÅ¥ obrázky 17 Žiadne ikony 18 Pracovná plocha žiadne ikony $set 15 #Window 1 Nepomenované $set 16 #Windowmenu 1 ZavrieÅ¥ 2 IkonifikovaÅ¥ 3 Vrstva 4 Nižšie 5 MaximalizovaÅ¥ 6 Vyššie 7 OdoslaÅ¥ do ... 8 ZrolovaÅ¥ 9 PrilepiÅ¥ 10 ZabiÅ¥ 11 PoužiÅ¥ predvolené $set 17 #Workspace 1 Pracovná plocha %d 2 Pracovné plochy 3 Nová pracovná plocha 4 OdstrániÅ¥ poslednú $set 18 #fbsetroot 1 Chyba: musíte zadaÅ¥ jedno z: -solid, -mod, -gradient\n 2 Nepodarilo sa vytvoriÅ¥ pixmap atómy, vzdávam to! 3 -display spojenie na displej\n\ -mod modula vzor\n\ -foreground, -fg modula farba popredia\n\ -background, -bg modula farba pozadia\n\n\ -gradient textúra prechodu\n\ -from úvodná farba prechodu\n\ -to závereÄná farba prechodu\n\n\ -solid plná farba\n\n\ -help zobraziÅ¥ tohto textu pomocníka a skonÄiÅ¥\n $set 19 #main 1 chyba: '-display' vyžaduje argument 2 Zlá alokácia 3 Zlý výber 4 Mimo rozsahu 5 Chyba pri behu 6 Å tandardná výnimka 7 Neznáma chyba 8 chyba: '-log' potrebuje argument 9 Súbor so záznamom 10 Zaznamenávam do 11 chyba: '-rc' vyžaduje argument 12 chyba: '-screen' vyžaduje argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ Webová stránka: http://www.fluxbox.org/\n\n\ -display \t\tpoužiÅ¥ pripojenie k displeju.\n\ -screen \tspustiÅ¥ iba na zadaných obrazovkách.\n\ -rc \t\t\tpoužiÅ¥ alternatívny súbor zdrojov.\n\ -version\t\t\tzobraziÅ¥ verziu a skonÄiÅ¥.\n\ -info\t\t\t\tzobraziÅ¥ nejaké užitoÄné informácie.\n\ -log \t\t\tzaznamenávaÅ¥ výstup do súboru.\n\ -help\t\t\t\tzobraziÅ¥ tento text pomocníka a skonÄiÅ¥.\n\n 14 varovanie: nepodarilo sa nastaviÅ¥ premennú prostredia 'DISPLAY' $set 20 #layers 1 Nad dokom 2 Dole 3 Plocha 4 Dok 5 Normálne 6 Vrch fluxbox-1.3.5/nls/sk_SK/PaxHeaders.25974/generated-ISO-8859-2.m0000644000175000017500000000013212106662464021403 xustar000000000000000030 mtime=1360749876.007812464 30 atime=1360749876.023812463 30 ctime=1360750008.771811614 fluxbox-1.3.5/nls/sk_SK/generated-ISO-8859-2.m0000644000175000017500000001375112106662464017441 0ustar00mgmg00000000000000$ codeset=ISO-8859-2 $set 1 #Align 1 Dole v strede 2 Dole vµavo 3 Dole vpravo 4 Horizontálne 5 Vµavo 6 Vµavo dole 7 Vµavo v strede 8 Vµavo hore 9 Relatívne 10 Vpravo 11 Vpravo dole 12 Vpravo v strede 13 Vpravo hore 14 Hore v strede 15 Hore vµavo 16 Hore vpravo 17 Vertikálne $set 2 #BaseDisplay 1 Ukonèujem... zaznamenávam pád aplikácie\n 2 Vypínam\n 3 %s: zachytený signál %d\n $set 3 #Common 1 Alfa 2 Automatické skrývanie 3 Skompilované 4 Nastavenie kompilácie 5 Kompilátor 6 Verzia kompilátora 7 init 8 klávesy 9 nls 10 menu 11 ¹týl 12 Predvolené 13 vypnuté 14 Chyba 15 Verzia Fluxboxu 16 Maximalizova» nad v¹etkými oknami 17 Revízia GIT 18 Viditeµné 19 V tomto ¹týle nie je uvedené ¾iadne pozadie.\nPrezrite si prosím manuál alebo preèítajte Èasto kladené otázky. $set 4 #Configmenu 1 AntiAlias 2 Automatické zdvihnutie okna 3 Zdvihnutie okna kliknutím 4 Prechod do okna kliknutím 5 Dekorova» doèasné okná 6 Prepínanie plôch kolieskom my¹i 7 Prechod do okna pri zmene pracovnej plochy 8 Model prechodu do okna 9 Prejs» do nových okien 10 Úplná maximalizácia 11 Dithering obrazu 12 Pohyb okna so zobrazovaním obsahu 14 Zameranie my¹i 15 Warping pracovnej plochy 16 Vnúti» pseudo-priehµadnos» 17 Alfa menu 18 Priehµadnos» 19 Alfa zameraného okna 20 Alfa nezameraného okna 21 Voµby kariet 22 Karty v titulkovej li¹te 23 ©írka externej karty 24 Kliknutie zameranie karty 25 My¹ zameranie karty $set 5 #Ewmh 1 Vá¾na chyba: Do¹la pamä», nedá sa alokova» pre zoznam klientov EWMH $set 6 #FbTkError 1 Varovanie! Vý¹ka > 3200, nastavuje sa Vý¹ka = 3200 2 Varovanie! ©írka > 3200, nastavuje sa ©írka = 3200 3 Varovanie: nedá sa naèíta» zálo¾né písmo 4 Chyba alokácie. 5 Chyba pri vytváraní pixmap 6 Nedá sa vytvori» XImage 7 Zlyhalo èítanie 8 Varovanie: Nepodarilo sa nájs» platný formát pre alfu. 9 Varovanie: Nepodarilo sa vytvori» alfa obrázok. 10 Varovanie: Nepodarilo sa vytvori» alfa pixmap. 11 Nepodarilo sa nájs» formát pre obrazovku(%d) 12 Do¹la pamä» 13 Poèas alokácie modrého zásobníka do¹la pamä». 14 Poèas alokácie zeleného zásobníka do¹la pamä». 15 Poèas alokácie èerveného zásobníka do¹la pamä». 16 Nepodarilo sa naèíta» polo¾ku témy 17 nepodporovaný visual 18 Nastavuje sa predvolená hodnota $set 7 #Fluxbox 1 názov rc súboru je neplatný! 2 Nepodarilo sa naèíta» skupinový súbor 3 Nepodarilo sa naèíta» databázu 4 Zkú¹am znovu s 5 Varovanie! Nepodarilo sa nájs» obrazovku pre namapovanie tohto okna! 6 Nedá sa vytvori» adresár %s 7 Nepodarilo sa nájs» obrazovky pre spravovanie.\nUistite sa, ¾e nemáte spusteného iného správcu okien. 8 Chyba pri spracovaní regulárneho výrazu 9 Vá¾na chyba! Mô¾e existova» iba jedna in¹tancia trieky fluxbox. 10 Nedá sa pripoji» k X serveru.\nUistite sa, ¾e ste spustili X pred spustením Fluxboxu. 11 Varovanie: X server nepodporuje locale 12 Varovanie: nedajú sa nastavi» modifikátory locale $set 8 #Gnome 1 Vá¾na chyba: Do¹la pamä», nedá sa alokova» pre zoznam klientov GNOME $set 9 #Keys 1 Klávesy: Chyba na riadku 2 Klávesy: Nepodarilo sa zlúèi» strom kláves! 3 Klávesy: Neplatný kláves/modifikáror na riadku $set 10 #Menu 1 Konfigurácia 2 Predvolené menu Fluxboxu 3 Koniec 4 Ikony 5 Vrstva... 6 V hlavièke... 7 Umiestnenie 8 Znovu naèíta» konfiguráciu 9 Re¹tartova» 10 Varovanie: nevyvá¾ené [encoding] tagy $set 11 #Remember 1 Dekorácie 2 Rozmery 3 Prejs» na pracovnú plochu 4 Vrstva 5 Pamäta»... 6 Pozícia 7 Ulo¾i» pri zavretí 8 Zrolova» 9 Prilepi» 10 Neznámy kláves aplikácie 11 Pracovná plocha 12 Hlavièka 13 Priehµadnos» $set 12 #Screen 1 BScreen::BScreen: pri dotazovaní X servera sa vyskytla chyba.\n na displeji je u¾ spustený iný správca okien 2 ©: %4d x V: %4d 3 BScreen::BScreen: spravujem obrazovku %d pou¾ívam visual 0x%lx, håbka %d\n 4 ©: %04d x V: %04d $set 13 #Slit 1 Klienti 2 Rolova» dole 3 Rolova» hore 4 Smer slitu 5 Vrstva slitu 6 Slit v hlavièke 7 Umiestnenie slitu 8 Slit 9 Ulo¾i» zoznam slitu $set 14 #Toolbar 1 Premenova» aktuálnu pracovnú plochu 2 Re¾im li¹ty ikon 3 V¹etky okná 4 Ikony 5 ®iadne 6 Pracovná plocha 7 Ikony pracovnej plochy 8 Vrstva nástrojovej li¹ty 9 Nástrojová li¹ta v hlavièke 10 Umiestnenie nástrojovej li¹ty 11 Nástrojová li¹ta 12 ©írka nástrojovej li¹ty v percentách 13 Hodiny: 24h 14 Hodiny: 12h 15 Upravi» formát hodín 16 Zobrazi» obrázky 17 ®iadne ikony 18 Pracovná plocha ¾iadne ikony $set 15 #Window 1 Nepomenované $set 16 #Windowmenu 1 Zavrie» 2 Ikonifikova» 3 Vrstva 4 Ni¾¹ie 5 Maximalizova» 6 Vy¹¹ie 7 Odosla» do ... 8 Zrolova» 9 Prilepi» 10 Zabi» 11 Pou¾i» predvolené $set 17 #Workspace 1 Pracovná plocha %d 2 Pracovné plochy 3 Nová pracovná plocha 4 Odstráni» poslednú $set 18 #fbsetroot 1 Chyba: musíte zada» jedno z: -solid, -mod, -gradient\n 2 Nepodarilo sa vytvori» pixmap atómy, vzdávam to! 3 -display spojenie na displej\n\ -mod modula vzor\n\ -foreground, -fg modula farba popredia\n\ -background, -bg modula farba pozadia\n\n\ -gradient textúra prechodu\n\ -from úvodná farba prechodu\n\ -to závereèná farba prechodu\n\n\ -solid plná farba\n\n\ -help zobrazi» tohto textu pomocníka a skonèi»\n $set 19 #main 1 chyba: '-display' vy¾aduje argument 2 Zlá alokácia 3 Zlý výber 4 Mimo rozsahu 5 Chyba pri behu 6 ©tandardná výnimka 7 Neznáma chyba 8 chyba: '-log' potrebuje argument 9 Súbor so záznamom 10 Zaznamenávam do 11 chyba: '-rc' vy¾aduje argument 12 chyba: '-screen' vy¾aduje argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ Webová stránka: http://www.fluxbox.org/\n\n\ -display \t\tpou¾i» pripojenie k displeju.\n\ -screen \tspusti» iba na zadaných obrazovkách.\n\ -rc \t\t\tpou¾i» alternatívny súbor zdrojov.\n\ -version\t\t\tzobrazi» verziu a skonèi».\n\ -info\t\t\t\tzobrazi» nejaké u¾itoèné informácie.\n\ -log \t\t\tzaznamenáva» výstup do súboru.\n\ -help\t\t\t\tzobrazi» tento text pomocníka a skonèi».\n\n 14 varovanie: nepodarilo sa nastavi» premennú prostredia 'DISPLAY' $set 20 #layers 1 Nad dokom 2 Dole 3 Plocha 4 Dok 5 Normálne 6 Vrch fluxbox-1.3.5/nls/sk_SK/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020536 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749876.007812464 30 ctime=1360750008.771811614 fluxbox-1.3.5/nls/sk_SK/Translation.m0000644000175000017500000001452512106662425016574 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Dole v strede 2 Dole vľavo 3 Dole vpravo 4 Horizontálne 5 Vľavo 6 Vľavo dole 7 Vľavo v strede 8 Vľavo hore 9 Relatívne 10 Vpravo 11 Vpravo dole 12 Vpravo v strede 13 Vpravo hore 14 Hore v strede 15 Hore vľavo 16 Hore vpravo 17 Vertikálne $set 2 #BaseDisplay 1 UkonÄujem... zaznamenávam pád aplikácie\n 2 Vypínam\n 3 %s: zachytený signál %d\n $set 3 #Common 1 Alfa 2 Automatické skrývanie 3 Skompilované 4 Nastavenie kompilácie 5 Kompilátor 6 Verzia kompilátora 7 init 8 klávesy 9 nls 10 menu 11 Å¡týl 12 Predvolené 13 vypnuté 14 Chyba 15 Verzia Fluxboxu 16 MaximalizovaÅ¥ nad vÅ¡etkými oknami 17 Revízia GIT 18 Viditeľné 19 V tomto Å¡týle nie je uvedené žiadne pozadie.\nPrezrite si prosím manuál alebo preÄítajte ÄŒasto kladené otázky. $set 4 #Configmenu 1 AntiAlias 2 Automatické zdvihnutie okna 3 Zdvihnutie okna kliknutím 4 Prechod do okna kliknutím 5 DekorovaÅ¥ doÄasné okná 6 Prepínanie plôch kolieskom myÅ¡i 7 Prechod do okna pri zmene pracovnej plochy 8 Model prechodu do okna 9 PrejsÅ¥ do nových okien 10 Úplná maximalizácia 11 Dithering obrazu 12 Pohyb okna so zobrazovaním obsahu 14 Zameranie myÅ¡i 15 Warping pracovnej plochy 16 VnútiÅ¥ pseudo-priehľadnosÅ¥ 17 Alfa menu 18 PriehľadnosÅ¥ 19 Alfa zameraného okna 20 Alfa nezameraného okna 21 Voľby kariet 22 Karty v titulkovej liÅ¡te 23 Šírka externej karty 24 Kliknutie zameranie karty 25 MyÅ¡ zameranie karty $set 5 #Ewmh 1 Vážna chyba: DoÅ¡la pamäť, nedá sa alokovaÅ¥ pre zoznam klientov EWMH $set 6 #FbTkError 1 Varovanie! Výška > 3200, nastavuje sa Výška = 3200 2 Varovanie! Šírka > 3200, nastavuje sa Šírka = 3200 3 Varovanie: nedá sa naÄítaÅ¥ záložné písmo 4 Chyba alokácie. 5 Chyba pri vytváraní pixmap 6 Nedá sa vytvoriÅ¥ XImage 7 Zlyhalo Äítanie 8 Varovanie: Nepodarilo sa nájsÅ¥ platný formát pre alfu. 9 Varovanie: Nepodarilo sa vytvoriÅ¥ alfa obrázok. 10 Varovanie: Nepodarilo sa vytvoriÅ¥ alfa pixmap. 11 Nepodarilo sa nájsÅ¥ formát pre obrazovku(%d) 12 DoÅ¡la pamäť 13 PoÄas alokácie modrého zásobníka doÅ¡la pamäť. 14 PoÄas alokácie zeleného zásobníka doÅ¡la pamäť. 15 PoÄas alokácie Äerveného zásobníka doÅ¡la pamäť. 16 Nepodarilo sa naÄítaÅ¥ položku témy 17 nepodporovaný visual 18 Nastavuje sa predvolená hodnota $set 7 #Fluxbox 1 názov rc súboru je neplatný! 2 Nepodarilo sa naÄítaÅ¥ skupinový súbor 3 Nepodarilo sa naÄítaÅ¥ databázu 4 Zkúšam znovu s 5 Varovanie! Nepodarilo sa nájsÅ¥ obrazovku pre namapovanie tohto okna! 6 Nedá sa vytvoriÅ¥ adresár %s 7 Nepodarilo sa nájsÅ¥ obrazovky pre spravovanie.\nUistite sa, že nemáte spusteného iného správcu okien. 8 Chyba pri spracovaní regulárneho výrazu 9 Vážna chyba! Môže existovaÅ¥ iba jedna inÅ¡tancia trieky fluxbox. 10 Nedá sa pripojiÅ¥ k X serveru.\nUistite sa, že ste spustili X pred spustením Fluxboxu. 11 Varovanie: X server nepodporuje locale 12 Varovanie: nedajú sa nastaviÅ¥ modifikátory locale $set 8 #Gnome 1 Vážna chyba: DoÅ¡la pamäť, nedá sa alokovaÅ¥ pre zoznam klientov GNOME $set 9 #Keys 1 Klávesy: Chyba na riadku 2 Klávesy: Nepodarilo sa zlúÄiÅ¥ strom kláves! 3 Klávesy: Neplatný kláves/modifikáror na riadku $set 10 #Menu 1 Konfigurácia 2 Predvolené menu Fluxboxu 3 Koniec 4 Ikony 5 Vrstva... 6 V hlaviÄke... 7 Umiestnenie 8 Znovu naÄítaÅ¥ konfiguráciu 9 ReÅ¡tartovaÅ¥ 10 Varovanie: nevyvážené [encoding] tagy $set 11 #Remember 1 Dekorácie 2 Rozmery 3 PrejsÅ¥ na pracovnú plochu 4 Vrstva 5 PamätaÅ¥... 6 Pozícia 7 UložiÅ¥ pri zavretí 8 ZrolovaÅ¥ 9 PrilepiÅ¥ 10 Neznámy kláves aplikácie 11 Pracovná plocha 12 HlaviÄka 13 PriehľadnosÅ¥ $set 12 #Screen 1 BScreen::BScreen: pri dotazovaní X servera sa vyskytla chyba.\n na displeji je už spustený iný správca okien 2 Å : %4d x V: %4d 3 BScreen::BScreen: spravujem obrazovku %d používam visual 0x%lx, hĺbka %d\n 4 Å : %04d x V: %04d $set 13 #Slit 1 Klienti 2 RolovaÅ¥ dole 3 RolovaÅ¥ hore 4 Smer slitu 5 Vrstva slitu 6 Slit v hlaviÄke 7 Umiestnenie slitu 8 Slit 9 UložiÅ¥ zoznam slitu $set 14 #Toolbar 1 PremenovaÅ¥ aktuálnu pracovnú plochu 2 Režim liÅ¡ty ikon 3 VÅ¡etky okná 4 Ikony 5 Žiadne 6 Pracovná plocha 7 Ikony pracovnej plochy 8 Vrstva nástrojovej liÅ¡ty 9 Nástrojová liÅ¡ta v hlaviÄke 10 Umiestnenie nástrojovej liÅ¡ty 11 Nástrojová liÅ¡ta 12 Šírka nástrojovej liÅ¡ty v percentách 13 Hodiny: 24h 14 Hodiny: 12h 15 UpraviÅ¥ formát hodín 16 ZobraziÅ¥ obrázky 17 Žiadne ikony 18 Pracovná plocha žiadne ikony $set 15 #Window 1 Nepomenované $set 16 #Windowmenu 1 ZavrieÅ¥ 2 IkonifikovaÅ¥ 3 Vrstva 4 Nižšie 5 MaximalizovaÅ¥ 6 Vyššie 7 OdoslaÅ¥ do ... 8 ZrolovaÅ¥ 9 PrilepiÅ¥ 10 ZabiÅ¥ 11 PoužiÅ¥ predvolené $set 17 #Workspace 1 Pracovná plocha %d 2 Pracovné plochy 3 Nová pracovná plocha 4 OdstrániÅ¥ poslednú $set 18 #fbsetroot 1 Chyba: musíte zadaÅ¥ jedno z: -solid, -mod, -gradient\n 2 Nepodarilo sa vytvoriÅ¥ pixmap atómy, vzdávam to! 3 -display spojenie na displej\n\ -mod modula vzor\n\ -foreground, -fg modula farba popredia\n\ -background, -bg modula farba pozadia\n\n\ -gradient textúra prechodu\n\ -from úvodná farba prechodu\n\ -to závereÄná farba prechodu\n\n\ -solid plná farba\n\n\ -help zobraziÅ¥ tohto textu pomocníka a skonÄiÅ¥\n $set 19 #main 1 chyba: '-display' vyžaduje argument 2 Zlá alokácia 3 Zlý výber 4 Mimo rozsahu 5 Chyba pri behu 6 Å tandardná výnimka 7 Neznáma chyba 8 chyba: '-log' potrebuje argument 9 Súbor so záznamom 10 Zaznamenávam do 11 chyba: '-rc' vyžaduje argument 12 chyba: '-screen' vyžaduje argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ Webová stránka: http://www.fluxbox.org/\n\n\ -display \t\tpoužiÅ¥ pripojenie k displeju.\n\ -screen \tspustiÅ¥ iba na zadaných obrazovkách.\n\ -rc \t\t\tpoužiÅ¥ alternatívny súbor zdrojov.\n\ -version\t\t\tzobraziÅ¥ verziu a skonÄiÅ¥.\n\ -info\t\t\t\tzobraziÅ¥ nejaké užitoÄné informácie.\n\ -log \t\t\tzaznamenávaÅ¥ výstup do súboru.\n\ -help\t\t\t\tzobraziÅ¥ tento text pomocníka a skonÄiÅ¥.\n\n 14 varovanie: nepodarilo sa nastaviÅ¥ premennú prostredia 'DISPLAY' $set 20 #layers 1 Nad dokom 2 Dole 3 Plocha 4 Dok 5 Normálne 6 Vrch fluxbox-1.3.5/nls/sk_SK/PaxHeaders.25974/Makefile.in0000644000175000017500000000013112106662604020125 xustar000000000000000029 mtime=1360749956.31181195 30 atime=1360750003.967811645 30 ctime=1360750008.771811614 fluxbox-1.3.5/nls/sk_SK/Makefile.in0000644000175000017500000002714712106662604016170 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/sk_SK/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/sk_SK DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = sk_SK SRC_CODESET = UTF-8 DEST_CODESETS = ISO-8859-2 UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/sk_SK/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/sk_SK/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/sk_SK/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020116 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749854.159812603 30 ctime=1360750008.771811614 fluxbox-1.3.5/nls/sk_SK/Makefile.am0000644000175000017500000000300312106662425016141 0ustar00mgmg00000000000000# nls/sk_SK/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = sk_SK SRC_CODESET = UTF-8 DEST_CODESETS = ISO-8859-2 UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/fr_CH0000644000175000017500000000013212106662666015763 xustar000000000000000030 mtime=1360750006.683811627 30 atime=1360750008.775811614 30 ctime=1360750008.775811614 fluxbox-1.3.5/nls/fr_CH/0000755000175000017500000000000012106662666014067 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/fr_CH/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662463020750 xustar000000000000000030 mtime=1360749875.971812464 30 atime=1360749875.983812464 30 ctime=1360750008.775811614 fluxbox-1.3.5/nls/fr_CH/generated-UTF-8.m0000644000175000017500000001445312106662463017006 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 En bas au centre 2 En bas à gauche 3 En bas à droite 4 Horizontale 5 A gauche 6 A gauche en bas 7 A gauche au centre 8 A gauche en haut 9 Relatif 10 A droite 11 A droite en bas 12 A droite au centre 13 A droite en haut 14 En haut au centre 15 En haut à gauche 16 En haut à droite 17 Vertical $set 2 #BaseDisplay 1 Interruption ...vidage de la mémoire\n 2 Fermeture du programme\n 3 %s: signal %d reçus\n $set 3 #Common 1 Transparence 2 Masquer automatiquement 3 Compilé 4 Options compilées 5 Compilateur 6 Version du compilateur 12 Défauts 13 désactivé 14 Erreur 15 Version de Fluxbox 16 Maximiser 17 Révision GIT 18 Visible 19 Aucune option d'arrière plan n'a été spécifié dans ce style.\nVeuillez consulter le manuel ou bien liser la FAQ. $set 4 #Configmenu 1 Lissage des polices 2 Premier plan automatique 3 Cliquer pour mettre au premier-plan 4 Cliquer pour converger 5 Décorer les fenêtres transitoires 6 Changer de bureau à l'aide de la molette 7 Converger la fenêtre au changement de bureau 8 Modèle de convergence 9 Converger sur les nouvelles fenêtres 10 Maximisation complète 11 Estompage d'images 12 Déplacement opaque des fenêtres 14 Convergence souple 15 Glisser les fenêtres sur les autres bureaux 16 Forcer la pseudo-transparence 17 Transparence du menu 18 Transparence 19 Fenêtre active 20 Fenêtre passive 21 Options des onglets 22 Onglets sur la barre de titre 23 Largeur de l'onglet externe 24 Sélectionner l'onglet par clique 25 Sélectionner l'onglet avec la souris $set 5 #Ewmh 1 Mémoire insuffisante, impossible d'allouer de la mémoire pour la liste de client EWMH $set 6 #FbTkError 1 Avertissement ! Hauteur > 3200, parametre de hauteur = 3200 2 Avertissement ! Largeur > 3200 Paramètre de hauteur = 3200 3 impossible de charger la police par défaut 4 Erreur d'allocation. 5 Erreur de création du pixmap 6 Impossible de créer XImage 7 La lecture a échoué 8 aucun format valide pour la transparence. 9 la création de l'image alpha a échoué. 10 la création du pixmap transparent a échoué. 11 Impossible de trouver un format valide pour l'écran(%d) 12 Mémoire insuffisante 13 Mémoire insuffisante pour l'allocation du tampon bleu. 14 Mémoire insuffisante pour l'allocation du tampon vert 15 Mémoire insuffisante pour l'allocation du tampon rouge 16 La lecture de l'élément du thème a échoué 17 affichage non supporté 18 Définition des valeurs par défaut $set 7 #Fluxbox 1 Le fichier rc n'est pas valide ! 2 Le chargement du fichier de groupe a échoué 3 Le chargement de la base de données a échoué 4 Nouvel essai avec 5 Avertissement ! Impossible de trouver un écran pour y afficher la fenêtre ! 6 Impossible de créer le répertoire %s 7 Impossible de trouver un écran à gérer.\nAssurez vous de ne pas avoir un autre gestionnaire de fenêtre en cour d'execution. 8 Erreur lors de l'analyse de l'expression regulière 9 Erreur fatale ! Il ne doit y avoir qu'une seule instance de fluxbox ! 10 Impossible de se connecter au serveur X.\nAssurez vous d'avoir démarrer X avant Fluxbox. 11 X ne prends pas en charge la locale 12 impossible de définir les modificateurs de locale $set 8 #Gnome 1 Mémoire insuffisante, impossible d'allouer de la mémoire pour la liste de client GNOME $set 9 #Keys $set 10 #Menu 2 Menu par défaut de Fluxbox 3 Quitter 4 Icônes 5 Empiler... 6 Sur l'en-tête 7 Disposition 8 Recharger la configuration 9 Redémarrer $set 11 #Remember 1 la décoration 2 la dimension 3 passage au bureau 4 l'empilage 5 Mémoriser... 6 la position 7 enregistrer en quittant 8 l'ombrage 9 le collage 10 Raccourcis d'application inconnu 11 le bureau 12 l'en-tête $set 12 #Screen 1 BScreen::BScreen: une erreur est survenue en interrogeant le serveur X.\n Un autre gestionnaire de fenêtre est en cours d'exécution sur l'affichage 2 L: %4d x H: %4d 3 BScreen::BScreen: gestion de l'ecran %d utilisant l'affichage 0x%lx, de profondeur %d\n $set 13 #Slit 1 Applications 2 Basculer vers le bas 3 Basculer vers le haut 4 Orientation du Slit 5 Empilage du Slit 7 Disposition du Slit 9 Sauver le Slit $set 14 #Toolbar 1 Editer le nom du bureau 2 Mode d'icônification 3 Toutes les fenêtres 4 Icônes 5 Aucun 6 Bureau 7 Icônes du bureau 8 Empiler la barre d'outils 9 Barre d'outils de l'en-tête 10 Disposition de la barre d'outils 11 Barre d'outils 12 Taille de la barre 13 Horloge: 24h 14 Horloge: 12h 15 Format de l'heure 16 Voir les images 17 Sans icône 18 Bureau sans icône $set 15 #Window 1 Sans titre $set 16 #Windowmenu 1 Fermer 2 Icônifier 3 Empilage 4 Arrière-plan 5 Agrandir 6 Avant-plan 7 Déplacer 8 Ombrer 9 Coller 10 Tuer $set 17 #Workspace 1 Bureau %d 2 Bureaux 3 Nouveau bureau 4 Enlever le dernier $set 18 #fbsetroot 1 -solid, -mod, -gradient\n 2 Impossible de créer des atomes de pixmap, abandon ! 3 -display connexion sur l'affichage\n\ -mod motif de modula\n\ -foreground, -fg couleur du premier plan de modula\n\ -background, -bg couleur du second plan de modula\n\n\ -gradient texture du dégradé\n\ -from couleur de départ du dégradé\n\ -to couleur d'arrivé du dégradé\n\n\ -solid couleur pleine\n\n\ -help affiche ce texte d'aide et quitte\n $set 19 #main 1 '-display' nécessite un argument\n 2 Mauvaise allocation 3 Mauvais transtypage 4 Hors des limites 5 Erreur d'exécution 6 Exception standard 7 Erreur inconnue 8 erreur: '-log' nécessite un argument 9 Journal 10 Enregistrement du journal vers 11 erreur: '-rc' nécessite un argument 12 erreur: 'screen' nécessite un argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ Website: http://www.fluxbox.org/\n\n\ -display \t\utilise la connexion sur le display\ -screen \tfonctionne uniquement sur un écran spécifique\ -rc \t\t\tutilise un autre fichier de configuration.\n\ -version\t\t\taffiche la version et quitte.\n\ -info\t\t\t\taffiche quelques informations utiles.\n\ -log \t\t\tjournaliser la sortie vers le fichier.\n\ -help\t\t\t\taffiche ce texte d'aide et quitte.\n\n 14 attention: il n'est pas possible de placer la variable 'DISPLAY' $set 20 #layers 1 En dessous du Dock 2 En bas 3 Sur le bureau 4 Dock 5 Normal 6 En haut du Dock fluxbox-1.3.5/nls/fr_CH/PaxHeaders.25974/generated-ISO-8859-15.m0000644000175000017500000000013212106662463021435 xustar000000000000000030 mtime=1360749875.967812464 30 atime=1360749875.983812464 30 ctime=1360750008.775811614 fluxbox-1.3.5/nls/fr_CH/generated-ISO-8859-15.m0000644000175000017500000001427712106662463017477 0ustar00mgmg00000000000000$ codeset=ISO-8859-15 $set 1 #Align 1 En bas au centre 2 En bas à gauche 3 En bas à droite 4 Horizontale 5 A gauche 6 A gauche en bas 7 A gauche au centre 8 A gauche en haut 9 Relatif 10 A droite 11 A droite en bas 12 A droite au centre 13 A droite en haut 14 En haut au centre 15 En haut à gauche 16 En haut à droite 17 Vertical $set 2 #BaseDisplay 1 Interruption ...vidage de la mémoire\n 2 Fermeture du programme\n 3 %s: signal %d reçus\n $set 3 #Common 1 Transparence 2 Masquer automatiquement 3 Compilé 4 Options compilées 5 Compilateur 6 Version du compilateur 12 Défauts 13 désactivé 14 Erreur 15 Version de Fluxbox 16 Maximiser 17 Révision GIT 18 Visible 19 Aucune option d'arrière plan n'a été spécifié dans ce style.\nVeuillez consulter le manuel ou bien liser la FAQ. $set 4 #Configmenu 1 Lissage des polices 2 Premier plan automatique 3 Cliquer pour mettre au premier-plan 4 Cliquer pour converger 5 Décorer les fenêtres transitoires 6 Changer de bureau à l'aide de la molette 7 Converger la fenêtre au changement de bureau 8 Modèle de convergence 9 Converger sur les nouvelles fenêtres 10 Maximisation complète 11 Estompage d'images 12 Déplacement opaque des fenêtres 14 Convergence souple 15 Glisser les fenêtres sur les autres bureaux 16 Forcer la pseudo-transparence 17 Transparence du menu 18 Transparence 19 Fenêtre active 20 Fenêtre passive 21 Options des onglets 22 Onglets sur la barre de titre 23 Largeur de l'onglet externe 24 Sélectionner l'onglet par clique 25 Sélectionner l'onglet avec la souris $set 5 #Ewmh 1 Mémoire insuffisante, impossible d'allouer de la mémoire pour la liste de client EWMH $set 6 #FbTkError 1 Avertissement ! Hauteur > 3200, parametre de hauteur = 3200 2 Avertissement ! Largeur > 3200 Paramètre de hauteur = 3200 3 impossible de charger la police par défaut 4 Erreur d'allocation. 5 Erreur de création du pixmap 6 Impossible de créer XImage 7 La lecture a échoué 8 aucun format valide pour la transparence. 9 la création de l'image alpha a échoué. 10 la création du pixmap transparent a échoué. 11 Impossible de trouver un format valide pour l'écran(%d) 12 Mémoire insuffisante 13 Mémoire insuffisante pour l'allocation du tampon bleu. 14 Mémoire insuffisante pour l'allocation du tampon vert 15 Mémoire insuffisante pour l'allocation du tampon rouge 16 La lecture de l'élément du thème a échoué 17 affichage non supporté 18 Définition des valeurs par défaut $set 7 #Fluxbox 1 Le fichier rc n'est pas valide ! 2 Le chargement du fichier de groupe a échoué 3 Le chargement de la base de données a échoué 4 Nouvel essai avec 5 Avertissement ! Impossible de trouver un écran pour y afficher la fenêtre ! 6 Impossible de créer le répertoire %s 7 Impossible de trouver un écran à gérer.\nAssurez vous de ne pas avoir un autre gestionnaire de fenêtre en cour d'execution. 8 Erreur lors de l'analyse de l'expression regulière 9 Erreur fatale ! Il ne doit y avoir qu'une seule instance de fluxbox ! 10 Impossible de se connecter au serveur X.\nAssurez vous d'avoir démarrer X avant Fluxbox. 11 X ne prends pas en charge la locale 12 impossible de définir les modificateurs de locale $set 8 #Gnome 1 Mémoire insuffisante, impossible d'allouer de la mémoire pour la liste de client GNOME $set 9 #Keys $set 10 #Menu 2 Menu par défaut de Fluxbox 3 Quitter 4 Icônes 5 Empiler... 6 Sur l'en-tête 7 Disposition 8 Recharger la configuration 9 Redémarrer $set 11 #Remember 1 la décoration 2 la dimension 3 passage au bureau 4 l'empilage 5 Mémoriser... 6 la position 7 enregistrer en quittant 8 l'ombrage 9 le collage 10 Raccourcis d'application inconnu 11 le bureau 12 l'en-tête $set 12 #Screen 1 BScreen::BScreen: une erreur est survenue en interrogeant le serveur X.\n Un autre gestionnaire de fenêtre est en cours d'exécution sur l'affichage 2 L: %4d x H: %4d 3 BScreen::BScreen: gestion de l'ecran %d utilisant l'affichage 0x%lx, de profondeur %d\n $set 13 #Slit 1 Applications 2 Basculer vers le bas 3 Basculer vers le haut 4 Orientation du Slit 5 Empilage du Slit 7 Disposition du Slit 9 Sauver le Slit $set 14 #Toolbar 1 Editer le nom du bureau 2 Mode d'icônification 3 Toutes les fenêtres 4 Icônes 5 Aucun 6 Bureau 7 Icônes du bureau 8 Empiler la barre d'outils 9 Barre d'outils de l'en-tête 10 Disposition de la barre d'outils 11 Barre d'outils 12 Taille de la barre 13 Horloge: 24h 14 Horloge: 12h 15 Format de l'heure 16 Voir les images 17 Sans icône 18 Bureau sans icône $set 15 #Window 1 Sans titre $set 16 #Windowmenu 1 Fermer 2 Icônifier 3 Empilage 4 Arrière-plan 5 Agrandir 6 Avant-plan 7 Déplacer 8 Ombrer 9 Coller 10 Tuer $set 17 #Workspace 1 Bureau %d 2 Bureaux 3 Nouveau bureau 4 Enlever le dernier $set 18 #fbsetroot 1 -solid, -mod, -gradient\n 2 Impossible de créer des atomes de pixmap, abandon ! 3 -display connexion sur l'affichage\n\ -mod motif de modula\n\ -foreground, -fg couleur du premier plan de modula\n\ -background, -bg couleur du second plan de modula\n\n\ -gradient texture du dégradé\n\ -from couleur de départ du dégradé\n\ -to couleur d'arrivé du dégradé\n\n\ -solid couleur pleine\n\n\ -help affiche ce texte d'aide et quitte\n $set 19 #main 1 '-display' nécessite un argument\n 2 Mauvaise allocation 3 Mauvais transtypage 4 Hors des limites 5 Erreur d'exécution 6 Exception standard 7 Erreur inconnue 8 erreur: '-log' nécessite un argument 9 Journal 10 Enregistrement du journal vers 11 erreur: '-rc' nécessite un argument 12 erreur: 'screen' nécessite un argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ Website: http://www.fluxbox.org/\n\n\ -display \t\utilise la connexion sur le display\ -screen \tfonctionne uniquement sur un écran spécifique\ -rc \t\t\tutilise un autre fichier de configuration.\n\ -version\t\t\taffiche la version et quitte.\n\ -info\t\t\t\taffiche quelques informations utiles.\n\ -log \t\t\tjournaliser la sortie vers le fichier.\n\ -help\t\t\t\taffiche ce texte d'aide et quitte.\n\n 14 attention: il n'est pas possible de placer la variable 'DISPLAY' $set 20 #layers 1 En dessous du Dock 2 En bas 3 Sur le bureau 4 Dock 5 Normal 6 En haut du Dock fluxbox-1.3.5/nls/fr_CH/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020505 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749875.967812464 30 ctime=1360750008.775811614 fluxbox-1.3.5/nls/fr_CH/Translation.m0000644000175000017500000001427712106662425016547 0ustar00mgmg00000000000000$ codeset=ISO-8859-15 $set 1 #Align 1 En bas au centre 2 En bas à gauche 3 En bas à droite 4 Horizontale 5 A gauche 6 A gauche en bas 7 A gauche au centre 8 A gauche en haut 9 Relatif 10 A droite 11 A droite en bas 12 A droite au centre 13 A droite en haut 14 En haut au centre 15 En haut à gauche 16 En haut à droite 17 Vertical $set 2 #BaseDisplay 1 Interruption ...vidage de la mémoire\n 2 Fermeture du programme\n 3 %s: signal %d reçus\n $set 3 #Common 1 Transparence 2 Masquer automatiquement 3 Compilé 4 Options compilées 5 Compilateur 6 Version du compilateur 12 Défauts 13 désactivé 14 Erreur 15 Version de Fluxbox 16 Maximiser 17 Révision GIT 18 Visible 19 Aucune option d'arrière plan n'a été spécifié dans ce style.\nVeuillez consulter le manuel ou bien liser la FAQ. $set 4 #Configmenu 1 Lissage des polices 2 Premier plan automatique 3 Cliquer pour mettre au premier-plan 4 Cliquer pour converger 5 Décorer les fenêtres transitoires 6 Changer de bureau à l'aide de la molette 7 Converger la fenêtre au changement de bureau 8 Modèle de convergence 9 Converger sur les nouvelles fenêtres 10 Maximisation complète 11 Estompage d'images 12 Déplacement opaque des fenêtres 14 Convergence souple 15 Glisser les fenêtres sur les autres bureaux 16 Forcer la pseudo-transparence 17 Transparence du menu 18 Transparence 19 Fenêtre active 20 Fenêtre passive 21 Options des onglets 22 Onglets sur la barre de titre 23 Largeur de l'onglet externe 24 Sélectionner l'onglet par clique 25 Sélectionner l'onglet avec la souris $set 5 #Ewmh 1 Mémoire insuffisante, impossible d'allouer de la mémoire pour la liste de client EWMH $set 6 #FbTkError 1 Avertissement ! Hauteur > 3200, parametre de hauteur = 3200 2 Avertissement ! Largeur > 3200 Paramètre de hauteur = 3200 3 impossible de charger la police par défaut 4 Erreur d'allocation. 5 Erreur de création du pixmap 6 Impossible de créer XImage 7 La lecture a échoué 8 aucun format valide pour la transparence. 9 la création de l'image alpha a échoué. 10 la création du pixmap transparent a échoué. 11 Impossible de trouver un format valide pour l'écran(%d) 12 Mémoire insuffisante 13 Mémoire insuffisante pour l'allocation du tampon bleu. 14 Mémoire insuffisante pour l'allocation du tampon vert 15 Mémoire insuffisante pour l'allocation du tampon rouge 16 La lecture de l'élément du thème a échoué 17 affichage non supporté 18 Définition des valeurs par défaut $set 7 #Fluxbox 1 Le fichier rc n'est pas valide ! 2 Le chargement du fichier de groupe a échoué 3 Le chargement de la base de données a échoué 4 Nouvel essai avec 5 Avertissement ! Impossible de trouver un écran pour y afficher la fenêtre ! 6 Impossible de créer le répertoire %s 7 Impossible de trouver un écran à gérer.\nAssurez vous de ne pas avoir un autre gestionnaire de fenêtre en cour d'execution. 8 Erreur lors de l'analyse de l'expression regulière 9 Erreur fatale ! Il ne doit y avoir qu'une seule instance de fluxbox ! 10 Impossible de se connecter au serveur X.\nAssurez vous d'avoir démarrer X avant Fluxbox. 11 X ne prends pas en charge la locale 12 impossible de définir les modificateurs de locale $set 8 #Gnome 1 Mémoire insuffisante, impossible d'allouer de la mémoire pour la liste de client GNOME $set 9 #Keys $set 10 #Menu 2 Menu par défaut de Fluxbox 3 Quitter 4 Icônes 5 Empiler... 6 Sur l'en-tête 7 Disposition 8 Recharger la configuration 9 Redémarrer $set 11 #Remember 1 la décoration 2 la dimension 3 passage au bureau 4 l'empilage 5 Mémoriser... 6 la position 7 enregistrer en quittant 8 l'ombrage 9 le collage 10 Raccourcis d'application inconnu 11 le bureau 12 l'en-tête $set 12 #Screen 1 BScreen::BScreen: une erreur est survenue en interrogeant le serveur X.\n Un autre gestionnaire de fenêtre est en cours d'exécution sur l'affichage 2 L: %4d x H: %4d 3 BScreen::BScreen: gestion de l'ecran %d utilisant l'affichage 0x%lx, de profondeur %d\n $set 13 #Slit 1 Applications 2 Basculer vers le bas 3 Basculer vers le haut 4 Orientation du Slit 5 Empilage du Slit 7 Disposition du Slit 9 Sauver le Slit $set 14 #Toolbar 1 Editer le nom du bureau 2 Mode d'icônification 3 Toutes les fenêtres 4 Icônes 5 Aucun 6 Bureau 7 Icônes du bureau 8 Empiler la barre d'outils 9 Barre d'outils de l'en-tête 10 Disposition de la barre d'outils 11 Barre d'outils 12 Taille de la barre 13 Horloge: 24h 14 Horloge: 12h 15 Format de l'heure 16 Voir les images 17 Sans icône 18 Bureau sans icône $set 15 #Window 1 Sans titre $set 16 #Windowmenu 1 Fermer 2 Icônifier 3 Empilage 4 Arrière-plan 5 Agrandir 6 Avant-plan 7 Déplacer 8 Ombrer 9 Coller 10 Tuer $set 17 #Workspace 1 Bureau %d 2 Bureaux 3 Nouveau bureau 4 Enlever le dernier $set 18 #fbsetroot 1 -solid, -mod, -gradient\n 2 Impossible de créer des atomes de pixmap, abandon ! 3 -display connexion sur l'affichage\n\ -mod motif de modula\n\ -foreground, -fg couleur du premier plan de modula\n\ -background, -bg couleur du second plan de modula\n\n\ -gradient texture du dégradé\n\ -from couleur de départ du dégradé\n\ -to couleur d'arrivé du dégradé\n\n\ -solid couleur pleine\n\n\ -help affiche ce texte d'aide et quitte\n $set 19 #main 1 '-display' nécessite un argument\n 2 Mauvaise allocation 3 Mauvais transtypage 4 Hors des limites 5 Erreur d'exécution 6 Exception standard 7 Erreur inconnue 8 erreur: '-log' nécessite un argument 9 Journal 10 Enregistrement du journal vers 11 erreur: '-rc' nécessite un argument 12 erreur: 'screen' nécessite un argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ Website: http://www.fluxbox.org/\n\n\ -display \t\utilise la connexion sur le display\ -screen \tfonctionne uniquement sur un écran spécifique\ -rc \t\t\tutilise un autre fichier de configuration.\n\ -version\t\t\taffiche la version et quitte.\n\ -info\t\t\t\taffiche quelques informations utiles.\n\ -log \t\t\tjournaliser la sortie vers le fichier.\n\ -help\t\t\t\taffiche ce texte d'aide et quitte.\n\n 14 attention: il n'est pas possible de placer la variable 'DISPLAY' $set 20 #layers 1 En dessous du Dock 2 En bas 3 Sur le bureau 4 Dock 5 Normal 6 En haut du Dock fluxbox-1.3.5/nls/fr_CH/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603020074 xustar000000000000000030 mtime=1360749955.979811952 30 atime=1360750003.699811646 30 ctime=1360750008.779811614 fluxbox-1.3.5/nls/fr_CH/Makefile.in0000644000175000017500000002715612106662603016136 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/fr_CH/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/fr_CH DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = fr_CH SRC_CODESET = ISO-8859-15 DEST_CODESETS = ISO-8859-15 UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/fr_CH/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/fr_CH/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/fr_CH/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020065 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749853.831812605 30 ctime=1360750008.779811614 fluxbox-1.3.5/nls/fr_CH/Makefile.am0000644000175000017500000000301212106662425016110 0ustar00mgmg00000000000000# nls/fr_CH/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = fr_CH SRC_CODESET = ISO-8859-15 DEST_CODESETS = ISO-8859-15 UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/de_AT0000644000175000017500000000013212106662666015756 xustar000000000000000030 mtime=1360750006.647811627 30 atime=1360750008.779811614 30 ctime=1360750008.779811614 fluxbox-1.3.5/nls/de_AT/0000755000175000017500000000000012106662666014062 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/de_AT/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662463020743 xustar000000000000000030 mtime=1360749875.927812464 30 atime=1360749875.943812464 30 ctime=1360750008.779811614 fluxbox-1.3.5/nls/de_AT/generated-UTF-8.m0000644000175000017500000001503512106662463016776 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Unten mittig 2 Unten links 3 Unten rechts 4 Horizontal 5 Links 6 Links unten 7 Links mittig 8 Links oben 9 Relativ 10 Rechts 11 Rechts unten 12 Rechts mittig 13 Rechts oben 14 Oben mittig 15 Oben links 16 Oben rechts 17 Vertikal $set 2 #BaseDisplay 1 Abbruch... dumping core\n 2 Fahre herunter\n 3 %s: Signal %d empfangen\n $set 3 #Common 1 Transparenz (Alpha) 2 Automatisch verstecken 3 Kompiliert am 4 Einkompilierte Optionen 5 Compiler 6 Compilerversion 7 init 8 keys 9 nls 10 menu 11 style 12 Standardeinstellungen/-Dateien\n 13 deaktiviert 14 Fehler 15 Fluxbox Version 16 Von maximierten Fenstern verdecken 17 GIT Revision 18 Sichtbar 19 In diesem Style ist keine Hintergrundoption angegeben.\nBitte lesen Sie die Dokumentation und die FAQ. $set 4 #Configmenu 1 Kantenglättung (AntiAliasing) 2 Automatisches Hervorheben 3 Klick holt in den Vordergrund 4 Klick fokussiert 5 Flüchtige (Dialoge) Fenster dekorieren 6 Desktop mit Mausrad wechseln 7 Fenster nach Desktopwechsel fokussieren 8 Fokustyp 9 Neue Fenster fokussieren 10 Vollständig Maximieren 11 Bilddithering 12 Fensterinhalt beim Verschieben zeigen 14 Fokus folgt Maus 15 Fenster über Desktopgrenzen verschieben 16 Erzwinge Pseudotransparenz 17 Alphatransparenz für Menü 18 Transparenz 19 Alphatransparenz fokussierter Fenster 20 Alphatransparenz nicht fokussierter Fenster 21 Tab-Einstellungen 22 Tabs in der Titelleiste 23 Breite für externe Tabs 24 Klick fokussiert Tab 25 Tabfokus folgt Maus 26 Maximierungseinstellungen 27 Resize-Increment nicht beachten 28 Position fixieren 29 Größe fixieren $set 5 #Ewmh 1 Fataler Fehler: Kein Speicher mehr frei, kann keinen für EWMH-Clientliste zuweisen $set 6 #FbTkError 1 Warnung! Höhe > 3200, setze Höhe = 3200 2 Warnung! Breite > 3200, setze Breite = 3200 3 Warnung: Kann Fallback-Schriftart nicht laden 4 Fehler bei der Speicherbelegung. 5 Fehler bei der Pixmaperstellung 6 Kann XImage nicht erstellen 7 Fehler beim Lesen 8 Warnung: Kein gültiges Format für den Alphawert gefunden. 9 Warnung: Fehler beim Erstellen des Alphabilds. 10 Warnung: Fehler beim Erstellen des Alphapixmaps. 11 Fehler beim Finden eines Formats for den Bildschirm(%d) 12 Kein Speicher mehr frei 13 Kein Speicher mehr frei während der Zuordnung des Blauen Puffers. 14 Kein Speicher mehr frei während der Zuordnung des Grünen Puffers. 15 Kein Speicher mehr frei während der Zuordnung des Roten Puffers. 16 Kann Bestandteil des styles nicht lesen. 17 nicht unterstützte Visualisierung 18 Benutze Standardeinstellung $set 7 #Fluxbox 1 Dateiname der Konfigurationsdatei (rc) ist ungültig! 2 Kann groupfile nicht laden 3 Kann database nicht laden 4 Versuche es erneut mit 5 Warnung! Kann keinen Screen finden, um das Fenster darzustellen! 6 Kann Verzeichnis %s nicht anlegen 7 Kann keine Screens zur Verwaltung finden.\nLäuft bereits ein anderer Windowmanager? 8 Fehler beim Parsen des regulären Ausdrucks 9 Fataler Fehler! Es darf nur eine Instanz der Fluxbox-Klasse geben 10 Kann nicht zum X-Server verbinden.\nX muss vor Fluxbox gestartet werden. 11 Warnung: X-Server unterstützt Lokalisierung nicht 12 Warnung: Kann Lokalisierung nicht setzen $set 8 #Gnome 1 Fataler Fehler: Kein Speicher mehr frei, kann keinen für GNOME-Clientlist zuweisen $set 9 #Keys 1 keys: Fehler in Zeile 2 keys: Kann Tasten nicht sauber zuweisen! 3 keys: Ungültige Taste/Sondertaste (Modifier) in Zeile $set 10 #Menu 1 Konfiguration 2 Fluxbox Standardmenü 3 Beenden 4 Icons 5 Ebene 6 Auf Monitor 7 Platzierung 8 Konfiguration neu laden 9 Neu starten 10 Warnung: seltsame, unvollständige oder gar falsche [encoding] marke im Menü $set 11 #Remember 1 Dekoration 2 Maße 3 Wechsle zu Arbeitsfläche 4 Ebene 5 Einstellungen merken... 6 Position 7 Beim Schließen speichern 8 Aufgerollt 9 Klebend 10 Unbekannter apps-Eintrag 11 Arbeitsfläche 12 Monitor 13 Transparenz $set 12 #Screen 1 BScreen::BScreen: Fehler bei der Verbindung zum X-Server.\nEin anderer Windowmanager läuft bereits auf dem Display 2 B: %4d x H: %4d 3 BScreen::BScreen: Verwalte Screen %d mit Visual 0x%lx, Farbtiefe %d\n 4 B: %04d x H: %04d $set 13 #Slit 1 Aktive Slit-Programme 2 Nach oben rotieren 3 Nach unten rotieren 4 Slit Ausrichtung 5 Ebene für Slit 6 Slit auf Monitor 7 Slit Platzierung 8 Slit 9 SlitList speichern $set 14 #Toolbar 1 Aktuelle Arbeitsfläche umbenennen 2 Symbolleistenmodus 3 Alle Fenster 4 Symbole 5 Keine 6 Arbeitsfläche: Alle Fenster 7 Arbeitsfläche: Symbole 8 Ebene für Toolbar 9 Toolbar auf Monitor 10 Toolbar Platzierung 11 Toolbar 12 Toolbar Länge (Prozent) 13 Uhr: 24-Stunden-Format 14 Uhr: 12-Stunden-Format 15 Uhrformat bearbeiten 16 Programm-Icons anzeigen 17 Keine Symbole 18 Arbeitsfläche: Keine Symbole $set 15 #Window 1 Unbenannt $set 16 #Windowmenu 1 Schließen 2 Minimieren 3 Ebene 4 Nach hinten 5 Maximieren 6 Nach vorne 7 Verschieben nach... 8 Aufrollen 9 Auf allen Desktops sichtbar 10 Kill 11 Benutze Standardeinstellung $set 17 #Workspace 1 Arbeitsfläche %d 2 Arbeitsflächen 3 Neue Arbeitsfläche 4 Letzte Arbeitsfläche entfernen $set 18 #fbsetroot 1 Fehler: Einer der folgenden Parameter muss angegeben werden: -solid, -mod, -gradient\n 2 Konnte Pixmap-Atome nicht erstellen, ich häng mich auf! 3 -display Verbindung anzeigen\n\ -mod Modulo-Raster\n\ -foreground, -fg Modulo-Vordergrundfarbe\n\ -background, -bg Modulo-Hintergrundfarbe\n\n\ -gradient Textur für Farbverlauf\n\ -from Anfangsfarbe für Farbverlauf\n\ -to Endfarbe für Farbverlauf\n\n\ -solid Einfarbig\n\n\ -help Diese Hilfe anzeigen und beenden\n $set 19 #main 1 Fehler: '-display' braucht ein Argument 2 Schlechte Speicherzuweisung 3 Böse Typenkonvertierung 4 Ausser Reichweite 5 Laufzeitfehler 6 Standardausnahme 7 Unbekannter Fehler 8 Fehler: '-log' benötigt ein Argument 9 Log Datei 10 Schreibe Log in 11 Fehler: '-rc' benötigt ein Argument 12 Fehler: '-screen' benötigt ein Argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ Webseite: http://www.fluxbox.org/\n\n\ -display \t\tBenutze ein anderes $DISPLAY.\n\ -screen \tNur auf angegebenen Screens laufen.\n\ -rc \t\t\tBenutze eine andere Init Datei.\n\ -version\t\t\tZeige Version an.\n\ -info\t\t\t\tZeige nützliche Informationen an.\n\ -log \t\t\tSchreibe Log in Datei.\n\ -help\t\t\t\tZeige diese Hilfe an.\n\n 14 Warnung: Konnte Umgebungsvaribale 'DISPLAY' nicht setzen $set 20 #LayerSet 1 Über Dock 2 Unten 3 Desktop 4 Dock 5 Normal 6 Oben fluxbox-1.3.5/nls/de_AT/PaxHeaders.25974/generated-ISO-8859-15.m0000644000175000017500000000013212106662463021430 xustar000000000000000030 mtime=1360749875.923812464 30 atime=1360749875.943812464 30 ctime=1360750008.783811614 fluxbox-1.3.5/nls/de_AT/generated-ISO-8859-15.m0000644000175000017500000001475412106662463017472 0ustar00mgmg00000000000000$ codeset=ISO-8859-15 $set 1 #Align 1 Unten mittig 2 Unten links 3 Unten rechts 4 Horizontal 5 Links 6 Links unten 7 Links mittig 8 Links oben 9 Relativ 10 Rechts 11 Rechts unten 12 Rechts mittig 13 Rechts oben 14 Oben mittig 15 Oben links 16 Oben rechts 17 Vertikal $set 2 #BaseDisplay 1 Abbruch... dumping core\n 2 Fahre herunter\n 3 %s: Signal %d empfangen\n $set 3 #Common 1 Transparenz (Alpha) 2 Automatisch verstecken 3 Kompiliert am 4 Einkompilierte Optionen 5 Compiler 6 Compilerversion 7 init 8 keys 9 nls 10 menu 11 style 12 Standardeinstellungen/-Dateien\n 13 deaktiviert 14 Fehler 15 Fluxbox Version 16 Von maximierten Fenstern verdecken 17 GIT Revision 18 Sichtbar 19 In diesem Style ist keine Hintergrundoption angegeben.\nBitte lesen Sie die Dokumentation und die FAQ. $set 4 #Configmenu 1 Kantenglättung (AntiAliasing) 2 Automatisches Hervorheben 3 Klick holt in den Vordergrund 4 Klick fokussiert 5 Flüchtige (Dialoge) Fenster dekorieren 6 Desktop mit Mausrad wechseln 7 Fenster nach Desktopwechsel fokussieren 8 Fokustyp 9 Neue Fenster fokussieren 10 Vollständig Maximieren 11 Bilddithering 12 Fensterinhalt beim Verschieben zeigen 14 Fokus folgt Maus 15 Fenster über Desktopgrenzen verschieben 16 Erzwinge Pseudotransparenz 17 Alphatransparenz für Menü 18 Transparenz 19 Alphatransparenz fokussierter Fenster 20 Alphatransparenz nicht fokussierter Fenster 21 Tab-Einstellungen 22 Tabs in der Titelleiste 23 Breite für externe Tabs 24 Klick fokussiert Tab 25 Tabfokus folgt Maus 26 Maximierungseinstellungen 27 Resize-Increment nicht beachten 28 Position fixieren 29 Größe fixieren $set 5 #Ewmh 1 Fataler Fehler: Kein Speicher mehr frei, kann keinen für EWMH-Clientliste zuweisen $set 6 #FbTkError 1 Warnung! Höhe > 3200, setze Höhe = 3200 2 Warnung! Breite > 3200, setze Breite = 3200 3 Warnung: Kann Fallback-Schriftart nicht laden 4 Fehler bei der Speicherbelegung. 5 Fehler bei der Pixmaperstellung 6 Kann XImage nicht erstellen 7 Fehler beim Lesen 8 Warnung: Kein gültiges Format für den Alphawert gefunden. 9 Warnung: Fehler beim Erstellen des Alphabilds. 10 Warnung: Fehler beim Erstellen des Alphapixmaps. 11 Fehler beim Finden eines Formats for den Bildschirm(%d) 12 Kein Speicher mehr frei 13 Kein Speicher mehr frei während der Zuordnung des Blauen Puffers. 14 Kein Speicher mehr frei während der Zuordnung des Grünen Puffers. 15 Kein Speicher mehr frei während der Zuordnung des Roten Puffers. 16 Kann Bestandteil des styles nicht lesen. 17 nicht unterstützte Visualisierung 18 Benutze Standardeinstellung $set 7 #Fluxbox 1 Dateiname der Konfigurationsdatei (rc) ist ungültig! 2 Kann groupfile nicht laden 3 Kann database nicht laden 4 Versuche es erneut mit 5 Warnung! Kann keinen Screen finden, um das Fenster darzustellen! 6 Kann Verzeichnis %s nicht anlegen 7 Kann keine Screens zur Verwaltung finden.\nLäuft bereits ein anderer Windowmanager? 8 Fehler beim Parsen des regulären Ausdrucks 9 Fataler Fehler! Es darf nur eine Instanz der Fluxbox-Klasse geben 10 Kann nicht zum X-Server verbinden.\nX muss vor Fluxbox gestartet werden. 11 Warnung: X-Server unterstützt Lokalisierung nicht 12 Warnung: Kann Lokalisierung nicht setzen $set 8 #Gnome 1 Fataler Fehler: Kein Speicher mehr frei, kann keinen für GNOME-Clientlist zuweisen $set 9 #Keys 1 keys: Fehler in Zeile 2 keys: Kann Tasten nicht sauber zuweisen! 3 keys: Ungültige Taste/Sondertaste (Modifier) in Zeile $set 10 #Menu 1 Konfiguration 2 Fluxbox Standardmenü 3 Beenden 4 Icons 5 Ebene 6 Auf Monitor 7 Platzierung 8 Konfiguration neu laden 9 Neu starten 10 Warnung: seltsame, unvollständige oder gar falsche [encoding] marke im Menü $set 11 #Remember 1 Dekoration 2 Maße 3 Wechsle zu Arbeitsfläche 4 Ebene 5 Einstellungen merken... 6 Position 7 Beim Schließen speichern 8 Aufgerollt 9 Klebend 10 Unbekannter apps-Eintrag 11 Arbeitsfläche 12 Monitor 13 Transparenz $set 12 #Screen 1 BScreen::BScreen: Fehler bei der Verbindung zum X-Server.\nEin anderer Windowmanager läuft bereits auf dem Display 2 B: %4d x H: %4d 3 BScreen::BScreen: Verwalte Screen %d mit Visual 0x%lx, Farbtiefe %d\n 4 B: %04d x H: %04d $set 13 #Slit 1 Aktive Slit-Programme 2 Nach oben rotieren 3 Nach unten rotieren 4 Slit Ausrichtung 5 Ebene für Slit 6 Slit auf Monitor 7 Slit Platzierung 8 Slit 9 SlitList speichern $set 14 #Toolbar 1 Aktuelle Arbeitsfläche umbenennen 2 Symbolleistenmodus 3 Alle Fenster 4 Symbole 5 Keine 6 Arbeitsfläche: Alle Fenster 7 Arbeitsfläche: Symbole 8 Ebene für Toolbar 9 Toolbar auf Monitor 10 Toolbar Platzierung 11 Toolbar 12 Toolbar Länge (Prozent) 13 Uhr: 24-Stunden-Format 14 Uhr: 12-Stunden-Format 15 Uhrformat bearbeiten 16 Programm-Icons anzeigen 17 Keine Symbole 18 Arbeitsfläche: Keine Symbole $set 15 #Window 1 Unbenannt $set 16 #Windowmenu 1 Schließen 2 Minimieren 3 Ebene 4 Nach hinten 5 Maximieren 6 Nach vorne 7 Verschieben nach... 8 Aufrollen 9 Auf allen Desktops sichtbar 10 Kill 11 Benutze Standardeinstellung $set 17 #Workspace 1 Arbeitsfläche %d 2 Arbeitsflächen 3 Neue Arbeitsfläche 4 Letzte Arbeitsfläche entfernen $set 18 #fbsetroot 1 Fehler: Einer der folgenden Parameter muss angegeben werden: -solid, -mod, -gradient\n 2 Konnte Pixmap-Atome nicht erstellen, ich häng mich auf! 3 -display Verbindung anzeigen\n\ -mod Modulo-Raster\n\ -foreground, -fg Modulo-Vordergrundfarbe\n\ -background, -bg Modulo-Hintergrundfarbe\n\n\ -gradient Textur für Farbverlauf\n\ -from Anfangsfarbe für Farbverlauf\n\ -to Endfarbe für Farbverlauf\n\n\ -solid Einfarbig\n\n\ -help Diese Hilfe anzeigen und beenden\n $set 19 #main 1 Fehler: '-display' braucht ein Argument 2 Schlechte Speicherzuweisung 3 Böse Typenkonvertierung 4 Ausser Reichweite 5 Laufzeitfehler 6 Standardausnahme 7 Unbekannter Fehler 8 Fehler: '-log' benötigt ein Argument 9 Log Datei 10 Schreibe Log in 11 Fehler: '-rc' benötigt ein Argument 12 Fehler: '-screen' benötigt ein Argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ Webseite: http://www.fluxbox.org/\n\n\ -display \t\tBenutze ein anderes $DISPLAY.\n\ -screen \tNur auf angegebenen Screens laufen.\n\ -rc \t\t\tBenutze eine andere Init Datei.\n\ -version\t\t\tZeige Version an.\n\ -info\t\t\t\tZeige nützliche Informationen an.\n\ -log \t\t\tSchreibe Log in Datei.\n\ -help\t\t\t\tZeige diese Hilfe an.\n\n 14 Warnung: Konnte Umgebungsvaribale 'DISPLAY' nicht setzen $set 20 #LayerSet 1 Über Dock 2 Unten 3 Desktop 4 Dock 5 Normal 6 Oben fluxbox-1.3.5/nls/de_AT/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020500 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749875.923812464 30 ctime=1360750008.783811614 fluxbox-1.3.5/nls/de_AT/Translation.m0000644000175000017500000001475412106662425016542 0ustar00mgmg00000000000000$ codeset=ISO-8859-15 $set 1 #Align 1 Unten mittig 2 Unten links 3 Unten rechts 4 Horizontal 5 Links 6 Links unten 7 Links mittig 8 Links oben 9 Relativ 10 Rechts 11 Rechts unten 12 Rechts mittig 13 Rechts oben 14 Oben mittig 15 Oben links 16 Oben rechts 17 Vertikal $set 2 #BaseDisplay 1 Abbruch... dumping core\n 2 Fahre herunter\n 3 %s: Signal %d empfangen\n $set 3 #Common 1 Transparenz (Alpha) 2 Automatisch verstecken 3 Kompiliert am 4 Einkompilierte Optionen 5 Compiler 6 Compilerversion 7 init 8 keys 9 nls 10 menu 11 style 12 Standardeinstellungen/-Dateien\n 13 deaktiviert 14 Fehler 15 Fluxbox Version 16 Von maximierten Fenstern verdecken 17 GIT Revision 18 Sichtbar 19 In diesem Style ist keine Hintergrundoption angegeben.\nBitte lesen Sie die Dokumentation und die FAQ. $set 4 #Configmenu 1 Kantenglättung (AntiAliasing) 2 Automatisches Hervorheben 3 Klick holt in den Vordergrund 4 Klick fokussiert 5 Flüchtige (Dialoge) Fenster dekorieren 6 Desktop mit Mausrad wechseln 7 Fenster nach Desktopwechsel fokussieren 8 Fokustyp 9 Neue Fenster fokussieren 10 Vollständig Maximieren 11 Bilddithering 12 Fensterinhalt beim Verschieben zeigen 14 Fokus folgt Maus 15 Fenster über Desktopgrenzen verschieben 16 Erzwinge Pseudotransparenz 17 Alphatransparenz für Menü 18 Transparenz 19 Alphatransparenz fokussierter Fenster 20 Alphatransparenz nicht fokussierter Fenster 21 Tab-Einstellungen 22 Tabs in der Titelleiste 23 Breite für externe Tabs 24 Klick fokussiert Tab 25 Tabfokus folgt Maus 26 Maximierungseinstellungen 27 Resize-Increment nicht beachten 28 Position fixieren 29 Größe fixieren $set 5 #Ewmh 1 Fataler Fehler: Kein Speicher mehr frei, kann keinen für EWMH-Clientliste zuweisen $set 6 #FbTkError 1 Warnung! Höhe > 3200, setze Höhe = 3200 2 Warnung! Breite > 3200, setze Breite = 3200 3 Warnung: Kann Fallback-Schriftart nicht laden 4 Fehler bei der Speicherbelegung. 5 Fehler bei der Pixmaperstellung 6 Kann XImage nicht erstellen 7 Fehler beim Lesen 8 Warnung: Kein gültiges Format für den Alphawert gefunden. 9 Warnung: Fehler beim Erstellen des Alphabilds. 10 Warnung: Fehler beim Erstellen des Alphapixmaps. 11 Fehler beim Finden eines Formats for den Bildschirm(%d) 12 Kein Speicher mehr frei 13 Kein Speicher mehr frei während der Zuordnung des Blauen Puffers. 14 Kein Speicher mehr frei während der Zuordnung des Grünen Puffers. 15 Kein Speicher mehr frei während der Zuordnung des Roten Puffers. 16 Kann Bestandteil des styles nicht lesen. 17 nicht unterstützte Visualisierung 18 Benutze Standardeinstellung $set 7 #Fluxbox 1 Dateiname der Konfigurationsdatei (rc) ist ungültig! 2 Kann groupfile nicht laden 3 Kann database nicht laden 4 Versuche es erneut mit 5 Warnung! Kann keinen Screen finden, um das Fenster darzustellen! 6 Kann Verzeichnis %s nicht anlegen 7 Kann keine Screens zur Verwaltung finden.\nLäuft bereits ein anderer Windowmanager? 8 Fehler beim Parsen des regulären Ausdrucks 9 Fataler Fehler! Es darf nur eine Instanz der Fluxbox-Klasse geben 10 Kann nicht zum X-Server verbinden.\nX muss vor Fluxbox gestartet werden. 11 Warnung: X-Server unterstützt Lokalisierung nicht 12 Warnung: Kann Lokalisierung nicht setzen $set 8 #Gnome 1 Fataler Fehler: Kein Speicher mehr frei, kann keinen für GNOME-Clientlist zuweisen $set 9 #Keys 1 keys: Fehler in Zeile 2 keys: Kann Tasten nicht sauber zuweisen! 3 keys: Ungültige Taste/Sondertaste (Modifier) in Zeile $set 10 #Menu 1 Konfiguration 2 Fluxbox Standardmenü 3 Beenden 4 Icons 5 Ebene 6 Auf Monitor 7 Platzierung 8 Konfiguration neu laden 9 Neu starten 10 Warnung: seltsame, unvollständige oder gar falsche [encoding] marke im Menü $set 11 #Remember 1 Dekoration 2 Maße 3 Wechsle zu Arbeitsfläche 4 Ebene 5 Einstellungen merken... 6 Position 7 Beim Schließen speichern 8 Aufgerollt 9 Klebend 10 Unbekannter apps-Eintrag 11 Arbeitsfläche 12 Monitor 13 Transparenz $set 12 #Screen 1 BScreen::BScreen: Fehler bei der Verbindung zum X-Server.\nEin anderer Windowmanager läuft bereits auf dem Display 2 B: %4d x H: %4d 3 BScreen::BScreen: Verwalte Screen %d mit Visual 0x%lx, Farbtiefe %d\n 4 B: %04d x H: %04d $set 13 #Slit 1 Aktive Slit-Programme 2 Nach oben rotieren 3 Nach unten rotieren 4 Slit Ausrichtung 5 Ebene für Slit 6 Slit auf Monitor 7 Slit Platzierung 8 Slit 9 SlitList speichern $set 14 #Toolbar 1 Aktuelle Arbeitsfläche umbenennen 2 Symbolleistenmodus 3 Alle Fenster 4 Symbole 5 Keine 6 Arbeitsfläche: Alle Fenster 7 Arbeitsfläche: Symbole 8 Ebene für Toolbar 9 Toolbar auf Monitor 10 Toolbar Platzierung 11 Toolbar 12 Toolbar Länge (Prozent) 13 Uhr: 24-Stunden-Format 14 Uhr: 12-Stunden-Format 15 Uhrformat bearbeiten 16 Programm-Icons anzeigen 17 Keine Symbole 18 Arbeitsfläche: Keine Symbole $set 15 #Window 1 Unbenannt $set 16 #Windowmenu 1 Schließen 2 Minimieren 3 Ebene 4 Nach hinten 5 Maximieren 6 Nach vorne 7 Verschieben nach... 8 Aufrollen 9 Auf allen Desktops sichtbar 10 Kill 11 Benutze Standardeinstellung $set 17 #Workspace 1 Arbeitsfläche %d 2 Arbeitsflächen 3 Neue Arbeitsfläche 4 Letzte Arbeitsfläche entfernen $set 18 #fbsetroot 1 Fehler: Einer der folgenden Parameter muss angegeben werden: -solid, -mod, -gradient\n 2 Konnte Pixmap-Atome nicht erstellen, ich häng mich auf! 3 -display Verbindung anzeigen\n\ -mod Modulo-Raster\n\ -foreground, -fg Modulo-Vordergrundfarbe\n\ -background, -bg Modulo-Hintergrundfarbe\n\n\ -gradient Textur für Farbverlauf\n\ -from Anfangsfarbe für Farbverlauf\n\ -to Endfarbe für Farbverlauf\n\n\ -solid Einfarbig\n\n\ -help Diese Hilfe anzeigen und beenden\n $set 19 #main 1 Fehler: '-display' braucht ein Argument 2 Schlechte Speicherzuweisung 3 Böse Typenkonvertierung 4 Ausser Reichweite 5 Laufzeitfehler 6 Standardausnahme 7 Unbekannter Fehler 8 Fehler: '-log' benötigt ein Argument 9 Log Datei 10 Schreibe Log in 11 Fehler: '-rc' benötigt ein Argument 12 Fehler: '-screen' benötigt ein Argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ Webseite: http://www.fluxbox.org/\n\n\ -display \t\tBenutze ein anderes $DISPLAY.\n\ -screen \tNur auf angegebenen Screens laufen.\n\ -rc \t\t\tBenutze eine andere Init Datei.\n\ -version\t\t\tZeige Version an.\n\ -info\t\t\t\tZeige nützliche Informationen an.\n\ -log \t\t\tSchreibe Log in Datei.\n\ -help\t\t\t\tZeige diese Hilfe an.\n\n 14 Warnung: Konnte Umgebungsvaribale 'DISPLAY' nicht setzen $set 20 #LayerSet 1 Über Dock 2 Unten 3 Desktop 4 Dock 5 Normal 6 Oben fluxbox-1.3.5/nls/de_AT/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603020067 xustar000000000000000030 mtime=1360749955.759811953 30 atime=1360750003.523811647 30 ctime=1360750008.783811614 fluxbox-1.3.5/nls/de_AT/Makefile.in0000644000175000017500000002715612106662603016131 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/de_AT/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/de_AT DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = de_AT SRC_CODESET = ISO-8859-15 DEST_CODESETS = ISO-8859-15 UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/de_AT/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/de_AT/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/de_AT/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020060 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749853.611812607 30 ctime=1360750008.783811614 fluxbox-1.3.5/nls/de_AT/Makefile.am0000644000175000017500000000301212106662425016103 0ustar00mgmg00000000000000# nls/de_AT/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = de_AT SRC_CODESET = ISO-8859-15 DEST_CODESETS = ISO-8859-15 UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/de_CH0000644000175000017500000000013212106662666015744 xustar000000000000000030 mtime=1360750006.611811628 30 atime=1360750008.787811614 30 ctime=1360750008.783811614 fluxbox-1.3.5/nls/de_CH/0000755000175000017500000000000012106662666014050 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/de_CH/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662463020731 xustar000000000000000030 mtime=1360749875.887812464 30 atime=1360749875.903812464 30 ctime=1360750008.787811614 fluxbox-1.3.5/nls/de_CH/generated-UTF-8.m0000644000175000017500000001503512106662463016764 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Unten mittig 2 Unten links 3 Unten rechts 4 Horizontal 5 Links 6 Links unten 7 Links mittig 8 Links oben 9 Relativ 10 Rechts 11 Rechts unten 12 Rechts mittig 13 Rechts oben 14 Oben mittig 15 Oben links 16 Oben rechts 17 Vertikal $set 2 #BaseDisplay 1 Abbruch... dumping core\n 2 Fahre herunter\n 3 %s: Signal %d empfangen\n $set 3 #Common 1 Transparenz (Alpha) 2 Automatisch verstecken 3 Kompiliert am 4 Einkompilierte Optionen 5 Compiler 6 Compilerversion 7 init 8 keys 9 nls 10 menu 11 style 12 Standardeinstellungen/-Dateien\n 13 deaktiviert 14 Fehler 15 Fluxbox Version 16 Von maximierten Fenstern verdecken 17 GIT Revision 18 Sichtbar 19 In diesem Style ist keine Hintergrundoption angegeben.\nBitte lesen Sie die Dokumentation und die FAQ. $set 4 #Configmenu 1 Kantenglättung (AntiAliasing) 2 Automatisches Hervorheben 3 Klick holt in den Vordergrund 4 Klick fokussiert 5 Flüchtige (Dialoge) Fenster dekorieren 6 Desktop mit Mausrad wechseln 7 Fenster nach Desktopwechsel fokussieren 8 Fokustyp 9 Neue Fenster fokussieren 10 Vollständig Maximieren 11 Bilddithering 12 Fensterinhalt beim Verschieben zeigen 14 Fokus folgt Maus 15 Fenster über Desktopgrenzen verschieben 16 Erzwinge Pseudotransparenz 17 Alphatransparenz für Menü 18 Transparenz 19 Alphatransparenz fokussierter Fenster 20 Alphatransparenz nicht fokussierter Fenster 21 Tab-Einstellungen 22 Tabs in der Titelleiste 23 Breite für externe Tabs 24 Klick fokussiert Tab 25 Tabfokus folgt Maus 26 Maximierungseinstellungen 27 Resize-Increment nicht beachten 28 Position fixieren 29 Größe fixieren $set 5 #Ewmh 1 Fataler Fehler: Kein Speicher mehr frei, kann keinen für EWMH-Clientliste zuweisen $set 6 #FbTkError 1 Warnung! Höhe > 3200, setze Höhe = 3200 2 Warnung! Breite > 3200, setze Breite = 3200 3 Warnung: Kann Fallback-Schriftart nicht laden 4 Fehler bei der Speicherbelegung. 5 Fehler bei der Pixmaperstellung 6 Kann XImage nicht erstellen 7 Fehler beim Lesen 8 Warnung: Kein gültiges Format für den Alphawert gefunden. 9 Warnung: Fehler beim Erstellen des Alphabilds. 10 Warnung: Fehler beim Erstellen des Alphapixmaps. 11 Fehler beim Finden eines Formats for den Bildschirm(%d) 12 Kein Speicher mehr frei 13 Kein Speicher mehr frei während der Zuordnung des Blauen Puffers. 14 Kein Speicher mehr frei während der Zuordnung des Grünen Puffers. 15 Kein Speicher mehr frei während der Zuordnung des Roten Puffers. 16 Kann Bestandteil des styles nicht lesen. 17 nicht unterstützte Visualisierung 18 Benutze Standardeinstellung $set 7 #Fluxbox 1 Dateiname der Konfigurationsdatei (rc) ist ungültig! 2 Kann groupfile nicht laden 3 Kann database nicht laden 4 Versuche es erneut mit 5 Warnung! Kann keinen Screen finden, um das Fenster darzustellen! 6 Kann Verzeichnis %s nicht anlegen 7 Kann keine Screens zur Verwaltung finden.\nLäuft bereits ein anderer Windowmanager? 8 Fehler beim Parsen des regulären Ausdrucks 9 Fataler Fehler! Es darf nur eine Instanz der Fluxbox-Klasse geben 10 Kann nicht zum X-Server verbinden.\nX muss vor Fluxbox gestartet werden. 11 Warnung: X-Server unterstützt Lokalisierung nicht 12 Warnung: Kann Lokalisierung nicht setzen $set 8 #Gnome 1 Fataler Fehler: Kein Speicher mehr frei, kann keinen für GNOME-Clientlist zuweisen $set 9 #Keys 1 keys: Fehler in Zeile 2 keys: Kann Tasten nicht sauber zuweisen! 3 keys: Ungültige Taste/Sondertaste (Modifier) in Zeile $set 10 #Menu 1 Konfiguration 2 Fluxbox Standardmenü 3 Beenden 4 Icons 5 Ebene 6 Auf Monitor 7 Platzierung 8 Konfiguration neu laden 9 Neu starten 10 Warnung: seltsame, unvollständige oder gar falsche [encoding] marke im Menü $set 11 #Remember 1 Dekoration 2 Maße 3 Wechsle zu Arbeitsfläche 4 Ebene 5 Einstellungen merken... 6 Position 7 Beim Schließen speichern 8 Aufgerollt 9 Klebend 10 Unbekannter apps-Eintrag 11 Arbeitsfläche 12 Monitor 13 Transparenz $set 12 #Screen 1 BScreen::BScreen: Fehler bei der Verbindung zum X-Server.\nEin anderer Windowmanager läuft bereits auf dem Display 2 B: %4d x H: %4d 3 BScreen::BScreen: Verwalte Screen %d mit Visual 0x%lx, Farbtiefe %d\n 4 B: %04d x H: %04d $set 13 #Slit 1 Aktive Slit-Programme 2 Nach oben rotieren 3 Nach unten rotieren 4 Slit Ausrichtung 5 Ebene für Slit 6 Slit auf Monitor 7 Slit Platzierung 8 Slit 9 SlitList speichern $set 14 #Toolbar 1 Aktuelle Arbeitsfläche umbenennen 2 Symbolleistenmodus 3 Alle Fenster 4 Symbole 5 Keine 6 Arbeitsfläche: Alle Fenster 7 Arbeitsfläche: Symbole 8 Ebene für Toolbar 9 Toolbar auf Monitor 10 Toolbar Platzierung 11 Toolbar 12 Toolbar Länge (Prozent) 13 Uhr: 24-Stunden-Format 14 Uhr: 12-Stunden-Format 15 Uhrformat bearbeiten 16 Programm-Icons anzeigen 17 Keine Symbole 18 Arbeitsfläche: Keine Symbole $set 15 #Window 1 Unbenannt $set 16 #Windowmenu 1 Schließen 2 Minimieren 3 Ebene 4 Nach hinten 5 Maximieren 6 Nach vorne 7 Verschieben nach... 8 Aufrollen 9 Auf allen Desktops sichtbar 10 Kill 11 Benutze Standardeinstellung $set 17 #Workspace 1 Arbeitsfläche %d 2 Arbeitsflächen 3 Neue Arbeitsfläche 4 Letzte Arbeitsfläche entfernen $set 18 #fbsetroot 1 Fehler: Einer der folgenden Parameter muss angegeben werden: -solid, -mod, -gradient\n 2 Konnte Pixmap-Atome nicht erstellen, ich häng mich auf! 3 -display Verbindung anzeigen\n\ -mod Modulo-Raster\n\ -foreground, -fg Modulo-Vordergrundfarbe\n\ -background, -bg Modulo-Hintergrundfarbe\n\n\ -gradient Textur für Farbverlauf\n\ -from Anfangsfarbe für Farbverlauf\n\ -to Endfarbe für Farbverlauf\n\n\ -solid Einfarbig\n\n\ -help Diese Hilfe anzeigen und beenden\n $set 19 #main 1 Fehler: '-display' braucht ein Argument 2 Schlechte Speicherzuweisung 3 Böse Typenkonvertierung 4 Ausser Reichweite 5 Laufzeitfehler 6 Standardausnahme 7 Unbekannter Fehler 8 Fehler: '-log' benötigt ein Argument 9 Log Datei 10 Schreibe Log in 11 Fehler: '-rc' benötigt ein Argument 12 Fehler: '-screen' benötigt ein Argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ Webseite: http://www.fluxbox.org/\n\n\ -display \t\tBenutze ein anderes $DISPLAY.\n\ -screen \tNur auf angegebenen Screens laufen.\n\ -rc \t\t\tBenutze eine andere Init Datei.\n\ -version\t\t\tZeige Version an.\n\ -info\t\t\t\tZeige nützliche Informationen an.\n\ -log \t\t\tSchreibe Log in Datei.\n\ -help\t\t\t\tZeige diese Hilfe an.\n\n 14 Warnung: Konnte Umgebungsvaribale 'DISPLAY' nicht setzen $set 20 #LayerSet 1 Über Dock 2 Unten 3 Desktop 4 Dock 5 Normal 6 Oben fluxbox-1.3.5/nls/de_CH/PaxHeaders.25974/generated-ISO-8859-15.m0000644000175000017500000000013212106662463021416 xustar000000000000000030 mtime=1360749875.883812464 30 atime=1360749875.899812464 30 ctime=1360750008.787811614 fluxbox-1.3.5/nls/de_CH/generated-ISO-8859-15.m0000644000175000017500000001475412106662463017460 0ustar00mgmg00000000000000$ codeset=ISO-8859-15 $set 1 #Align 1 Unten mittig 2 Unten links 3 Unten rechts 4 Horizontal 5 Links 6 Links unten 7 Links mittig 8 Links oben 9 Relativ 10 Rechts 11 Rechts unten 12 Rechts mittig 13 Rechts oben 14 Oben mittig 15 Oben links 16 Oben rechts 17 Vertikal $set 2 #BaseDisplay 1 Abbruch... dumping core\n 2 Fahre herunter\n 3 %s: Signal %d empfangen\n $set 3 #Common 1 Transparenz (Alpha) 2 Automatisch verstecken 3 Kompiliert am 4 Einkompilierte Optionen 5 Compiler 6 Compilerversion 7 init 8 keys 9 nls 10 menu 11 style 12 Standardeinstellungen/-Dateien\n 13 deaktiviert 14 Fehler 15 Fluxbox Version 16 Von maximierten Fenstern verdecken 17 GIT Revision 18 Sichtbar 19 In diesem Style ist keine Hintergrundoption angegeben.\nBitte lesen Sie die Dokumentation und die FAQ. $set 4 #Configmenu 1 Kantenglättung (AntiAliasing) 2 Automatisches Hervorheben 3 Klick holt in den Vordergrund 4 Klick fokussiert 5 Flüchtige (Dialoge) Fenster dekorieren 6 Desktop mit Mausrad wechseln 7 Fenster nach Desktopwechsel fokussieren 8 Fokustyp 9 Neue Fenster fokussieren 10 Vollständig Maximieren 11 Bilddithering 12 Fensterinhalt beim Verschieben zeigen 14 Fokus folgt Maus 15 Fenster über Desktopgrenzen verschieben 16 Erzwinge Pseudotransparenz 17 Alphatransparenz für Menü 18 Transparenz 19 Alphatransparenz fokussierter Fenster 20 Alphatransparenz nicht fokussierter Fenster 21 Tab-Einstellungen 22 Tabs in der Titelleiste 23 Breite für externe Tabs 24 Klick fokussiert Tab 25 Tabfokus folgt Maus 26 Maximierungseinstellungen 27 Resize-Increment nicht beachten 28 Position fixieren 29 Größe fixieren $set 5 #Ewmh 1 Fataler Fehler: Kein Speicher mehr frei, kann keinen für EWMH-Clientliste zuweisen $set 6 #FbTkError 1 Warnung! Höhe > 3200, setze Höhe = 3200 2 Warnung! Breite > 3200, setze Breite = 3200 3 Warnung: Kann Fallback-Schriftart nicht laden 4 Fehler bei der Speicherbelegung. 5 Fehler bei der Pixmaperstellung 6 Kann XImage nicht erstellen 7 Fehler beim Lesen 8 Warnung: Kein gültiges Format für den Alphawert gefunden. 9 Warnung: Fehler beim Erstellen des Alphabilds. 10 Warnung: Fehler beim Erstellen des Alphapixmaps. 11 Fehler beim Finden eines Formats for den Bildschirm(%d) 12 Kein Speicher mehr frei 13 Kein Speicher mehr frei während der Zuordnung des Blauen Puffers. 14 Kein Speicher mehr frei während der Zuordnung des Grünen Puffers. 15 Kein Speicher mehr frei während der Zuordnung des Roten Puffers. 16 Kann Bestandteil des styles nicht lesen. 17 nicht unterstützte Visualisierung 18 Benutze Standardeinstellung $set 7 #Fluxbox 1 Dateiname der Konfigurationsdatei (rc) ist ungültig! 2 Kann groupfile nicht laden 3 Kann database nicht laden 4 Versuche es erneut mit 5 Warnung! Kann keinen Screen finden, um das Fenster darzustellen! 6 Kann Verzeichnis %s nicht anlegen 7 Kann keine Screens zur Verwaltung finden.\nLäuft bereits ein anderer Windowmanager? 8 Fehler beim Parsen des regulären Ausdrucks 9 Fataler Fehler! Es darf nur eine Instanz der Fluxbox-Klasse geben 10 Kann nicht zum X-Server verbinden.\nX muss vor Fluxbox gestartet werden. 11 Warnung: X-Server unterstützt Lokalisierung nicht 12 Warnung: Kann Lokalisierung nicht setzen $set 8 #Gnome 1 Fataler Fehler: Kein Speicher mehr frei, kann keinen für GNOME-Clientlist zuweisen $set 9 #Keys 1 keys: Fehler in Zeile 2 keys: Kann Tasten nicht sauber zuweisen! 3 keys: Ungültige Taste/Sondertaste (Modifier) in Zeile $set 10 #Menu 1 Konfiguration 2 Fluxbox Standardmenü 3 Beenden 4 Icons 5 Ebene 6 Auf Monitor 7 Platzierung 8 Konfiguration neu laden 9 Neu starten 10 Warnung: seltsame, unvollständige oder gar falsche [encoding] marke im Menü $set 11 #Remember 1 Dekoration 2 Maße 3 Wechsle zu Arbeitsfläche 4 Ebene 5 Einstellungen merken... 6 Position 7 Beim Schließen speichern 8 Aufgerollt 9 Klebend 10 Unbekannter apps-Eintrag 11 Arbeitsfläche 12 Monitor 13 Transparenz $set 12 #Screen 1 BScreen::BScreen: Fehler bei der Verbindung zum X-Server.\nEin anderer Windowmanager läuft bereits auf dem Display 2 B: %4d x H: %4d 3 BScreen::BScreen: Verwalte Screen %d mit Visual 0x%lx, Farbtiefe %d\n 4 B: %04d x H: %04d $set 13 #Slit 1 Aktive Slit-Programme 2 Nach oben rotieren 3 Nach unten rotieren 4 Slit Ausrichtung 5 Ebene für Slit 6 Slit auf Monitor 7 Slit Platzierung 8 Slit 9 SlitList speichern $set 14 #Toolbar 1 Aktuelle Arbeitsfläche umbenennen 2 Symbolleistenmodus 3 Alle Fenster 4 Symbole 5 Keine 6 Arbeitsfläche: Alle Fenster 7 Arbeitsfläche: Symbole 8 Ebene für Toolbar 9 Toolbar auf Monitor 10 Toolbar Platzierung 11 Toolbar 12 Toolbar Länge (Prozent) 13 Uhr: 24-Stunden-Format 14 Uhr: 12-Stunden-Format 15 Uhrformat bearbeiten 16 Programm-Icons anzeigen 17 Keine Symbole 18 Arbeitsfläche: Keine Symbole $set 15 #Window 1 Unbenannt $set 16 #Windowmenu 1 Schließen 2 Minimieren 3 Ebene 4 Nach hinten 5 Maximieren 6 Nach vorne 7 Verschieben nach... 8 Aufrollen 9 Auf allen Desktops sichtbar 10 Kill 11 Benutze Standardeinstellung $set 17 #Workspace 1 Arbeitsfläche %d 2 Arbeitsflächen 3 Neue Arbeitsfläche 4 Letzte Arbeitsfläche entfernen $set 18 #fbsetroot 1 Fehler: Einer der folgenden Parameter muss angegeben werden: -solid, -mod, -gradient\n 2 Konnte Pixmap-Atome nicht erstellen, ich häng mich auf! 3 -display Verbindung anzeigen\n\ -mod Modulo-Raster\n\ -foreground, -fg Modulo-Vordergrundfarbe\n\ -background, -bg Modulo-Hintergrundfarbe\n\n\ -gradient Textur für Farbverlauf\n\ -from Anfangsfarbe für Farbverlauf\n\ -to Endfarbe für Farbverlauf\n\n\ -solid Einfarbig\n\n\ -help Diese Hilfe anzeigen und beenden\n $set 19 #main 1 Fehler: '-display' braucht ein Argument 2 Schlechte Speicherzuweisung 3 Böse Typenkonvertierung 4 Ausser Reichweite 5 Laufzeitfehler 6 Standardausnahme 7 Unbekannter Fehler 8 Fehler: '-log' benötigt ein Argument 9 Log Datei 10 Schreibe Log in 11 Fehler: '-rc' benötigt ein Argument 12 Fehler: '-screen' benötigt ein Argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ Webseite: http://www.fluxbox.org/\n\n\ -display \t\tBenutze ein anderes $DISPLAY.\n\ -screen \tNur auf angegebenen Screens laufen.\n\ -rc \t\t\tBenutze eine andere Init Datei.\n\ -version\t\t\tZeige Version an.\n\ -info\t\t\t\tZeige nützliche Informationen an.\n\ -log \t\t\tSchreibe Log in Datei.\n\ -help\t\t\t\tZeige diese Hilfe an.\n\n 14 Warnung: Konnte Umgebungsvaribale 'DISPLAY' nicht setzen $set 20 #LayerSet 1 Über Dock 2 Unten 3 Desktop 4 Dock 5 Normal 6 Oben fluxbox-1.3.5/nls/de_CH/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020466 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749875.883812464 30 ctime=1360750008.787811614 fluxbox-1.3.5/nls/de_CH/Translation.m0000644000175000017500000001475412106662425016530 0ustar00mgmg00000000000000$ codeset=ISO-8859-15 $set 1 #Align 1 Unten mittig 2 Unten links 3 Unten rechts 4 Horizontal 5 Links 6 Links unten 7 Links mittig 8 Links oben 9 Relativ 10 Rechts 11 Rechts unten 12 Rechts mittig 13 Rechts oben 14 Oben mittig 15 Oben links 16 Oben rechts 17 Vertikal $set 2 #BaseDisplay 1 Abbruch... dumping core\n 2 Fahre herunter\n 3 %s: Signal %d empfangen\n $set 3 #Common 1 Transparenz (Alpha) 2 Automatisch verstecken 3 Kompiliert am 4 Einkompilierte Optionen 5 Compiler 6 Compilerversion 7 init 8 keys 9 nls 10 menu 11 style 12 Standardeinstellungen/-Dateien\n 13 deaktiviert 14 Fehler 15 Fluxbox Version 16 Von maximierten Fenstern verdecken 17 GIT Revision 18 Sichtbar 19 In diesem Style ist keine Hintergrundoption angegeben.\nBitte lesen Sie die Dokumentation und die FAQ. $set 4 #Configmenu 1 Kantenglättung (AntiAliasing) 2 Automatisches Hervorheben 3 Klick holt in den Vordergrund 4 Klick fokussiert 5 Flüchtige (Dialoge) Fenster dekorieren 6 Desktop mit Mausrad wechseln 7 Fenster nach Desktopwechsel fokussieren 8 Fokustyp 9 Neue Fenster fokussieren 10 Vollständig Maximieren 11 Bilddithering 12 Fensterinhalt beim Verschieben zeigen 14 Fokus folgt Maus 15 Fenster über Desktopgrenzen verschieben 16 Erzwinge Pseudotransparenz 17 Alphatransparenz für Menü 18 Transparenz 19 Alphatransparenz fokussierter Fenster 20 Alphatransparenz nicht fokussierter Fenster 21 Tab-Einstellungen 22 Tabs in der Titelleiste 23 Breite für externe Tabs 24 Klick fokussiert Tab 25 Tabfokus folgt Maus 26 Maximierungseinstellungen 27 Resize-Increment nicht beachten 28 Position fixieren 29 Größe fixieren $set 5 #Ewmh 1 Fataler Fehler: Kein Speicher mehr frei, kann keinen für EWMH-Clientliste zuweisen $set 6 #FbTkError 1 Warnung! Höhe > 3200, setze Höhe = 3200 2 Warnung! Breite > 3200, setze Breite = 3200 3 Warnung: Kann Fallback-Schriftart nicht laden 4 Fehler bei der Speicherbelegung. 5 Fehler bei der Pixmaperstellung 6 Kann XImage nicht erstellen 7 Fehler beim Lesen 8 Warnung: Kein gültiges Format für den Alphawert gefunden. 9 Warnung: Fehler beim Erstellen des Alphabilds. 10 Warnung: Fehler beim Erstellen des Alphapixmaps. 11 Fehler beim Finden eines Formats for den Bildschirm(%d) 12 Kein Speicher mehr frei 13 Kein Speicher mehr frei während der Zuordnung des Blauen Puffers. 14 Kein Speicher mehr frei während der Zuordnung des Grünen Puffers. 15 Kein Speicher mehr frei während der Zuordnung des Roten Puffers. 16 Kann Bestandteil des styles nicht lesen. 17 nicht unterstützte Visualisierung 18 Benutze Standardeinstellung $set 7 #Fluxbox 1 Dateiname der Konfigurationsdatei (rc) ist ungültig! 2 Kann groupfile nicht laden 3 Kann database nicht laden 4 Versuche es erneut mit 5 Warnung! Kann keinen Screen finden, um das Fenster darzustellen! 6 Kann Verzeichnis %s nicht anlegen 7 Kann keine Screens zur Verwaltung finden.\nLäuft bereits ein anderer Windowmanager? 8 Fehler beim Parsen des regulären Ausdrucks 9 Fataler Fehler! Es darf nur eine Instanz der Fluxbox-Klasse geben 10 Kann nicht zum X-Server verbinden.\nX muss vor Fluxbox gestartet werden. 11 Warnung: X-Server unterstützt Lokalisierung nicht 12 Warnung: Kann Lokalisierung nicht setzen $set 8 #Gnome 1 Fataler Fehler: Kein Speicher mehr frei, kann keinen für GNOME-Clientlist zuweisen $set 9 #Keys 1 keys: Fehler in Zeile 2 keys: Kann Tasten nicht sauber zuweisen! 3 keys: Ungültige Taste/Sondertaste (Modifier) in Zeile $set 10 #Menu 1 Konfiguration 2 Fluxbox Standardmenü 3 Beenden 4 Icons 5 Ebene 6 Auf Monitor 7 Platzierung 8 Konfiguration neu laden 9 Neu starten 10 Warnung: seltsame, unvollständige oder gar falsche [encoding] marke im Menü $set 11 #Remember 1 Dekoration 2 Maße 3 Wechsle zu Arbeitsfläche 4 Ebene 5 Einstellungen merken... 6 Position 7 Beim Schließen speichern 8 Aufgerollt 9 Klebend 10 Unbekannter apps-Eintrag 11 Arbeitsfläche 12 Monitor 13 Transparenz $set 12 #Screen 1 BScreen::BScreen: Fehler bei der Verbindung zum X-Server.\nEin anderer Windowmanager läuft bereits auf dem Display 2 B: %4d x H: %4d 3 BScreen::BScreen: Verwalte Screen %d mit Visual 0x%lx, Farbtiefe %d\n 4 B: %04d x H: %04d $set 13 #Slit 1 Aktive Slit-Programme 2 Nach oben rotieren 3 Nach unten rotieren 4 Slit Ausrichtung 5 Ebene für Slit 6 Slit auf Monitor 7 Slit Platzierung 8 Slit 9 SlitList speichern $set 14 #Toolbar 1 Aktuelle Arbeitsfläche umbenennen 2 Symbolleistenmodus 3 Alle Fenster 4 Symbole 5 Keine 6 Arbeitsfläche: Alle Fenster 7 Arbeitsfläche: Symbole 8 Ebene für Toolbar 9 Toolbar auf Monitor 10 Toolbar Platzierung 11 Toolbar 12 Toolbar Länge (Prozent) 13 Uhr: 24-Stunden-Format 14 Uhr: 12-Stunden-Format 15 Uhrformat bearbeiten 16 Programm-Icons anzeigen 17 Keine Symbole 18 Arbeitsfläche: Keine Symbole $set 15 #Window 1 Unbenannt $set 16 #Windowmenu 1 Schließen 2 Minimieren 3 Ebene 4 Nach hinten 5 Maximieren 6 Nach vorne 7 Verschieben nach... 8 Aufrollen 9 Auf allen Desktops sichtbar 10 Kill 11 Benutze Standardeinstellung $set 17 #Workspace 1 Arbeitsfläche %d 2 Arbeitsflächen 3 Neue Arbeitsfläche 4 Letzte Arbeitsfläche entfernen $set 18 #fbsetroot 1 Fehler: Einer der folgenden Parameter muss angegeben werden: -solid, -mod, -gradient\n 2 Konnte Pixmap-Atome nicht erstellen, ich häng mich auf! 3 -display Verbindung anzeigen\n\ -mod Modulo-Raster\n\ -foreground, -fg Modulo-Vordergrundfarbe\n\ -background, -bg Modulo-Hintergrundfarbe\n\n\ -gradient Textur für Farbverlauf\n\ -from Anfangsfarbe für Farbverlauf\n\ -to Endfarbe für Farbverlauf\n\n\ -solid Einfarbig\n\n\ -help Diese Hilfe anzeigen und beenden\n $set 19 #main 1 Fehler: '-display' braucht ein Argument 2 Schlechte Speicherzuweisung 3 Böse Typenkonvertierung 4 Ausser Reichweite 5 Laufzeitfehler 6 Standardausnahme 7 Unbekannter Fehler 8 Fehler: '-log' benötigt ein Argument 9 Log Datei 10 Schreibe Log in 11 Fehler: '-rc' benötigt ein Argument 12 Fehler: '-screen' benötigt ein Argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ Webseite: http://www.fluxbox.org/\n\n\ -display \t\tBenutze ein anderes $DISPLAY.\n\ -screen \tNur auf angegebenen Screens laufen.\n\ -rc \t\t\tBenutze eine andere Init Datei.\n\ -version\t\t\tZeige Version an.\n\ -info\t\t\t\tZeige nützliche Informationen an.\n\ -log \t\t\tSchreibe Log in Datei.\n\ -help\t\t\t\tZeige diese Hilfe an.\n\n 14 Warnung: Konnte Umgebungsvaribale 'DISPLAY' nicht setzen $set 20 #LayerSet 1 Über Dock 2 Unten 3 Desktop 4 Dock 5 Normal 6 Oben fluxbox-1.3.5/nls/de_CH/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603020055 xustar000000000000000030 mtime=1360749955.779811953 30 atime=1360750003.543811647 30 ctime=1360750008.787811614 fluxbox-1.3.5/nls/de_CH/Makefile.in0000644000175000017500000002715612106662603016117 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/de_CH/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/de_CH DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = de_CH SRC_CODESET = ISO-8859-15 DEST_CODESETS = ISO-8859-15 UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/de_CH/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/de_CH/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/de_CH/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020046 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749853.635812607 30 ctime=1360750008.791811614 fluxbox-1.3.5/nls/de_CH/Makefile.am0000644000175000017500000000301212106662425016071 0ustar00mgmg00000000000000# nls/de_CH/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = de_CH SRC_CODESET = ISO-8859-15 DEST_CODESETS = ISO-8859-15 UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/en_GB0000644000175000017500000000013212106662666015754 xustar000000000000000030 mtime=1360750006.579811628 30 atime=1360750008.791811614 30 ctime=1360750008.791811614 fluxbox-1.3.5/nls/en_GB/0000755000175000017500000000000012106662666014060 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/en_GB/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662463020741 xustar000000000000000030 mtime=1360749875.847812465 30 atime=1360749875.863812464 30 ctime=1360750008.791811614 fluxbox-1.3.5/nls/en_GB/generated-UTF-8.m0000644000175000017500000001272012106662463016772 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Bottom Center 2 Bottom Left 3 Bottom Right 4 Horizontal 5 Left 6 Left Bottom 7 Left Center 8 Left Top 9 Relative 10 Right 11 Right Bottom 12 Right Center 13 Right Top 14 Top Center 15 Top Left 16 Top Right 17 Vertical 18 Center 19 Top 20 Bottom $set 2 #BaseDisplay 1 Aborting... dumping core\n 2 Shutting Down\n 3 %s: signal %d caught\n $set 3 #Common 1 Alpha 2 Auto hide 3 Compiled 4 Compiled options 5 Compiler 6 Compiler version 7 init 8 keys 9 nls 10 menu 11 style 12 Defaults 13 disabled 14 Error 15 Fluxbox version 16 Maximize Over 17 GIT Revision 18 Visible 19 There is no background option specified in this style.\nPlease consult the manual or read the FAQ. $set 4 #Configmenu 1 AntiAlias 2 Auto Raise 3 Click Raises 4 Click to Focus 5 Decorate Transient Windows 6 Desktop MouseWheel Switching 7 Focus Window on Workspace Change 8 Focus Model 9 Focus New Windows 10 Full Maximization 11 Image Dithering 12 Opaque Window Moving 14 Mouse Focus 15 Workspace Warping 16 Force Pseudo-Transparency 17 Menu Alpha 18 Transparency 19 Focused Window Alpha 20 Unfocused Window Alpha 21 Tab Options 22 Tabs in Titlebar 23 External Tab Width 24 Click Tab Focus 25 Mouse Tab Focus 26 Maximize Options 27 Ignore Resize Increment 28 Disable Moving 29 Disable Resizing $set 5 #Ewmh 1 Fatal: Out of memory, can't allocate for EWMH client list $set 6 #FbTkError 1 Warning! Height > 3200, setting Height = 3200 2 Warning! Width > 3200, setting Width = 3200 3 Warning: can't load fallback font 4 Allocation error. 5 Error creating pixmap 6 Can't create XImage 7 Failed to read 8 Warning: Failed to find valid format for alpha. 9 Warning: Failed to create alpha picture. 10 Warning: Failed to create alpha pixmap. 11 Failed to find format for screen(%d) 12 Out of memory 13 Out of memory while allocating blue buffer. 14 Out of memory while allocating green buffer. 15 Out of memory while allocating red buffer. 16 Failed to read theme item 17 unsupported visual 18 Setting default value $set 7 #Fluxbox 1 rc filename is invalid! 2 Failed to load groupfile 3 Failed to load database 4 Retrying with 5 Warning! Could not find screen to map window on! 6 Can't create directory %s 7 Couldn't find screens to manage.\nMake sure you don't have another window manager running. 8 Error parsing regular expression 9 Fatal! There can only one instance of fluxbox class. 10 Can not connect to X server.\nMake sure you started X before you start Fluxbox. 11 Warning: X server does not support locale 12 Warning: cannot set locale modifiers $set 8 #Gnome 1 Fatal: Out of memory, can't allocate for GNOME client list $set 9 #Keys 1 Keys: Error on line 2 Keys: Failed to merge keytree! 3 Keys: Invalid key/modifier on line $set 10 #Menu 1 Configuration 2 Fluxbox default menu 3 Exit 4 Icons 5 Layer... 6 On Head... 7 Placement 8 Reload Config 9 Restart 10 Warning: unbalanced [encoding] tags $set 11 #Remember 1 Decorations 2 Dimensions 3 Jump to workspace 4 Layer 5 Remember... 6 Position 7 Save on close 8 Shaded 9 Sticky 10 Unknown apps key 11 Workspace 12 Head 13 Transparency $set 12 #Screen 1 BScreen::BScreen: an error occured while querying the X server.\n another window manager already running on display 2 W: %4d x H: %4d 3 BScreen::BScreen: managing screen %d using visual 0x%lx, depth %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Clients 2 Cycle Down 3 Cycle Up 4 Slit Direction: 5 Slit Layer 6 Slit on Head 7 Slit Placement 8 Slit 9 Save SlitList $set 14 #Toolbar 1 Rename current workspace 2 Iconbar Mode 3 All Windows 4 Icons 5 None 6 Workspace 7 WorkspaceIcons 8 Toolbar Layer 9 Toolbar on Head 10 Toolbar Placement 11 Toolbar 12 Toolbar width percent 13 Clock: 24h 14 Clock: 12h 15 Edit Clock Format 16 Show Pictures 17 NoIcons 18 WorkspaceNoIcons $set 15 #Window 1 Unnamed $set 16 #Windowmenu 1 Close 2 Iconify 3 Layer 4 Lower 5 Maximize 6 Raise 7 Send To ... 8 Shade 9 Stick 10 Kill 11 Use Defaults 12 Set Window Title $set 17 #Workspace 1 Workspace %d 2 Workspaces 3 New Workspace 4 Remove Last $set 18 #fbsetroot 1 Error: must specify one of: -solid, -mod, -gradient\n 2 Couldn't create pixmap atoms, giving up! 3 -display display connection\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient gradient texture\n\ -from gradient start color\n\ -to gradient end color\n\n\ -solid solid color\n\n\ -help print this help text and exit\n $set 19 #main 1 error: '-display' requires an argument 2 Bad Alloc 3 Bad cast 4 Out of range 5 Runtime error 6 Standard Exception 7 Unknown error 8 error: '-log' needs an argument 9 Log File 10 Logging to 11 error: '-rc' requires an argument 12 error: '-screen' requires an argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ Website: http://www.fluxbox.org/\n\n\ -display \t\tuse display connection.\n\ -screen \trun on specified screens only.\n\ -rc \t\t\tuse alternate resource file.\n\ -version\t\t\tdisplay version and exit.\n\ -info\t\t\t\tdisplay some useful information.\n\ -list-commands\t\t\tlist all valid key commands.\n\ -sync\t\t\t\tsynchronize with X server for debugging.\n\ -log \t\t\tlog output to file.\n\ -help\t\t\t\tdisplay this help text and exit.\n\n 14 warning: couldn't set environment variable 'DISPLAY' $set 20 #layers 1 Above Dock 2 Bottom 3 Desktop 4 Dock 5 Normal 6 Top fluxbox-1.3.5/nls/en_GB/PaxHeaders.25974/generated-ISO-8859-1.m0000644000175000017500000000013212106662463021341 xustar000000000000000030 mtime=1360749875.843812465 30 atime=1360749875.859812465 30 ctime=1360750008.791811614 fluxbox-1.3.5/nls/en_GB/generated-ISO-8859-1.m0000644000175000017500000001272512106662463017377 0ustar00mgmg00000000000000$ codeset=ISO-8859-1 $set 1 #Align 1 Bottom Center 2 Bottom Left 3 Bottom Right 4 Horizontal 5 Left 6 Left Bottom 7 Left Center 8 Left Top 9 Relative 10 Right 11 Right Bottom 12 Right Center 13 Right Top 14 Top Center 15 Top Left 16 Top Right 17 Vertical 18 Center 19 Top 20 Bottom $set 2 #BaseDisplay 1 Aborting... dumping core\n 2 Shutting Down\n 3 %s: signal %d caught\n $set 3 #Common 1 Alpha 2 Auto hide 3 Compiled 4 Compiled options 5 Compiler 6 Compiler version 7 init 8 keys 9 nls 10 menu 11 style 12 Defaults 13 disabled 14 Error 15 Fluxbox version 16 Maximize Over 17 GIT Revision 18 Visible 19 There is no background option specified in this style.\nPlease consult the manual or read the FAQ. $set 4 #Configmenu 1 AntiAlias 2 Auto Raise 3 Click Raises 4 Click to Focus 5 Decorate Transient Windows 6 Desktop MouseWheel Switching 7 Focus Window on Workspace Change 8 Focus Model 9 Focus New Windows 10 Full Maximization 11 Image Dithering 12 Opaque Window Moving 14 Mouse Focus 15 Workspace Warping 16 Force Pseudo-Transparency 17 Menu Alpha 18 Transparency 19 Focused Window Alpha 20 Unfocused Window Alpha 21 Tab Options 22 Tabs in Titlebar 23 External Tab Width 24 Click Tab Focus 25 Mouse Tab Focus 26 Maximize Options 27 Ignore Resize Increment 28 Disable Moving 29 Disable Resizing $set 5 #Ewmh 1 Fatal: Out of memory, can't allocate for EWMH client list $set 6 #FbTkError 1 Warning! Height > 3200, setting Height = 3200 2 Warning! Width > 3200, setting Width = 3200 3 Warning: can't load fallback font 4 Allocation error. 5 Error creating pixmap 6 Can't create XImage 7 Failed to read 8 Warning: Failed to find valid format for alpha. 9 Warning: Failed to create alpha picture. 10 Warning: Failed to create alpha pixmap. 11 Failed to find format for screen(%d) 12 Out of memory 13 Out of memory while allocating blue buffer. 14 Out of memory while allocating green buffer. 15 Out of memory while allocating red buffer. 16 Failed to read theme item 17 unsupported visual 18 Setting default value $set 7 #Fluxbox 1 rc filename is invalid! 2 Failed to load groupfile 3 Failed to load database 4 Retrying with 5 Warning! Could not find screen to map window on! 6 Can't create directory %s 7 Couldn't find screens to manage.\nMake sure you don't have another window manager running. 8 Error parsing regular expression 9 Fatal! There can only one instance of fluxbox class. 10 Can not connect to X server.\nMake sure you started X before you start Fluxbox. 11 Warning: X server does not support locale 12 Warning: cannot set locale modifiers $set 8 #Gnome 1 Fatal: Out of memory, can't allocate for GNOME client list $set 9 #Keys 1 Keys: Error on line 2 Keys: Failed to merge keytree! 3 Keys: Invalid key/modifier on line $set 10 #Menu 1 Configuration 2 Fluxbox default menu 3 Exit 4 Icons 5 Layer... 6 On Head... 7 Placement 8 Reload Config 9 Restart 10 Warning: unbalanced [encoding] tags $set 11 #Remember 1 Decorations 2 Dimensions 3 Jump to workspace 4 Layer 5 Remember... 6 Position 7 Save on close 8 Shaded 9 Sticky 10 Unknown apps key 11 Workspace 12 Head 13 Transparency $set 12 #Screen 1 BScreen::BScreen: an error occured while querying the X server.\n another window manager already running on display 2 W: %4d x H: %4d 3 BScreen::BScreen: managing screen %d using visual 0x%lx, depth %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Clients 2 Cycle Down 3 Cycle Up 4 Slit Direction: 5 Slit Layer 6 Slit on Head 7 Slit Placement 8 Slit 9 Save SlitList $set 14 #Toolbar 1 Rename current workspace 2 Iconbar Mode 3 All Windows 4 Icons 5 None 6 Workspace 7 WorkspaceIcons 8 Toolbar Layer 9 Toolbar on Head 10 Toolbar Placement 11 Toolbar 12 Toolbar width percent 13 Clock: 24h 14 Clock: 12h 15 Edit Clock Format 16 Show Pictures 17 NoIcons 18 WorkspaceNoIcons $set 15 #Window 1 Unnamed $set 16 #Windowmenu 1 Close 2 Iconify 3 Layer 4 Lower 5 Maximize 6 Raise 7 Send To ... 8 Shade 9 Stick 10 Kill 11 Use Defaults 12 Set Window Title $set 17 #Workspace 1 Workspace %d 2 Workspaces 3 New Workspace 4 Remove Last $set 18 #fbsetroot 1 Error: must specify one of: -solid, -mod, -gradient\n 2 Couldn't create pixmap atoms, giving up! 3 -display display connection\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient gradient texture\n\ -from gradient start color\n\ -to gradient end color\n\n\ -solid solid color\n\n\ -help print this help text and exit\n $set 19 #main 1 error: '-display' requires an argument 2 Bad Alloc 3 Bad cast 4 Out of range 5 Runtime error 6 Standard Exception 7 Unknown error 8 error: '-log' needs an argument 9 Log File 10 Logging to 11 error: '-rc' requires an argument 12 error: '-screen' requires an argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ Website: http://www.fluxbox.org/\n\n\ -display \t\tuse display connection.\n\ -screen \trun on specified screens only.\n\ -rc \t\t\tuse alternate resource file.\n\ -version\t\t\tdisplay version and exit.\n\ -info\t\t\t\tdisplay some useful information.\n\ -list-commands\t\t\tlist all valid key commands.\n\ -sync\t\t\t\tsynchronize with X server for debugging.\n\ -log \t\t\tlog output to file.\n\ -help\t\t\t\tdisplay this help text and exit.\n\n 14 warning: couldn't set environment variable 'DISPLAY' $set 20 #layers 1 Above Dock 2 Bottom 3 Desktop 4 Dock 5 Normal 6 Top fluxbox-1.3.5/nls/en_GB/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020476 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749875.843812465 30 ctime=1360750008.795811614 fluxbox-1.3.5/nls/en_GB/Translation.m0000644000175000017500000001272512106662425016534 0ustar00mgmg00000000000000$ codeset=ISO-8859-1 $set 1 #Align 1 Bottom Center 2 Bottom Left 3 Bottom Right 4 Horizontal 5 Left 6 Left Bottom 7 Left Center 8 Left Top 9 Relative 10 Right 11 Right Bottom 12 Right Center 13 Right Top 14 Top Center 15 Top Left 16 Top Right 17 Vertical 18 Center 19 Top 20 Bottom $set 2 #BaseDisplay 1 Aborting... dumping core\n 2 Shutting Down\n 3 %s: signal %d caught\n $set 3 #Common 1 Alpha 2 Auto hide 3 Compiled 4 Compiled options 5 Compiler 6 Compiler version 7 init 8 keys 9 nls 10 menu 11 style 12 Defaults 13 disabled 14 Error 15 Fluxbox version 16 Maximize Over 17 GIT Revision 18 Visible 19 There is no background option specified in this style.\nPlease consult the manual or read the FAQ. $set 4 #Configmenu 1 AntiAlias 2 Auto Raise 3 Click Raises 4 Click to Focus 5 Decorate Transient Windows 6 Desktop MouseWheel Switching 7 Focus Window on Workspace Change 8 Focus Model 9 Focus New Windows 10 Full Maximization 11 Image Dithering 12 Opaque Window Moving 14 Mouse Focus 15 Workspace Warping 16 Force Pseudo-Transparency 17 Menu Alpha 18 Transparency 19 Focused Window Alpha 20 Unfocused Window Alpha 21 Tab Options 22 Tabs in Titlebar 23 External Tab Width 24 Click Tab Focus 25 Mouse Tab Focus 26 Maximize Options 27 Ignore Resize Increment 28 Disable Moving 29 Disable Resizing $set 5 #Ewmh 1 Fatal: Out of memory, can't allocate for EWMH client list $set 6 #FbTkError 1 Warning! Height > 3200, setting Height = 3200 2 Warning! Width > 3200, setting Width = 3200 3 Warning: can't load fallback font 4 Allocation error. 5 Error creating pixmap 6 Can't create XImage 7 Failed to read 8 Warning: Failed to find valid format for alpha. 9 Warning: Failed to create alpha picture. 10 Warning: Failed to create alpha pixmap. 11 Failed to find format for screen(%d) 12 Out of memory 13 Out of memory while allocating blue buffer. 14 Out of memory while allocating green buffer. 15 Out of memory while allocating red buffer. 16 Failed to read theme item 17 unsupported visual 18 Setting default value $set 7 #Fluxbox 1 rc filename is invalid! 2 Failed to load groupfile 3 Failed to load database 4 Retrying with 5 Warning! Could not find screen to map window on! 6 Can't create directory %s 7 Couldn't find screens to manage.\nMake sure you don't have another window manager running. 8 Error parsing regular expression 9 Fatal! There can only one instance of fluxbox class. 10 Can not connect to X server.\nMake sure you started X before you start Fluxbox. 11 Warning: X server does not support locale 12 Warning: cannot set locale modifiers $set 8 #Gnome 1 Fatal: Out of memory, can't allocate for GNOME client list $set 9 #Keys 1 Keys: Error on line 2 Keys: Failed to merge keytree! 3 Keys: Invalid key/modifier on line $set 10 #Menu 1 Configuration 2 Fluxbox default menu 3 Exit 4 Icons 5 Layer... 6 On Head... 7 Placement 8 Reload Config 9 Restart 10 Warning: unbalanced [encoding] tags $set 11 #Remember 1 Decorations 2 Dimensions 3 Jump to workspace 4 Layer 5 Remember... 6 Position 7 Save on close 8 Shaded 9 Sticky 10 Unknown apps key 11 Workspace 12 Head 13 Transparency $set 12 #Screen 1 BScreen::BScreen: an error occured while querying the X server.\n another window manager already running on display 2 W: %4d x H: %4d 3 BScreen::BScreen: managing screen %d using visual 0x%lx, depth %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Clients 2 Cycle Down 3 Cycle Up 4 Slit Direction: 5 Slit Layer 6 Slit on Head 7 Slit Placement 8 Slit 9 Save SlitList $set 14 #Toolbar 1 Rename current workspace 2 Iconbar Mode 3 All Windows 4 Icons 5 None 6 Workspace 7 WorkspaceIcons 8 Toolbar Layer 9 Toolbar on Head 10 Toolbar Placement 11 Toolbar 12 Toolbar width percent 13 Clock: 24h 14 Clock: 12h 15 Edit Clock Format 16 Show Pictures 17 NoIcons 18 WorkspaceNoIcons $set 15 #Window 1 Unnamed $set 16 #Windowmenu 1 Close 2 Iconify 3 Layer 4 Lower 5 Maximize 6 Raise 7 Send To ... 8 Shade 9 Stick 10 Kill 11 Use Defaults 12 Set Window Title $set 17 #Workspace 1 Workspace %d 2 Workspaces 3 New Workspace 4 Remove Last $set 18 #fbsetroot 1 Error: must specify one of: -solid, -mod, -gradient\n 2 Couldn't create pixmap atoms, giving up! 3 -display display connection\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient gradient texture\n\ -from gradient start color\n\ -to gradient end color\n\n\ -solid solid color\n\n\ -help print this help text and exit\n $set 19 #main 1 error: '-display' requires an argument 2 Bad Alloc 3 Bad cast 4 Out of range 5 Runtime error 6 Standard Exception 7 Unknown error 8 error: '-log' needs an argument 9 Log File 10 Logging to 11 error: '-rc' requires an argument 12 error: '-screen' requires an argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ Website: http://www.fluxbox.org/\n\n\ -display \t\tuse display connection.\n\ -screen \trun on specified screens only.\n\ -rc \t\t\tuse alternate resource file.\n\ -version\t\t\tdisplay version and exit.\n\ -info\t\t\t\tdisplay some useful information.\n\ -list-commands\t\t\tlist all valid key commands.\n\ -sync\t\t\t\tsynchronize with X server for debugging.\n\ -log \t\t\tlog output to file.\n\ -help\t\t\t\tdisplay this help text and exit.\n\n 14 warning: couldn't set environment variable 'DISPLAY' $set 20 #layers 1 Above Dock 2 Bottom 3 Desktop 4 Dock 5 Normal 6 Top fluxbox-1.3.5/nls/en_GB/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603020065 xustar000000000000000030 mtime=1360749955.847811953 30 atime=1360750003.595811647 30 ctime=1360750008.795811614 fluxbox-1.3.5/nls/en_GB/Makefile.in0000644000175000017500000002715412106662603016125 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/en_GB/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/en_GB DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = en_GB SRC_CODESET = ISO-8859-1 DEST_CODESETS = ISO-8859-1 UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/en_GB/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/en_GB/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/en_GB/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020056 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749853.699812606 30 ctime=1360750008.795811614 fluxbox-1.3.5/nls/en_GB/Makefile.am0000644000175000017500000000301012106662425016077 0ustar00mgmg00000000000000# nls/en_GB/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = en_GB SRC_CODESET = ISO-8859-1 DEST_CODESETS = ISO-8859-1 UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/en_US0000644000175000017500000000013212106662666016013 xustar000000000000000030 mtime=1360750006.543811628 30 atime=1360750008.795811614 30 ctime=1360750008.795811614 fluxbox-1.3.5/nls/en_US/0000755000175000017500000000000012106662666014117 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/en_US/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662463021000 xustar000000000000000030 mtime=1360749875.803812465 30 atime=1360749875.819812465 30 ctime=1360750008.799811614 fluxbox-1.3.5/nls/en_US/generated-UTF-8.m0000644000175000017500000001272012106662463017031 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Bottom Center 2 Bottom Left 3 Bottom Right 4 Horizontal 5 Left 6 Left Bottom 7 Left Center 8 Left Top 9 Relative 10 Right 11 Right Bottom 12 Right Center 13 Right Top 14 Top Center 15 Top Left 16 Top Right 17 Vertical 18 Center 19 Top 20 Bottom $set 2 #BaseDisplay 1 Aborting... dumping core\n 2 Shutting Down\n 3 %s: signal %d caught\n $set 3 #Common 1 Alpha 2 Auto hide 3 Compiled 4 Compiled options 5 Compiler 6 Compiler version 7 init 8 keys 9 nls 10 menu 11 style 12 Defaults 13 disabled 14 Error 15 Fluxbox version 16 Maximize Over 17 GIT Revision 18 Visible 19 There is no background option specified in this style.\nPlease consult the manual or read the FAQ. $set 4 #Configmenu 1 AntiAlias 2 Auto Raise 3 Click Raises 4 Click to Focus 5 Decorate Transient Windows 6 Desktop MouseWheel Switching 7 Focus Window on Workspace Change 8 Focus Model 9 Focus New Windows 10 Full Maximization 11 Image Dithering 12 Opaque Window Moving 14 Mouse Focus 15 Workspace Warping 16 Force Pseudo-Transparency 17 Menu Alpha 18 Transparency 19 Focused Window Alpha 20 Unfocused Window Alpha 21 Tab Options 22 Tabs in Titlebar 23 External Tab Width 24 Click Tab Focus 25 Mouse Tab Focus 26 Maximize Options 27 Ignore Resize Increment 28 Disable Moving 29 Disable Resizing $set 5 #Ewmh 1 Fatal: Out of memory, can't allocate for EWMH client list $set 6 #FbTkError 1 Warning! Height > 3200, setting Height = 3200 2 Warning! Width > 3200, setting Width = 3200 3 Warning: can't load fallback font 4 Allocation error. 5 Error creating pixmap 6 Can't create XImage 7 Failed to read 8 Warning: Failed to find valid format for alpha. 9 Warning: Failed to create alpha picture. 10 Warning: Failed to create alpha pixmap. 11 Failed to find format for screen(%d) 12 Out of memory 13 Out of memory while allocating blue buffer. 14 Out of memory while allocating green buffer. 15 Out of memory while allocating red buffer. 16 Failed to read theme item 17 unsupported visual 18 Setting default value $set 7 #Fluxbox 1 rc filename is invalid! 2 Failed to load groupfile 3 Failed to load database 4 Retrying with 5 Warning! Could not find screen to map window on! 6 Can't create directory %s 7 Couldn't find screens to manage.\nMake sure you don't have another window manager running. 8 Error parsing regular expression 9 Fatal! There can only one instance of fluxbox class. 10 Can not connect to X server.\nMake sure you started X before you start Fluxbox. 11 Warning: X server does not support locale 12 Warning: cannot set locale modifiers $set 8 #Gnome 1 Fatal: Out of memory, can't allocate for GNOME client list $set 9 #Keys 1 Keys: Error on line 2 Keys: Failed to merge keytree! 3 Keys: Invalid key/modifier on line $set 10 #Menu 1 Configuration 2 Fluxbox default menu 3 Exit 4 Icons 5 Layer... 6 On Head... 7 Placement 8 Reload Config 9 Restart 10 Warning: unbalanced [encoding] tags $set 11 #Remember 1 Decorations 2 Dimensions 3 Jump to workspace 4 Layer 5 Remember... 6 Position 7 Save on close 8 Shaded 9 Sticky 10 Unknown apps key 11 Workspace 12 Head 13 Transparency $set 12 #Screen 1 BScreen::BScreen: an error occured while querying the X server.\n another window manager already running on display 2 W: %4d x H: %4d 3 BScreen::BScreen: managing screen %d using visual 0x%lx, depth %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Clients 2 Cycle Down 3 Cycle Up 4 Slit Direction: 5 Slit Layer 6 Slit on Head 7 Slit Placement 8 Slit 9 Save SlitList $set 14 #Toolbar 1 Rename current workspace 2 Iconbar Mode 3 All Windows 4 Icons 5 None 6 Workspace 7 WorkspaceIcons 8 Toolbar Layer 9 Toolbar on Head 10 Toolbar Placement 11 Toolbar 12 Toolbar width percent 13 Clock: 24h 14 Clock: 12h 15 Edit Clock Format 16 Show Pictures 17 NoIcons 18 WorkspaceNoIcons $set 15 #Window 1 Unnamed $set 16 #Windowmenu 1 Close 2 Iconify 3 Layer 4 Lower 5 Maximize 6 Raise 7 Send To ... 8 Shade 9 Stick 10 Kill 11 Use Defaults 12 Set Window Title $set 17 #Workspace 1 Workspace %d 2 Workspaces 3 New Workspace 4 Remove Last $set 18 #fbsetroot 1 Error: must specify one of: -solid, -mod, -gradient\n 2 Couldn't create pixmap atoms, giving up! 3 -display display connection\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient gradient texture\n\ -from gradient start color\n\ -to gradient end color\n\n\ -solid solid color\n\n\ -help print this help text and exit\n $set 19 #main 1 error: '-display' requires an argument 2 Bad Alloc 3 Bad cast 4 Out of range 5 Runtime error 6 Standard Exception 7 Unknown error 8 error: '-log' needs an argument 9 Log File 10 Logging to 11 error: '-rc' requires an argument 12 error: '-screen' requires an argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ Website: http://www.fluxbox.org/\n\n\ -display \t\tuse display connection.\n\ -screen \trun on specified screens only.\n\ -rc \t\t\tuse alternate resource file.\n\ -version\t\t\tdisplay version and exit.\n\ -info\t\t\t\tdisplay some useful information.\n\ -list-commands\t\t\tlist all valid key commands.\n\ -sync\t\t\t\tsynchronize with X server for debugging.\n\ -log \t\t\tlog output to file.\n\ -help\t\t\t\tdisplay this help text and exit.\n\n 14 warning: couldn't set environment variable 'DISPLAY' $set 20 #layers 1 Above Dock 2 Bottom 3 Desktop 4 Dock 5 Normal 6 Top fluxbox-1.3.5/nls/en_US/PaxHeaders.25974/generated-ISO-8859-1.m0000644000175000017500000000013212106662463021400 xustar000000000000000030 mtime=1360749875.799812465 30 atime=1360749875.819812465 30 ctime=1360750008.799811614 fluxbox-1.3.5/nls/en_US/generated-ISO-8859-1.m0000644000175000017500000001272512106662463017436 0ustar00mgmg00000000000000$ codeset=ISO-8859-1 $set 1 #Align 1 Bottom Center 2 Bottom Left 3 Bottom Right 4 Horizontal 5 Left 6 Left Bottom 7 Left Center 8 Left Top 9 Relative 10 Right 11 Right Bottom 12 Right Center 13 Right Top 14 Top Center 15 Top Left 16 Top Right 17 Vertical 18 Center 19 Top 20 Bottom $set 2 #BaseDisplay 1 Aborting... dumping core\n 2 Shutting Down\n 3 %s: signal %d caught\n $set 3 #Common 1 Alpha 2 Auto hide 3 Compiled 4 Compiled options 5 Compiler 6 Compiler version 7 init 8 keys 9 nls 10 menu 11 style 12 Defaults 13 disabled 14 Error 15 Fluxbox version 16 Maximize Over 17 GIT Revision 18 Visible 19 There is no background option specified in this style.\nPlease consult the manual or read the FAQ. $set 4 #Configmenu 1 AntiAlias 2 Auto Raise 3 Click Raises 4 Click to Focus 5 Decorate Transient Windows 6 Desktop MouseWheel Switching 7 Focus Window on Workspace Change 8 Focus Model 9 Focus New Windows 10 Full Maximization 11 Image Dithering 12 Opaque Window Moving 14 Mouse Focus 15 Workspace Warping 16 Force Pseudo-Transparency 17 Menu Alpha 18 Transparency 19 Focused Window Alpha 20 Unfocused Window Alpha 21 Tab Options 22 Tabs in Titlebar 23 External Tab Width 24 Click Tab Focus 25 Mouse Tab Focus 26 Maximize Options 27 Ignore Resize Increment 28 Disable Moving 29 Disable Resizing $set 5 #Ewmh 1 Fatal: Out of memory, can't allocate for EWMH client list $set 6 #FbTkError 1 Warning! Height > 3200, setting Height = 3200 2 Warning! Width > 3200, setting Width = 3200 3 Warning: can't load fallback font 4 Allocation error. 5 Error creating pixmap 6 Can't create XImage 7 Failed to read 8 Warning: Failed to find valid format for alpha. 9 Warning: Failed to create alpha picture. 10 Warning: Failed to create alpha pixmap. 11 Failed to find format for screen(%d) 12 Out of memory 13 Out of memory while allocating blue buffer. 14 Out of memory while allocating green buffer. 15 Out of memory while allocating red buffer. 16 Failed to read theme item 17 unsupported visual 18 Setting default value $set 7 #Fluxbox 1 rc filename is invalid! 2 Failed to load groupfile 3 Failed to load database 4 Retrying with 5 Warning! Could not find screen to map window on! 6 Can't create directory %s 7 Couldn't find screens to manage.\nMake sure you don't have another window manager running. 8 Error parsing regular expression 9 Fatal! There can only one instance of fluxbox class. 10 Can not connect to X server.\nMake sure you started X before you start Fluxbox. 11 Warning: X server does not support locale 12 Warning: cannot set locale modifiers $set 8 #Gnome 1 Fatal: Out of memory, can't allocate for GNOME client list $set 9 #Keys 1 Keys: Error on line 2 Keys: Failed to merge keytree! 3 Keys: Invalid key/modifier on line $set 10 #Menu 1 Configuration 2 Fluxbox default menu 3 Exit 4 Icons 5 Layer... 6 On Head... 7 Placement 8 Reload Config 9 Restart 10 Warning: unbalanced [encoding] tags $set 11 #Remember 1 Decorations 2 Dimensions 3 Jump to workspace 4 Layer 5 Remember... 6 Position 7 Save on close 8 Shaded 9 Sticky 10 Unknown apps key 11 Workspace 12 Head 13 Transparency $set 12 #Screen 1 BScreen::BScreen: an error occured while querying the X server.\n another window manager already running on display 2 W: %4d x H: %4d 3 BScreen::BScreen: managing screen %d using visual 0x%lx, depth %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Clients 2 Cycle Down 3 Cycle Up 4 Slit Direction: 5 Slit Layer 6 Slit on Head 7 Slit Placement 8 Slit 9 Save SlitList $set 14 #Toolbar 1 Rename current workspace 2 Iconbar Mode 3 All Windows 4 Icons 5 None 6 Workspace 7 WorkspaceIcons 8 Toolbar Layer 9 Toolbar on Head 10 Toolbar Placement 11 Toolbar 12 Toolbar width percent 13 Clock: 24h 14 Clock: 12h 15 Edit Clock Format 16 Show Pictures 17 NoIcons 18 WorkspaceNoIcons $set 15 #Window 1 Unnamed $set 16 #Windowmenu 1 Close 2 Iconify 3 Layer 4 Lower 5 Maximize 6 Raise 7 Send To ... 8 Shade 9 Stick 10 Kill 11 Use Defaults 12 Set Window Title $set 17 #Workspace 1 Workspace %d 2 Workspaces 3 New Workspace 4 Remove Last $set 18 #fbsetroot 1 Error: must specify one of: -solid, -mod, -gradient\n 2 Couldn't create pixmap atoms, giving up! 3 -display display connection\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient gradient texture\n\ -from gradient start color\n\ -to gradient end color\n\n\ -solid solid color\n\n\ -help print this help text and exit\n $set 19 #main 1 error: '-display' requires an argument 2 Bad Alloc 3 Bad cast 4 Out of range 5 Runtime error 6 Standard Exception 7 Unknown error 8 error: '-log' needs an argument 9 Log File 10 Logging to 11 error: '-rc' requires an argument 12 error: '-screen' requires an argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ Website: http://www.fluxbox.org/\n\n\ -display \t\tuse display connection.\n\ -screen \trun on specified screens only.\n\ -rc \t\t\tuse alternate resource file.\n\ -version\t\t\tdisplay version and exit.\n\ -info\t\t\t\tdisplay some useful information.\n\ -list-commands\t\t\tlist all valid key commands.\n\ -sync\t\t\t\tsynchronize with X server for debugging.\n\ -log \t\t\tlog output to file.\n\ -help\t\t\t\tdisplay this help text and exit.\n\n 14 warning: couldn't set environment variable 'DISPLAY' $set 20 #layers 1 Above Dock 2 Bottom 3 Desktop 4 Dock 5 Normal 6 Top fluxbox-1.3.5/nls/en_US/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020535 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749875.799812465 30 ctime=1360750008.799811614 fluxbox-1.3.5/nls/en_US/Translation.m0000644000175000017500000001272512106662425016573 0ustar00mgmg00000000000000$ codeset=ISO-8859-1 $set 1 #Align 1 Bottom Center 2 Bottom Left 3 Bottom Right 4 Horizontal 5 Left 6 Left Bottom 7 Left Center 8 Left Top 9 Relative 10 Right 11 Right Bottom 12 Right Center 13 Right Top 14 Top Center 15 Top Left 16 Top Right 17 Vertical 18 Center 19 Top 20 Bottom $set 2 #BaseDisplay 1 Aborting... dumping core\n 2 Shutting Down\n 3 %s: signal %d caught\n $set 3 #Common 1 Alpha 2 Auto hide 3 Compiled 4 Compiled options 5 Compiler 6 Compiler version 7 init 8 keys 9 nls 10 menu 11 style 12 Defaults 13 disabled 14 Error 15 Fluxbox version 16 Maximize Over 17 GIT Revision 18 Visible 19 There is no background option specified in this style.\nPlease consult the manual or read the FAQ. $set 4 #Configmenu 1 AntiAlias 2 Auto Raise 3 Click Raises 4 Click to Focus 5 Decorate Transient Windows 6 Desktop MouseWheel Switching 7 Focus Window on Workspace Change 8 Focus Model 9 Focus New Windows 10 Full Maximization 11 Image Dithering 12 Opaque Window Moving 14 Mouse Focus 15 Workspace Warping 16 Force Pseudo-Transparency 17 Menu Alpha 18 Transparency 19 Focused Window Alpha 20 Unfocused Window Alpha 21 Tab Options 22 Tabs in Titlebar 23 External Tab Width 24 Click Tab Focus 25 Mouse Tab Focus 26 Maximize Options 27 Ignore Resize Increment 28 Disable Moving 29 Disable Resizing $set 5 #Ewmh 1 Fatal: Out of memory, can't allocate for EWMH client list $set 6 #FbTkError 1 Warning! Height > 3200, setting Height = 3200 2 Warning! Width > 3200, setting Width = 3200 3 Warning: can't load fallback font 4 Allocation error. 5 Error creating pixmap 6 Can't create XImage 7 Failed to read 8 Warning: Failed to find valid format for alpha. 9 Warning: Failed to create alpha picture. 10 Warning: Failed to create alpha pixmap. 11 Failed to find format for screen(%d) 12 Out of memory 13 Out of memory while allocating blue buffer. 14 Out of memory while allocating green buffer. 15 Out of memory while allocating red buffer. 16 Failed to read theme item 17 unsupported visual 18 Setting default value $set 7 #Fluxbox 1 rc filename is invalid! 2 Failed to load groupfile 3 Failed to load database 4 Retrying with 5 Warning! Could not find screen to map window on! 6 Can't create directory %s 7 Couldn't find screens to manage.\nMake sure you don't have another window manager running. 8 Error parsing regular expression 9 Fatal! There can only one instance of fluxbox class. 10 Can not connect to X server.\nMake sure you started X before you start Fluxbox. 11 Warning: X server does not support locale 12 Warning: cannot set locale modifiers $set 8 #Gnome 1 Fatal: Out of memory, can't allocate for GNOME client list $set 9 #Keys 1 Keys: Error on line 2 Keys: Failed to merge keytree! 3 Keys: Invalid key/modifier on line $set 10 #Menu 1 Configuration 2 Fluxbox default menu 3 Exit 4 Icons 5 Layer... 6 On Head... 7 Placement 8 Reload Config 9 Restart 10 Warning: unbalanced [encoding] tags $set 11 #Remember 1 Decorations 2 Dimensions 3 Jump to workspace 4 Layer 5 Remember... 6 Position 7 Save on close 8 Shaded 9 Sticky 10 Unknown apps key 11 Workspace 12 Head 13 Transparency $set 12 #Screen 1 BScreen::BScreen: an error occured while querying the X server.\n another window manager already running on display 2 W: %4d x H: %4d 3 BScreen::BScreen: managing screen %d using visual 0x%lx, depth %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Clients 2 Cycle Down 3 Cycle Up 4 Slit Direction: 5 Slit Layer 6 Slit on Head 7 Slit Placement 8 Slit 9 Save SlitList $set 14 #Toolbar 1 Rename current workspace 2 Iconbar Mode 3 All Windows 4 Icons 5 None 6 Workspace 7 WorkspaceIcons 8 Toolbar Layer 9 Toolbar on Head 10 Toolbar Placement 11 Toolbar 12 Toolbar width percent 13 Clock: 24h 14 Clock: 12h 15 Edit Clock Format 16 Show Pictures 17 NoIcons 18 WorkspaceNoIcons $set 15 #Window 1 Unnamed $set 16 #Windowmenu 1 Close 2 Iconify 3 Layer 4 Lower 5 Maximize 6 Raise 7 Send To ... 8 Shade 9 Stick 10 Kill 11 Use Defaults 12 Set Window Title $set 17 #Workspace 1 Workspace %d 2 Workspaces 3 New Workspace 4 Remove Last $set 18 #fbsetroot 1 Error: must specify one of: -solid, -mod, -gradient\n 2 Couldn't create pixmap atoms, giving up! 3 -display display connection\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient gradient texture\n\ -from gradient start color\n\ -to gradient end color\n\n\ -solid solid color\n\n\ -help print this help text and exit\n $set 19 #main 1 error: '-display' requires an argument 2 Bad Alloc 3 Bad cast 4 Out of range 5 Runtime error 6 Standard Exception 7 Unknown error 8 error: '-log' needs an argument 9 Log File 10 Logging to 11 error: '-rc' requires an argument 12 error: '-screen' requires an argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ Website: http://www.fluxbox.org/\n\n\ -display \t\tuse display connection.\n\ -screen \trun on specified screens only.\n\ -rc \t\t\tuse alternate resource file.\n\ -version\t\t\tdisplay version and exit.\n\ -info\t\t\t\tdisplay some useful information.\n\ -list-commands\t\t\tlist all valid key commands.\n\ -sync\t\t\t\tsynchronize with X server for debugging.\n\ -log \t\t\tlog output to file.\n\ -help\t\t\t\tdisplay this help text and exit.\n\n 14 warning: couldn't set environment variable 'DISPLAY' $set 20 #layers 1 Above Dock 2 Bottom 3 Desktop 4 Dock 5 Normal 6 Top fluxbox-1.3.5/nls/en_US/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603020124 xustar000000000000000030 mtime=1360749955.867811952 30 atime=1360750003.611811647 30 ctime=1360750008.799811614 fluxbox-1.3.5/nls/en_US/Makefile.in0000644000175000017500000002715412106662603016164 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/en_US/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/en_US DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = en_US SRC_CODESET = ISO-8859-1 DEST_CODESETS = ISO-8859-1 UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/en_US/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/en_US/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/en_US/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020115 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749853.723812606 30 ctime=1360750008.799811614 fluxbox-1.3.5/nls/en_US/Makefile.am0000644000175000017500000000301012106662425016136 0ustar00mgmg00000000000000# nls/en_US/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = en_US SRC_CODESET = ISO-8859-1 DEST_CODESETS = ISO-8859-1 UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/fi_FI0000644000175000017500000000013212106662666015756 xustar000000000000000030 mtime=1360750006.511811628 30 atime=1360750008.803811614 30 ctime=1360750008.803811614 fluxbox-1.3.5/nls/fi_FI/0000755000175000017500000000000012106662666014062 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/fi_FI/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662463020743 xustar000000000000000030 mtime=1360749875.763812465 30 atime=1360749875.779812465 30 ctime=1360750008.803811614 fluxbox-1.3.5/nls/fi_FI/generated-UTF-8.m0000644000175000017500000001433212106662463016775 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Alas keskelle 2 Alas vasemmalle 3 Alas oikealle 4 Vaakasuoraan 5 Vasemmalle 6 Vasemmalle alas 7 Vasemmalle keskelle 8 Vasemmalle ylös 9 Suhteellisesti 10 Oikealle 11 Oikealle alas 12 Oikealle keskelle 13 Oikealle ylös 14 Ylös keskelle 15 Ylös vasemmalle 16 Ylös oikealle 17 Pystysuoraan $set 2 #BaseDisplay 1 Keskeytetään... kirjoitetaan muistivedos\n 2 Suljetaan\n 3 %s: signaali %d siepattu\n $set 3 #Common 1 Alpha-arvo 2 Piilota automaattisesti 3 Käännetty 4 Käännetyt vaihtoehdot 5 Kääntäjä 6 Kääntäjän versio 7 init 8 keys 9 nls 10 menu 11 style 12 Oletukset 13 pois käytöstä 14 Virhe 15 Fluxbox versio 16 Peitä ikkunaa suurennettaessa 17 GIT Revisio 18 Näkyvissä 19 Tälle tyylille ei ole määritetty taustaa.\nHae lisätietoja käsikirjasta ja UKK:sta. $set 4 #Configmenu 1 Kirjasinten pehmennys 2 Tuo ikkunat esiin automaattisesti 3 Tuo ikkunat esiin napsauttamalla 4 Valitse ikkuna napsauttamalla 5 Kehystä tilapäiset ikkunat 6 Vaihda työpöytää hiiren rullalla 7 Valitse ikkuna työpöytää vaihdettaessa 8 Ikkunan valitseminen 9 Valitse aina uudet ikkunat 10 Suurenna näytön kokoiseksi 11 Kuvien pehmennys 12 Näytä ikkunan sisältö siirrettäessä 14 Valitse ikkuna osoittamalla 15 Kiertävä työpöytälistaus 16 Pakota pseudo-läpinäkyvyys 17 Valikon alpha-arvo 18 Läpinäkyvyys 19 Valitun ikkunan alpha-arvo 20 Valitsemattoman ikkunan alpha-arvo 21 Välilehtien vaihtoehdot 22 Välilehdet otsikkopalkissa 23 Ulkoisten välilehtien leveys 24 Valitse välilehti napsauttamalla 25 Valitse välilehti osoittamalla $set 5 #Ewmh 1 Vakava virhe: Muistia ei voitu varata EWMH:n asiakaslistaukselle $set 6 #FbTkError 1 Varoitus! Korkeus > 3200, asetetaan Korkeus = 3200 2 Varoitus! Leveys > 3200, asetetaan Leveys = 3200 3 Varoitus: Varakirjaisinta ei voitu ladata 4 Varausvirhe. 5 Virhe rasterikuvaa luotaessa 6 XImagea ei voi luoda 7 Luku epäonnistui 8 Varoitus: Alphalle ei löytynyt kelvollista formaattia. 9 Varoitus: Alpha-kuvan luonti epäonnistui. 10 Varoitus: Alpha-rasterikuvan luonti epäonnistui. 11 Näytön (%d) alustus epäonnistui 12 Muisti loppui 13 Blue-puskurille ei voitu varata muistia. 14 Green-puskurille ei voitu varata muistia. 15 Red-puskurille ei voitu varata muistia. 16 Teemakomponentin lukeminen epäonnistui 17 Visual-arvo ei ole tuettujen arvojen joukossa 18 Asetetaan oletusarvo $set 7 #Fluxbox 1 Resurssitiedoston nimi ei ole kelvollinen! 2 Group-tiedostoa ei voitu avata 3 Tietokantaa ei voitu ladata 4 Yritetään uudelleen 5 Varoitus! Ikkunaa ei voitu kiinnittää mihinkään näyttöön! 6 Hakemistoa %s ei voi luoda 7 Hallittavaa näyttöä ei saatavilla.\nVarmista ettei toinen ikkunointiohjelma ole käynnissä. 8 Virhe jäsennettäessä säännöllistä lauseketta 9 Vakava virhe! Fluxbox-luokasta voi olla vain yksi ilmentymä. 10 X-palvelimeen ei voitu yhdistää.\nKäynnistä X ennen Fluxboxia. 11 Varoitus: X-palvelin ei tue maa-asetustoa 12 Varoitus: Ei voitu asettaa maa-asetuston muokkaimia $set 8 #Gnome 1 Vakava virhe: Muistia ei voitu varata Gnomen asiakaslistaukselle $set 9 #Keys 1 Keys: Virhe rivillä 2 Keys: Näppäimistöpuun yhdistäminen epäonnistui! 3 Keys: Virheellinen näppäinarvo rivillä $set 10 #Menu 1 Asetukset 2 Fluxboxin oletusvalikko 3 Poistu 4 Kuvakkeet 5 Taso 6 Näytöllä 7 Sijoittuminen 8 Uudelleenlataa asetukset 9 Uudelleenkäynnistys 10 Varoitus: Merkkausvirhe (tag) $set 11 #Remember 1 Kehystys 2 Koko 3 Siirrä työalueelle 4 Taso 5 Muista käynnistettäessä 6 Sijoittuminen 7 Tallenna suljettaessa 8 Varjostus 9 Kiinnitys 10 Tuntematon apps-tiedoston avain 11 Työalue 12 Näyttö $set 12 #Screen 1 BScreen::BScreen: virhe X-palvelinta haettaessa.\ntoinen ikkunointiohjelma on jo käynnissä näytöllä 2 W: %4d x H: %4d 3 BScreen::BScreen: hallitaan näyttöä %d käyttäen arvoja visual 0x%lx, depth %d\n $set 13 #Slit 1 Appletit 2 Edellinen appletti 3 Seuraava appletti 4 Applettitelakan asento 5 Taso 6 Applettitelakka näytöllä 7 Applettitelakan sijoittaminen 8 Applettitelakka 9 Tallenna applettitelakan asetukset $set 14 #Toolbar 1 Uudelleennimeä nykyinen työalue 2 Kuvakepalkin tila 3 Kaikki ikkunat 4 Kuvakkeet 5 Ei mikään 6 Työpöytä 7 Työaluekuvakkeet 8 Työkalupalkin taso 9 Työkalupalkki näytöllä 10 Työkalupalkin sijoittaminen 11 Työkalupalkki 12 Työkalupalkin leveys näytöllä prosentteina 13 Kello 24h 14 Kello 12h 15 Muuta kellonajan esitystapaa 16 Näytä kuvat 17 Ei kuvakkeita 18 Työalueet ilman kuvakkeita $set 15 #Window 1 Nimeämätön $set 16 #Windowmenu 1 Sulje 2 Pienennä 3 Valitse taso 4 Taustalle 5 Suurenna 6 Esille 7 Siirrä työalueelle 8 Varjosta 9 Kiinnitä 10 Pakota sulkeminen $set 17 #Workspace 1 Työalue %d 2 Työalueet 3 Lisää työalue 4 Poista viimeinen työalue $set 18 #fbsetroot 1 Virhe: käytä vähintään yhtä seuraavista valitsimista: -solid, -mod, -gradient\n 2 Rasterikuvaa ei voitu luoda, lopetetaan! 3 -display näyttö\n\ -mod modula-kuvio\n\ -foreground, -fg modula-taustaväri\n\ -background, -bg modula-edustaväri\n\n\ -gradient väriliu'un tekstuuri\n\ -from väriliu'un alkamisväri\n\ -to väriliu'un päättymisväri\n\n\ -solid yhtenäinen väri\n\n\ -help tulosta ainoastaan tämä ohje\n $set 19 #main 1 virhe: '-display' vaatii määreen 2 Lisämuistin varaaminen epäonnistui 3 Epäonnistunut tyyppimuunnos 4 Arvoalueen ulkopuolella 5 Ajonaikainen virhe 6 Vakiopoikkeus 7 tuntematon virhe 8 virhe: '-log' vaatii määreen 9 Lokitiedosto 10 Kirjoittaudutaan 11 virhe: '-rc' vaatii määreen 12 virhe: '-screen' vaatii määreen 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ Web-sivu: http://www.fluxbox.org/\n\n\ -display \t\tmuuta $DISPLAY.\n\ -screen \tsuorita vain määrätyillä näytöillä.\n\ -rc \t\t\tkäytä vaihtoehtoista resurssitiedostoa.\n\ -version\t\t\ttulosta ainoastaan ohjelman versio.\n\ -info\t\t\t\tnäytä tietoja.\n\ -log \t\t\tkirjoita lokiin.\n\ -help\t\t\t\ttulosta vain tämä ohje.\n\n 14 varoitus: 'DISPLAY' ympäristömuuttujaa ei voitu asettaa $set 20 #layers 1 Telakan päällä 2 Alin 3 Työalue 4 Telakka 5 Oletus 6 Ylin fluxbox-1.3.5/nls/fi_FI/PaxHeaders.25974/generated-ISO-8859-1.m0000644000175000017500000000013212106662463021343 xustar000000000000000030 mtime=1360749875.759812465 30 atime=1360749875.775812465 30 ctime=1360750008.803811614 fluxbox-1.3.5/nls/fi_FI/generated-ISO-8859-1.m0000644000175000017500000001400712106662463017374 0ustar00mgmg00000000000000$ codeset=ISO-8859-1 $set 1 #Align 1 Alas keskelle 2 Alas vasemmalle 3 Alas oikealle 4 Vaakasuoraan 5 Vasemmalle 6 Vasemmalle alas 7 Vasemmalle keskelle 8 Vasemmalle ylös 9 Suhteellisesti 10 Oikealle 11 Oikealle alas 12 Oikealle keskelle 13 Oikealle ylös 14 Ylös keskelle 15 Ylös vasemmalle 16 Ylös oikealle 17 Pystysuoraan $set 2 #BaseDisplay 1 Keskeytetään... kirjoitetaan muistivedos\n 2 Suljetaan\n 3 %s: signaali %d siepattu\n $set 3 #Common 1 Alpha-arvo 2 Piilota automaattisesti 3 Käännetty 4 Käännetyt vaihtoehdot 5 Kääntäjä 6 Kääntäjän versio 7 init 8 keys 9 nls 10 menu 11 style 12 Oletukset 13 pois käytöstä 14 Virhe 15 Fluxbox versio 16 Peitä ikkunaa suurennettaessa 17 GIT Revisio 18 Näkyvissä 19 Tälle tyylille ei ole määritetty taustaa.\nHae lisätietoja käsikirjasta ja UKK:sta. $set 4 #Configmenu 1 Kirjasinten pehmennys 2 Tuo ikkunat esiin automaattisesti 3 Tuo ikkunat esiin napsauttamalla 4 Valitse ikkuna napsauttamalla 5 Kehystä tilapäiset ikkunat 6 Vaihda työpöytää hiiren rullalla 7 Valitse ikkuna työpöytää vaihdettaessa 8 Ikkunan valitseminen 9 Valitse aina uudet ikkunat 10 Suurenna näytön kokoiseksi 11 Kuvien pehmennys 12 Näytä ikkunan sisältö siirrettäessä 14 Valitse ikkuna osoittamalla 15 Kiertävä työpöytälistaus 16 Pakota pseudo-läpinäkyvyys 17 Valikon alpha-arvo 18 Läpinäkyvyys 19 Valitun ikkunan alpha-arvo 20 Valitsemattoman ikkunan alpha-arvo 21 Välilehtien vaihtoehdot 22 Välilehdet otsikkopalkissa 23 Ulkoisten välilehtien leveys 24 Valitse välilehti napsauttamalla 25 Valitse välilehti osoittamalla $set 5 #Ewmh 1 Vakava virhe: Muistia ei voitu varata EWMH:n asiakaslistaukselle $set 6 #FbTkError 1 Varoitus! Korkeus > 3200, asetetaan Korkeus = 3200 2 Varoitus! Leveys > 3200, asetetaan Leveys = 3200 3 Varoitus: Varakirjaisinta ei voitu ladata 4 Varausvirhe. 5 Virhe rasterikuvaa luotaessa 6 XImagea ei voi luoda 7 Luku epäonnistui 8 Varoitus: Alphalle ei löytynyt kelvollista formaattia. 9 Varoitus: Alpha-kuvan luonti epäonnistui. 10 Varoitus: Alpha-rasterikuvan luonti epäonnistui. 11 Näytön (%d) alustus epäonnistui 12 Muisti loppui 13 Blue-puskurille ei voitu varata muistia. 14 Green-puskurille ei voitu varata muistia. 15 Red-puskurille ei voitu varata muistia. 16 Teemakomponentin lukeminen epäonnistui 17 Visual-arvo ei ole tuettujen arvojen joukossa 18 Asetetaan oletusarvo $set 7 #Fluxbox 1 Resurssitiedoston nimi ei ole kelvollinen! 2 Group-tiedostoa ei voitu avata 3 Tietokantaa ei voitu ladata 4 Yritetään uudelleen 5 Varoitus! Ikkunaa ei voitu kiinnittää mihinkään näyttöön! 6 Hakemistoa %s ei voi luoda 7 Hallittavaa näyttöä ei saatavilla.\nVarmista ettei toinen ikkunointiohjelma ole käynnissä. 8 Virhe jäsennettäessä säännöllistä lauseketta 9 Vakava virhe! Fluxbox-luokasta voi olla vain yksi ilmentymä. 10 X-palvelimeen ei voitu yhdistää.\nKäynnistä X ennen Fluxboxia. 11 Varoitus: X-palvelin ei tue maa-asetustoa 12 Varoitus: Ei voitu asettaa maa-asetuston muokkaimia $set 8 #Gnome 1 Vakava virhe: Muistia ei voitu varata Gnomen asiakaslistaukselle $set 9 #Keys 1 Keys: Virhe rivillä 2 Keys: Näppäimistöpuun yhdistäminen epäonnistui! 3 Keys: Virheellinen näppäinarvo rivillä $set 10 #Menu 1 Asetukset 2 Fluxboxin oletusvalikko 3 Poistu 4 Kuvakkeet 5 Taso 6 Näytöllä 7 Sijoittuminen 8 Uudelleenlataa asetukset 9 Uudelleenkäynnistys 10 Varoitus: Merkkausvirhe (tag) $set 11 #Remember 1 Kehystys 2 Koko 3 Siirrä työalueelle 4 Taso 5 Muista käynnistettäessä 6 Sijoittuminen 7 Tallenna suljettaessa 8 Varjostus 9 Kiinnitys 10 Tuntematon apps-tiedoston avain 11 Työalue 12 Näyttö $set 12 #Screen 1 BScreen::BScreen: virhe X-palvelinta haettaessa.\ntoinen ikkunointiohjelma on jo käynnissä näytöllä 2 W: %4d x H: %4d 3 BScreen::BScreen: hallitaan näyttöä %d käyttäen arvoja visual 0x%lx, depth %d\n $set 13 #Slit 1 Appletit 2 Edellinen appletti 3 Seuraava appletti 4 Applettitelakan asento 5 Taso 6 Applettitelakka näytöllä 7 Applettitelakan sijoittaminen 8 Applettitelakka 9 Tallenna applettitelakan asetukset $set 14 #Toolbar 1 Uudelleennimeä nykyinen työalue 2 Kuvakepalkin tila 3 Kaikki ikkunat 4 Kuvakkeet 5 Ei mikään 6 Työpöytä 7 Työaluekuvakkeet 8 Työkalupalkin taso 9 Työkalupalkki näytöllä 10 Työkalupalkin sijoittaminen 11 Työkalupalkki 12 Työkalupalkin leveys näytöllä prosentteina 13 Kello 24h 14 Kello 12h 15 Muuta kellonajan esitystapaa 16 Näytä kuvat 17 Ei kuvakkeita 18 Työalueet ilman kuvakkeita $set 15 #Window 1 Nimeämätön $set 16 #Windowmenu 1 Sulje 2 Pienennä 3 Valitse taso 4 Taustalle 5 Suurenna 6 Esille 7 Siirrä työalueelle 8 Varjosta 9 Kiinnitä 10 Pakota sulkeminen $set 17 #Workspace 1 Työalue %d 2 Työalueet 3 Lisää työalue 4 Poista viimeinen työalue $set 18 #fbsetroot 1 Virhe: käytä vähintään yhtä seuraavista valitsimista: -solid, -mod, -gradient\n 2 Rasterikuvaa ei voitu luoda, lopetetaan! 3 -display näyttö\n\ -mod modula-kuvio\n\ -foreground, -fg modula-taustaväri\n\ -background, -bg modula-edustaväri\n\n\ -gradient väriliu'un tekstuuri\n\ -from väriliu'un alkamisväri\n\ -to väriliu'un päättymisväri\n\n\ -solid yhtenäinen väri\n\n\ -help tulosta ainoastaan tämä ohje\n $set 19 #main 1 virhe: '-display' vaatii määreen 2 Lisämuistin varaaminen epäonnistui 3 Epäonnistunut tyyppimuunnos 4 Arvoalueen ulkopuolella 5 Ajonaikainen virhe 6 Vakiopoikkeus 7 tuntematon virhe 8 virhe: '-log' vaatii määreen 9 Lokitiedosto 10 Kirjoittaudutaan 11 virhe: '-rc' vaatii määreen 12 virhe: '-screen' vaatii määreen 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ Web-sivu: http://www.fluxbox.org/\n\n\ -display \t\tmuuta $DISPLAY.\n\ -screen \tsuorita vain määrätyillä näytöillä.\n\ -rc \t\t\tkäytä vaihtoehtoista resurssitiedostoa.\n\ -version\t\t\ttulosta ainoastaan ohjelman versio.\n\ -info\t\t\t\tnäytä tietoja.\n\ -log \t\t\tkirjoita lokiin.\n\ -help\t\t\t\ttulosta vain tämä ohje.\n\n 14 varoitus: 'DISPLAY' ympäristömuuttujaa ei voitu asettaa $set 20 #layers 1 Telakan päällä 2 Alin 3 Työalue 4 Telakka 5 Oletus 6 Ylin fluxbox-1.3.5/nls/fi_FI/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020500 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749875.759812465 30 ctime=1360750008.803811614 fluxbox-1.3.5/nls/fi_FI/Translation.m0000644000175000017500000001400712106662425016531 0ustar00mgmg00000000000000$ codeset=ISO-8859-1 $set 1 #Align 1 Alas keskelle 2 Alas vasemmalle 3 Alas oikealle 4 Vaakasuoraan 5 Vasemmalle 6 Vasemmalle alas 7 Vasemmalle keskelle 8 Vasemmalle ylös 9 Suhteellisesti 10 Oikealle 11 Oikealle alas 12 Oikealle keskelle 13 Oikealle ylös 14 Ylös keskelle 15 Ylös vasemmalle 16 Ylös oikealle 17 Pystysuoraan $set 2 #BaseDisplay 1 Keskeytetään... kirjoitetaan muistivedos\n 2 Suljetaan\n 3 %s: signaali %d siepattu\n $set 3 #Common 1 Alpha-arvo 2 Piilota automaattisesti 3 Käännetty 4 Käännetyt vaihtoehdot 5 Kääntäjä 6 Kääntäjän versio 7 init 8 keys 9 nls 10 menu 11 style 12 Oletukset 13 pois käytöstä 14 Virhe 15 Fluxbox versio 16 Peitä ikkunaa suurennettaessa 17 GIT Revisio 18 Näkyvissä 19 Tälle tyylille ei ole määritetty taustaa.\nHae lisätietoja käsikirjasta ja UKK:sta. $set 4 #Configmenu 1 Kirjasinten pehmennys 2 Tuo ikkunat esiin automaattisesti 3 Tuo ikkunat esiin napsauttamalla 4 Valitse ikkuna napsauttamalla 5 Kehystä tilapäiset ikkunat 6 Vaihda työpöytää hiiren rullalla 7 Valitse ikkuna työpöytää vaihdettaessa 8 Ikkunan valitseminen 9 Valitse aina uudet ikkunat 10 Suurenna näytön kokoiseksi 11 Kuvien pehmennys 12 Näytä ikkunan sisältö siirrettäessä 14 Valitse ikkuna osoittamalla 15 Kiertävä työpöytälistaus 16 Pakota pseudo-läpinäkyvyys 17 Valikon alpha-arvo 18 Läpinäkyvyys 19 Valitun ikkunan alpha-arvo 20 Valitsemattoman ikkunan alpha-arvo 21 Välilehtien vaihtoehdot 22 Välilehdet otsikkopalkissa 23 Ulkoisten välilehtien leveys 24 Valitse välilehti napsauttamalla 25 Valitse välilehti osoittamalla $set 5 #Ewmh 1 Vakava virhe: Muistia ei voitu varata EWMH:n asiakaslistaukselle $set 6 #FbTkError 1 Varoitus! Korkeus > 3200, asetetaan Korkeus = 3200 2 Varoitus! Leveys > 3200, asetetaan Leveys = 3200 3 Varoitus: Varakirjaisinta ei voitu ladata 4 Varausvirhe. 5 Virhe rasterikuvaa luotaessa 6 XImagea ei voi luoda 7 Luku epäonnistui 8 Varoitus: Alphalle ei löytynyt kelvollista formaattia. 9 Varoitus: Alpha-kuvan luonti epäonnistui. 10 Varoitus: Alpha-rasterikuvan luonti epäonnistui. 11 Näytön (%d) alustus epäonnistui 12 Muisti loppui 13 Blue-puskurille ei voitu varata muistia. 14 Green-puskurille ei voitu varata muistia. 15 Red-puskurille ei voitu varata muistia. 16 Teemakomponentin lukeminen epäonnistui 17 Visual-arvo ei ole tuettujen arvojen joukossa 18 Asetetaan oletusarvo $set 7 #Fluxbox 1 Resurssitiedoston nimi ei ole kelvollinen! 2 Group-tiedostoa ei voitu avata 3 Tietokantaa ei voitu ladata 4 Yritetään uudelleen 5 Varoitus! Ikkunaa ei voitu kiinnittää mihinkään näyttöön! 6 Hakemistoa %s ei voi luoda 7 Hallittavaa näyttöä ei saatavilla.\nVarmista ettei toinen ikkunointiohjelma ole käynnissä. 8 Virhe jäsennettäessä säännöllistä lauseketta 9 Vakava virhe! Fluxbox-luokasta voi olla vain yksi ilmentymä. 10 X-palvelimeen ei voitu yhdistää.\nKäynnistä X ennen Fluxboxia. 11 Varoitus: X-palvelin ei tue maa-asetustoa 12 Varoitus: Ei voitu asettaa maa-asetuston muokkaimia $set 8 #Gnome 1 Vakava virhe: Muistia ei voitu varata Gnomen asiakaslistaukselle $set 9 #Keys 1 Keys: Virhe rivillä 2 Keys: Näppäimistöpuun yhdistäminen epäonnistui! 3 Keys: Virheellinen näppäinarvo rivillä $set 10 #Menu 1 Asetukset 2 Fluxboxin oletusvalikko 3 Poistu 4 Kuvakkeet 5 Taso 6 Näytöllä 7 Sijoittuminen 8 Uudelleenlataa asetukset 9 Uudelleenkäynnistys 10 Varoitus: Merkkausvirhe (tag) $set 11 #Remember 1 Kehystys 2 Koko 3 Siirrä työalueelle 4 Taso 5 Muista käynnistettäessä 6 Sijoittuminen 7 Tallenna suljettaessa 8 Varjostus 9 Kiinnitys 10 Tuntematon apps-tiedoston avain 11 Työalue 12 Näyttö $set 12 #Screen 1 BScreen::BScreen: virhe X-palvelinta haettaessa.\ntoinen ikkunointiohjelma on jo käynnissä näytöllä 2 W: %4d x H: %4d 3 BScreen::BScreen: hallitaan näyttöä %d käyttäen arvoja visual 0x%lx, depth %d\n $set 13 #Slit 1 Appletit 2 Edellinen appletti 3 Seuraava appletti 4 Applettitelakan asento 5 Taso 6 Applettitelakka näytöllä 7 Applettitelakan sijoittaminen 8 Applettitelakka 9 Tallenna applettitelakan asetukset $set 14 #Toolbar 1 Uudelleennimeä nykyinen työalue 2 Kuvakepalkin tila 3 Kaikki ikkunat 4 Kuvakkeet 5 Ei mikään 6 Työpöytä 7 Työaluekuvakkeet 8 Työkalupalkin taso 9 Työkalupalkki näytöllä 10 Työkalupalkin sijoittaminen 11 Työkalupalkki 12 Työkalupalkin leveys näytöllä prosentteina 13 Kello 24h 14 Kello 12h 15 Muuta kellonajan esitystapaa 16 Näytä kuvat 17 Ei kuvakkeita 18 Työalueet ilman kuvakkeita $set 15 #Window 1 Nimeämätön $set 16 #Windowmenu 1 Sulje 2 Pienennä 3 Valitse taso 4 Taustalle 5 Suurenna 6 Esille 7 Siirrä työalueelle 8 Varjosta 9 Kiinnitä 10 Pakota sulkeminen $set 17 #Workspace 1 Työalue %d 2 Työalueet 3 Lisää työalue 4 Poista viimeinen työalue $set 18 #fbsetroot 1 Virhe: käytä vähintään yhtä seuraavista valitsimista: -solid, -mod, -gradient\n 2 Rasterikuvaa ei voitu luoda, lopetetaan! 3 -display näyttö\n\ -mod modula-kuvio\n\ -foreground, -fg modula-taustaväri\n\ -background, -bg modula-edustaväri\n\n\ -gradient väriliu'un tekstuuri\n\ -from väriliu'un alkamisväri\n\ -to väriliu'un päättymisväri\n\n\ -solid yhtenäinen väri\n\n\ -help tulosta ainoastaan tämä ohje\n $set 19 #main 1 virhe: '-display' vaatii määreen 2 Lisämuistin varaaminen epäonnistui 3 Epäonnistunut tyyppimuunnos 4 Arvoalueen ulkopuolella 5 Ajonaikainen virhe 6 Vakiopoikkeus 7 tuntematon virhe 8 virhe: '-log' vaatii määreen 9 Lokitiedosto 10 Kirjoittaudutaan 11 virhe: '-rc' vaatii määreen 12 virhe: '-screen' vaatii määreen 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ Web-sivu: http://www.fluxbox.org/\n\n\ -display \t\tmuuta $DISPLAY.\n\ -screen \tsuorita vain määrätyillä näytöillä.\n\ -rc \t\t\tkäytä vaihtoehtoista resurssitiedostoa.\n\ -version\t\t\ttulosta ainoastaan ohjelman versio.\n\ -info\t\t\t\tnäytä tietoja.\n\ -log \t\t\tkirjoita lokiin.\n\ -help\t\t\t\ttulosta vain tämä ohje.\n\n 14 varoitus: 'DISPLAY' ympäristömuuttujaa ei voitu asettaa $set 20 #layers 1 Telakan päällä 2 Alin 3 Työalue 4 Telakka 5 Oletus 6 Ylin fluxbox-1.3.5/nls/fi_FI/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603020067 xustar000000000000000030 mtime=1360749955.955811952 30 atime=1360750003.683811646 30 ctime=1360750008.807811614 fluxbox-1.3.5/nls/fi_FI/Makefile.in0000644000175000017500000002715412106662603016127 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/fi_FI/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/fi_FI DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = fi_FI SRC_CODESET = ISO-8859-1 DEST_CODESETS = ISO-8859-1 UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/fi_FI/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/fi_FI/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/fi_FI/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020060 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749853.807812606 30 ctime=1360750008.807811614 fluxbox-1.3.5/nls/fi_FI/Makefile.am0000644000175000017500000000301012106662425016101 0ustar00mgmg00000000000000# nls/fi_FI/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = fi_FI SRC_CODESET = ISO-8859-1 DEST_CODESETS = ISO-8859-1 UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/zh_CN0000644000175000017500000000013212106662666016003 xustar000000000000000030 mtime=1360750006.475811629 30 atime=1360750008.807811614 30 ctime=1360750008.807811614 fluxbox-1.3.5/nls/zh_CN/0000755000175000017500000000000012106662666014107 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/zh_CN/PaxHeaders.25974/generated-GBK.m0000644000175000017500000000013212106662463020570 xustar000000000000000030 mtime=1360749875.719812465 30 atime=1360749875.739812465 30 ctime=1360750008.807811614 fluxbox-1.3.5/nls/zh_CN/generated-GBK.m0000644000175000017500000001046512106662463016625 0ustar00mgmg00000000000000$ codeset=GBK $set 1 #Align 1 Ï·½¾ÓÖÐ 2 ×óÏ·½ 3 ÓÒÏ·½ 4 ˮƽ 5 ¿¿×ó 6 ×óÏ·½ 7 ×ó²à¾ÓÖÐ 8 ×óÉÏ·½ 9 À©Õ¹ 10 ¿¿ÓÒ 11 ÓÒÏ·½ 12 ÓÒ²à¾ÓÖÐ 13 ÓÒÉÏ·½ 14 ÉÏ·½¾ÓÖÐ 15 ×óÉÏ·½ 16 ×óÉÏ·½ 17 ´¹Ö± $set 2 #BaseDisplay 1 Í˳ö... ´æ´¢±ÀÀ£Îļþ\n 2 ¹Ø±Õ\n 3 %s: ²¶»ñÐźŠ%d\n $set 3 #Common 1 AlphaÖµ 2 ×Ô¶¯Òþ²Ø 3 ±àÒëʱ¼ä 4 ±àÒëÑ¡Ïî 5 ±àÒëÆ÷ 6 ±àÒëÆ÷°æ±¾ 7 ³õʼ»¯ 8 ¼ü°ó¶© 9 ±¾µØÓïÑÔÖ§³Ö 10 ²Ëµ¥ 11 Ñùʽ 12 ĬÈÏÅäÖà 13 ½ûÓà 14 ´íÎó 15 Fluxbox°æ±¾ 16 ×î´ó»¯Ê±¸Ç¹ý 17 GITÐÞ¶©°æ±¾ºÅ 18 ¿É¼û 19 ¸ÃÖ÷Ìâ䶨ÒåÈκα³¾°¡£\nÇë²Î¿¼ÊÖ²á»òÔĶÁFAQ¡£ $set 4 #Configmenu 1 ·´¾â³Ý 2 ×Ô¶¯ÌáÉý 3 µã»÷ÌáÉý 4 µã»÷¾Û½¹ 5 ×°ÊÎÁÙʱ´°¿Ú 6 Êó±ê¹öÂÖÇл»¹¤×÷Çø 7 Focus Window on Workspace Change 8 ¾Û½¹Ä£Ê½ 9 ¾Û½¹Ð´°¿Ú 10 ÍêÈ«×î´ó»¯ 11 ͼÏñ·ÂÉ« 12 ÒÆ¶¯Ê±ÏÔʾ´°¿ÚÄÚÈÝ 14 Êó±ê¾Û½¹ 15 ¹¤×÷Çø»ØÐý 16 Ç¿ÖÆÎ±Í¸Ã÷ 17 ²Ëµ¥AlphaÖµ 18 ͸Ã÷ 19 ¾Û½¹´°¿ÚAlphaÖµ 20 ·Ç¾Û½¹´°¿ÚAlphaÖµ 21 ±êǩѡÏî 22 ±êÇ©ÖÃÓÚ±êÌâÀ¸ÄÚ 23 ÍâÖñêÇ©¿í¶È 24 µã»÷¾Û½¹±êÇ© 25 Êó±ê¾Û½¹±êÇ© $set 5 #Ewmh 1 ÖÂÃü´íÎó: ÄÚ´æ²»×ã,ÎÞ·¨ÎªEWMH client list·ÖÅäÄÚ´æ $set 6 #FbTkError 1 ¾¯¸æ£¡ Height > 3200 £¬ÉèÖà Height = 3200 2 ¾¯¸æ£¡ Width > 3200 £¬ÉèÖà Width = 3200 3 ¾¯¸æ: ²»ÄܼÓÔØ±¸ÓÃ×ÖÌå 4 ·ÖÅä´íÎó¡£ 5 ´´½¨ÏñËØÓ³Éä³ö´í 6 ÎÞ·¨´´½¨XImage 7 ¶Áȡʧ°Ü 8 ¾¯¸æ£ºÎÞ·¨ÎªalphaÕÒµ½ÓÐЧ¸ñʽ¡£ 9 ¾¯¸æ£º´´½¨alphaͼƬʧ°Ü¡£ 10 ¾¯¸æ£º´´½¨alphaÏñËØÓ³Éäʧ°Ü¡£ 11 ²éÕÒÆÁÄ»¸ñʽʧ°Ü(%d) 12 ÄÚ´æ²»×ã 13 ÄÚ´æ²»×㣬ÎÞ·¨·ÖÅ䏸blue buffer¡£ 14 ÄÚ´æ²»×㣬ÎÞ·¨·ÖÅ䏸green buffer¡£ 15 ÄÚ´æ²»×㣬ÎÞ·¨·ÖÅ䏸red buffer¡£ 16 ¶ÁÈ¡Ö÷ÌâÏîĿʧ°Ü 17 ²»Ö§³ÖͼÏñģʽ 18 ÉèÖÃĬÈÏÖµ $set 7 #Fluxbox 1 ÎÞЧµÄrcÎļþÃû! 2 ¼ÓÔØ×éÎļþʧ°Ü 3 ¼ÓÔØÊý¾Ý¿âʧ°Ü 4 Retrying with 5 ¾¯¸æ£¡ÎÞ·¨ÕÒµ½ÆÁÄ»À´»æÖÆ´°¿Ú£¡ 6 ÎÞ·¨´´½¨ %s Ŀ¼ 7 ÎÞ·¨ÕÒµ½ÐèÒª¿ØÖÆµÄÆÁÄ»¡£\nÇëÈ·±£Ã»ÓÐÆäËû´°¿Ú¹ÜÀíÆ÷ÕýÔÚÔËÐС£ 8 Óï·¨¹æÔò½âÎö´íÎó 9 ÖÂÃü´íÎó£¡fluxboxÀàÖ»ÄÜÓÐÒ»¸öʵÀý¡£ 10 ÎÞ·¨Á¬½ÓX server¡£\nÇëÈ·±£Ä㿪ÆôFluxbox֮ǰ¿ªÆôÁËX¡£ 11 ¾¯¸æ£ºX server²»Ö§³Ölocale 12 ¾¯¸æ£ºÎÞ·¨ÉèÖÃlocale modifiers $set 8 #Gnome 1 ´íÎó: ÄÚ´æ²»×ã, ÎÞ·¨ÎªGNOME client list·ÖÅäÄÚ´æ $set 9 #Keys 1 Keys: Error on line 2 Keys: Failed to merge keytree! 3 Keys: Invalid key/modifier on line $set 10 #Menu 1 ÅäÖà 2 FluxboxĬÈϲ˵¥ 3 Í˳ö 4 ͼ±ê 5 ²ã´Î... 6 λÓÚ¼àÊÓÆ÷... 7 λÖà 8 ÖØÐ¼ÓÔØÅäÖÃÎļþ 9 ÖØÆôFluxbox 10 ¾¯¸æ£º[encoding]±êÇ©²»¶Ô³Æ $set 11 #Remember 1 ×°ÊÎ 2 ³ß´ç 3 ÌøÖÁ¹¤×÷Çø 4 ²ã 5 ¼Çס... 6 λÖà 7 ¹Ø±Õʱ±£´æ 8 ¾íÆð 9 ճס 10 δ֪°´¼ü 11 ¹¤×÷Çø 12 ¼àÊÓÆ÷ $set 12 #Screen 1 BScreen::BScreen: ѯÎÊX serverʱ·¢Éú´íÎó.\n ÁíÍâÒ»¸ö´°¿Ú¹ÜÀíÆ÷ÕýÔËÐÐ,displayΪ 2 W: %4d x H: %4d 3 BScreen::BScreen: ¿ØÖÆÆÁÄ» %d ʹÓÃͼÏñģʽ 0x%lx, É«²ÊÉî¶È %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Clients 2 Ͼí 3 ÉϾí 4 Slit·½Ïò 5 Slit²ã´Î 6 SlitλÓÚ¼àÊÓÆ÷ 7 SlitλÖà 8 Slit 9 ±£´æSlitÁбí $set 14 #Toolbar 1 ÖØÃüÃûµ±Ç°¹¤×÷Çø 2 ͼ±êÀ¸Ä£Ê½ 3 ËùÓд°¿Ú 4 ËùÓÐ×îС»¯µÄ´°¿Ú 5 ÎÞ 6 µ±Ç°¹¤×÷ÇøËùÓд°¿Ú 7 µ±Ç°¹¤×÷ÇøËùÓÐ×îС»¯µÄ´°¿Ú 8 ¹¤¾ßÀ¸²ã´Î 9 ¹¤¾ßÀ¸Î»ÓÚ¼àÊÓÆ÷ 10 ¹¤¾ßÀ¸Î»Öà 11 ¹¤¾ßÀ¸ 12 ¹¤¾ßÀ¸¿í¶È°Ù·Ö±È 13 ʱÖÓ£º24Сʱ¸ñʽ 14 ʱÖÓ£º12Сʱ¸ñʽ 15 ±à¼­Ê±¼äÏÔʾ¸ñʽ 16 ÏÔʾͼ±ê 17 ËùÓÐδ×îС»¯µÄ´°¿Ú 18 µ±Ç°¹¤×÷ÇøËùÓÐδ×îС»¯µÄ´°¿Ú $set 15 #Window 1 δÃüÃû $set 16 #Windowmenu 1 ¹Ø±Õ 2 ×îС»¯ 3 ²ã´Î 4 ½µµÍ 5 ×î´ó»¯ 6 ÌáÉý 7 ·¢Ë͵½... 8 ¾íÆð 9 ճס 10 ɱËÀ $set 17 #Workspace 1 ¹¤×÷Çø %d 2 ¹¤×÷Çø 3 н¨¹¤×÷Çø 4 ÒÆ³ý×îºóÒ»¸ö¹¤×÷Çø $set 18 #fbsetroot 1 ´íÎó: ±ØÐëÖ¸¶¨: -solid, -mod, -gradient Èý¸ö²ÎÊýÖеÄÒ»¸ö.\n 2 ÎÞ·¨´´½¨pixmap atoms£¬·ÅÆú£¡ 3 -display display connection\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient gradient texture\n\ -from gradient start color\n\ -to gradient end color\n\n\ -solid solid color\n\n\ -help ÏÔʾ°ïÖúÐÅÏ¢\n $set 19 #main 1 ´íÎó: '-display'ÐèÒªÒ»¸ö²ÎÊý 2 Bad Alloc 3 Bad cast 4 ³¬³öÏÔʾ·¶Î§ 5 ÔËÐÐʱ´íÎó 6 ±ê×¼ÀýÍâ 7 δ֪´íÎó 8 ´íÎó: '-log'ÐèÒªÒ»¸ö²ÎÊý 9 ÈÕÖ¾Îļþ 10 ¼Ç¼ÈÕÖ¾µ½ 11 ´íÎó: '-rc'ÐèÒªÒ»¸ö²ÎÊý 12 ´íÎó: '-screen'ÐèÒªÒ»¸ö²ÎÊý 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ Ö÷Ò³: http://www.fluxbox.org/\n\n\ -display \t\tÖ¸¶¨displayÁ¬½Ó¡£\n\ -screen \tÔÚÌØ¶¨µÄÆÁÄ»ÉÏÏÔʾ¡£\n\ -rc \t\t\tʹÓÃÖ¸¶¨µÄ×ÊÔ´Îļþ¡£\n\ -version\t\t\tÏÔʾ°æ±¾ºÅÈ»ºóÍ˳ö¡£\n\ -info\t\t\t\tÏÔʾһЩÓÐÓõÄÐÅÏ¢¡£\n\ -log \t\t\t½«Êä³ö¼Ç¼µ½ÎļþÖС£\n\ -help\t\t\t\tÏÔʾÕâÔò°ïÖúÐÅϢȻºóÍ˳ö¡£\n\n 14 ¾¯¸æ: ÎÞ·¨ÉèÖû·¾³±äÁ¿'DISPLAY' $set 20 1 ÔÚDockÖ®ÉÏ 2 µ×²¿ 3 ×ÀÃæ 4 Dock 5 ÆÕͨ 6 ¶¥²¿ fluxbox-1.3.5/nls/zh_CN/PaxHeaders.25974/generated-GB18030.m0000644000175000017500000000013212106662463021051 xustar000000000000000030 mtime=1360749875.715812465 30 atime=1360749875.735812465 30 ctime=1360750008.811811614 fluxbox-1.3.5/nls/zh_CN/generated-GB18030.m0000644000175000017500000001047112106662463017103 0ustar00mgmg00000000000000$ codeset=GB18030 $set 1 #Align 1 Ï·½¾ÓÖÐ 2 ×óÏ·½ 3 ÓÒÏ·½ 4 ˮƽ 5 ¿¿×ó 6 ×óÏ·½ 7 ×ó²à¾ÓÖÐ 8 ×óÉÏ·½ 9 À©Õ¹ 10 ¿¿ÓÒ 11 ÓÒÏ·½ 12 ÓÒ²à¾ÓÖÐ 13 ÓÒÉÏ·½ 14 ÉÏ·½¾ÓÖÐ 15 ×óÉÏ·½ 16 ×óÉÏ·½ 17 ´¹Ö± $set 2 #BaseDisplay 1 Í˳ö... ´æ´¢±ÀÀ£Îļþ\n 2 ¹Ø±Õ\n 3 %s: ²¶»ñÐźŠ%d\n $set 3 #Common 1 AlphaÖµ 2 ×Ô¶¯Òþ²Ø 3 ±àÒëʱ¼ä 4 ±àÒëÑ¡Ïî 5 ±àÒëÆ÷ 6 ±àÒëÆ÷°æ±¾ 7 ³õʼ»¯ 8 ¼ü°ó¶© 9 ±¾µØÓïÑÔÖ§³Ö 10 ²Ëµ¥ 11 Ñùʽ 12 ĬÈÏÅäÖà 13 ½ûÓà 14 ´íÎó 15 Fluxbox°æ±¾ 16 ×î´ó»¯Ê±¸Ç¹ý 17 GITÐÞ¶©°æ±¾ºÅ 18 ¿É¼û 19 ¸ÃÖ÷Ìâ䶨ÒåÈκα³¾°¡£\nÇë²Î¿¼ÊÖ²á»òÔĶÁFAQ¡£ $set 4 #Configmenu 1 ·´¾â³Ý 2 ×Ô¶¯ÌáÉý 3 µã»÷ÌáÉý 4 µã»÷¾Û½¹ 5 ×°ÊÎÁÙʱ´°¿Ú 6 Êó±ê¹öÂÖÇл»¹¤×÷Çø 7 Focus Window on Workspace Change 8 ¾Û½¹Ä£Ê½ 9 ¾Û½¹Ð´°¿Ú 10 ÍêÈ«×î´ó»¯ 11 ͼÏñ·ÂÉ« 12 ÒÆ¶¯Ê±ÏÔʾ´°¿ÚÄÚÈÝ 14 Êó±ê¾Û½¹ 15 ¹¤×÷Çø»ØÐý 16 Ç¿ÖÆÎ±Í¸Ã÷ 17 ²Ëµ¥AlphaÖµ 18 ͸Ã÷ 19 ¾Û½¹´°¿ÚAlphaÖµ 20 ·Ç¾Û½¹´°¿ÚAlphaÖµ 21 ±êǩѡÏî 22 ±êÇ©ÖÃÓÚ±êÌâÀ¸ÄÚ 23 ÍâÖñêÇ©¿í¶È 24 µã»÷¾Û½¹±êÇ© 25 Êó±ê¾Û½¹±êÇ© $set 5 #Ewmh 1 ÖÂÃü´íÎó: ÄÚ´æ²»×ã,ÎÞ·¨ÎªEWMH client list·ÖÅäÄÚ´æ $set 6 #FbTkError 1 ¾¯¸æ£¡ Height > 3200 £¬ÉèÖà Height = 3200 2 ¾¯¸æ£¡ Width > 3200 £¬ÉèÖà Width = 3200 3 ¾¯¸æ: ²»ÄܼÓÔØ±¸ÓÃ×ÖÌå 4 ·ÖÅä´íÎó¡£ 5 ´´½¨ÏñËØÓ³Éä³ö´í 6 ÎÞ·¨´´½¨XImage 7 ¶Áȡʧ°Ü 8 ¾¯¸æ£ºÎÞ·¨ÎªalphaÕÒµ½ÓÐЧ¸ñʽ¡£ 9 ¾¯¸æ£º´´½¨alphaͼƬʧ°Ü¡£ 10 ¾¯¸æ£º´´½¨alphaÏñËØÓ³Éäʧ°Ü¡£ 11 ²éÕÒÆÁÄ»¸ñʽʧ°Ü(%d) 12 ÄÚ´æ²»×ã 13 ÄÚ´æ²»×㣬ÎÞ·¨·ÖÅ䏸blue buffer¡£ 14 ÄÚ´æ²»×㣬ÎÞ·¨·ÖÅ䏸green buffer¡£ 15 ÄÚ´æ²»×㣬ÎÞ·¨·ÖÅ䏸red buffer¡£ 16 ¶ÁÈ¡Ö÷ÌâÏîĿʧ°Ü 17 ²»Ö§³ÖͼÏñģʽ 18 ÉèÖÃĬÈÏÖµ $set 7 #Fluxbox 1 ÎÞЧµÄrcÎļþÃû! 2 ¼ÓÔØ×éÎļþʧ°Ü 3 ¼ÓÔØÊý¾Ý¿âʧ°Ü 4 Retrying with 5 ¾¯¸æ£¡ÎÞ·¨ÕÒµ½ÆÁÄ»À´»æÖÆ´°¿Ú£¡ 6 ÎÞ·¨´´½¨ %s Ŀ¼ 7 ÎÞ·¨ÕÒµ½ÐèÒª¿ØÖÆµÄÆÁÄ»¡£\nÇëÈ·±£Ã»ÓÐÆäËû´°¿Ú¹ÜÀíÆ÷ÕýÔÚÔËÐС£ 8 Óï·¨¹æÔò½âÎö´íÎó 9 ÖÂÃü´íÎó£¡fluxboxÀàÖ»ÄÜÓÐÒ»¸öʵÀý¡£ 10 ÎÞ·¨Á¬½ÓX server¡£\nÇëÈ·±£Ä㿪ÆôFluxbox֮ǰ¿ªÆôÁËX¡£ 11 ¾¯¸æ£ºX server²»Ö§³Ölocale 12 ¾¯¸æ£ºÎÞ·¨ÉèÖÃlocale modifiers $set 8 #Gnome 1 ´íÎó: ÄÚ´æ²»×ã, ÎÞ·¨ÎªGNOME client list·ÖÅäÄÚ´æ $set 9 #Keys 1 Keys: Error on line 2 Keys: Failed to merge keytree! 3 Keys: Invalid key/modifier on line $set 10 #Menu 1 ÅäÖà 2 FluxboxĬÈϲ˵¥ 3 Í˳ö 4 ͼ±ê 5 ²ã´Î... 6 λÓÚ¼àÊÓÆ÷... 7 λÖà 8 ÖØÐ¼ÓÔØÅäÖÃÎļþ 9 ÖØÆôFluxbox 10 ¾¯¸æ£º[encoding]±êÇ©²»¶Ô³Æ $set 11 #Remember 1 ×°ÊÎ 2 ³ß´ç 3 ÌøÖÁ¹¤×÷Çø 4 ²ã 5 ¼Çס... 6 λÖà 7 ¹Ø±Õʱ±£´æ 8 ¾íÆð 9 ճס 10 δ֪°´¼ü 11 ¹¤×÷Çø 12 ¼àÊÓÆ÷ $set 12 #Screen 1 BScreen::BScreen: ѯÎÊX serverʱ·¢Éú´íÎó.\n ÁíÍâÒ»¸ö´°¿Ú¹ÜÀíÆ÷ÕýÔËÐÐ,displayΪ 2 W: %4d x H: %4d 3 BScreen::BScreen: ¿ØÖÆÆÁÄ» %d ʹÓÃͼÏñģʽ 0x%lx, É«²ÊÉî¶È %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Clients 2 Ͼí 3 ÉϾí 4 Slit·½Ïò 5 Slit²ã´Î 6 SlitλÓÚ¼àÊÓÆ÷ 7 SlitλÖà 8 Slit 9 ±£´æSlitÁбí $set 14 #Toolbar 1 ÖØÃüÃûµ±Ç°¹¤×÷Çø 2 ͼ±êÀ¸Ä£Ê½ 3 ËùÓд°¿Ú 4 ËùÓÐ×îС»¯µÄ´°¿Ú 5 ÎÞ 6 µ±Ç°¹¤×÷ÇøËùÓд°¿Ú 7 µ±Ç°¹¤×÷ÇøËùÓÐ×îС»¯µÄ´°¿Ú 8 ¹¤¾ßÀ¸²ã´Î 9 ¹¤¾ßÀ¸Î»ÓÚ¼àÊÓÆ÷ 10 ¹¤¾ßÀ¸Î»Öà 11 ¹¤¾ßÀ¸ 12 ¹¤¾ßÀ¸¿í¶È°Ù·Ö±È 13 ʱÖÓ£º24Сʱ¸ñʽ 14 ʱÖÓ£º12Сʱ¸ñʽ 15 ±à¼­Ê±¼äÏÔʾ¸ñʽ 16 ÏÔʾͼ±ê 17 ËùÓÐδ×îС»¯µÄ´°¿Ú 18 µ±Ç°¹¤×÷ÇøËùÓÐδ×îС»¯µÄ´°¿Ú $set 15 #Window 1 δÃüÃû $set 16 #Windowmenu 1 ¹Ø±Õ 2 ×îС»¯ 3 ²ã´Î 4 ½µµÍ 5 ×î´ó»¯ 6 ÌáÉý 7 ·¢Ë͵½... 8 ¾íÆð 9 ճס 10 ɱËÀ $set 17 #Workspace 1 ¹¤×÷Çø %d 2 ¹¤×÷Çø 3 н¨¹¤×÷Çø 4 ÒÆ³ý×îºóÒ»¸ö¹¤×÷Çø $set 18 #fbsetroot 1 ´íÎó: ±ØÐëÖ¸¶¨: -solid, -mod, -gradient Èý¸ö²ÎÊýÖеÄÒ»¸ö.\n 2 ÎÞ·¨´´½¨pixmap atoms£¬·ÅÆú£¡ 3 -display display connection\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient gradient texture\n\ -from gradient start color\n\ -to gradient end color\n\n\ -solid solid color\n\n\ -help ÏÔʾ°ïÖúÐÅÏ¢\n $set 19 #main 1 ´íÎó: '-display'ÐèÒªÒ»¸ö²ÎÊý 2 Bad Alloc 3 Bad cast 4 ³¬³öÏÔʾ·¶Î§ 5 ÔËÐÐʱ´íÎó 6 ±ê×¼ÀýÍâ 7 δ֪´íÎó 8 ´íÎó: '-log'ÐèÒªÒ»¸ö²ÎÊý 9 ÈÕÖ¾Îļþ 10 ¼Ç¼ÈÕÖ¾µ½ 11 ´íÎó: '-rc'ÐèÒªÒ»¸ö²ÎÊý 12 ´íÎó: '-screen'ÐèÒªÒ»¸ö²ÎÊý 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ Ö÷Ò³: http://www.fluxbox.org/\n\n\ -display \t\tÖ¸¶¨displayÁ¬½Ó¡£\n\ -screen \tÔÚÌØ¶¨µÄÆÁÄ»ÉÏÏÔʾ¡£\n\ -rc \t\t\tʹÓÃÖ¸¶¨µÄ×ÊÔ´Îļþ¡£\n\ -version\t\t\tÏÔʾ°æ±¾ºÅÈ»ºóÍ˳ö¡£\n\ -info\t\t\t\tÏÔʾһЩÓÐÓõÄÐÅÏ¢¡£\n\ -log \t\t\t½«Êä³ö¼Ç¼µ½ÎļþÖС£\n\ -help\t\t\t\tÏÔʾÕâÔò°ïÖúÐÅϢȻºóÍ˳ö¡£\n\n 14 ¾¯¸æ: ÎÞ·¨ÉèÖû·¾³±äÁ¿'DISPLAY' $set 20 1 ÔÚDockÖ®ÉÏ 2 µ×²¿ 3 ×ÀÃæ 4 Dock 5 ÆÕͨ 6 ¶¥²¿ fluxbox-1.3.5/nls/zh_CN/PaxHeaders.25974/generated-BIG5.m0000644000175000017500000000013212106662463020653 xustar000000000000000030 mtime=1360749875.711812465 30 atime=1360749875.735812465 30 ctime=1360750008.811811614 fluxbox-1.3.5/nls/zh_CN/generated-BIG5.m0000644000175000017500000000725612106662463016714 0ustar00mgmg00000000000000$ codeset=BIG5 $set 1 #Align 1 ¤U¤è©~¤¤ 2 ¥ª¤U¤è 3 ¥k¤U¤è 4 ¤ô¥­ 5 ¾a¥ª 6 ¥ª¤U¤è 7 ¥ª©~¤¤ 8 ¥ª¤W¤è 9 ®i 10 ¾a¥k 11 ¥k¤U¤è 12 ¥k©~¤¤ 13 ¥k¤W¤è 14 ¤W¤è©~¤¤ 15 ¥ª¤W¤è 16 ¥ª¤W¤è 17 ««ª½ $set 2 #BaseDisplay 1 °h¥X... ¦s±Y¤å¥ó\n 2 \n 3 %s: ®·«H %d\n $set 3 #Common 1 Alpha­È 2 ¦ÛÂà 3 4 5 ¾¹ 6 ¾¹ª©¥» 7 ªì©l¤Æ 8 9 ¥»¦a¨¥¤ä«ù 10 µæ 11 ¦¡ 12 Àq°t¸m 13 ¸T¥Î 14 15 Fluxboxª©¥» 16 ³Ì¤j¤Æ 17 GIT­×ª©¥» 18 ¥i 19 ¥D¥¼©w¥ô¦ó­I´º¡C\n¦Ò¤â©ÎFAQ¡C $set 4 #Configmenu 1 ¤Ï 2 ¦Û´£¤É 3 ´£¤É 4 »EµJ 5 µ¡¤f 6 ¹«¤Á¤u§@ 7 Focus Window on Workspace Change 8 »EµJ¼Ò¦¡ 9 »EµJ·sµ¡¤f 10 §¹¥þ³Ì¤j¤Æ 11 ¹³¥é¦â 12 ²¾¥Üµ¡¤f®e 14 ¹«»EµJ 15 ¤u§@¦^±Û 16 ¨î³z©ú 17 µæAlpha­È 18 ³z©ú 19 »EµJµ¡¤fAlpha­È 20 «D»EµJµ¡¤fAlpha­È 21 22 ¸m¤_ 23 ¥~¸m«× 24 »EµJ 25 ¹«»EµJ $set 5 #Ewmh 1 ­P©R: ¦s¤£¨¬,ªkEWMH client list¤À°t¦s $set 6 #FbTkError 1 ĵ§i¡I Height > 3200 ¡A¸m Height = 3200 2 ĵ§i¡I Width > 3200 ¡A¸m Width = 3200 3 ĵ§i: ¤£¯à¥[¥Î¦rÊ^ 4 ¤À°t¡C 5 «Ø¹³¯À¬M®g¥X 6 ªk«ØXImage 7 ¨ú¥¢ 8 ĵ§i¡Gªkalpha§ä¨ì¦³®Ä®æ¦¡¡C 9 ĵ§i¡G«Øalpha¤ù¥¢¡C 10 ĵ§i¡G«Øalpha¹³¯À¬M®g¥¢¡C 11 ¬d§ä«Ì¹õ®æ¦¡¥¢(%d) 12 ¦s¤£¨¬ 13 ¦s¤£¨¬¡Aªk¤À°tblue buffer¡C 14 ¦s¤£¨¬¡Aªk¤À°tgreen buffer¡C 15 ¦s¤£¨¬¡Aªk¤À°tred buffer¡C 16 ¨ú¥D¥Ø¥¢ 17 ¤£¤ä«ù¹³¼Ò¦¡ 18 ¸mÀq­È $set 7 #Fluxbox 1 ®Äªºrc¤å¥ó¦W! 2 ¥[¤å¥ó¥¢ 3 ¥[Õu¥¢ 4 Retrying with 5 ĵ§i¡Iªk§ä¨ì«Ì¹õ¨îµ¡¤f¡I 6 ªk«Ø %s ¥Ø 7 ªk§ä¨ì»Ý­n±±¨îªº«Ì¹õ¡C\nÚÌ«O¦³¨ä¥Lµ¡¤fºÞ²z¾¹¥¿¦b¦æ¡C 8 ªk¸ÑªR 9 ­P©R¡Ifluxbox¥u¯à¦³¤@¨Ò¡C 10 ªk±µX server¡C\nÚÌ«O§AFluxbox¤§«e¤FX¡C 11 ĵ§i¡GX server¤£¤ä«ùlocale 12 ĵ§i¡Gªk¸mlocale modifiers $set 8 #Gnome 1 : ¦s¤£¨¬, ªkGNOME client list¤À°t¦s $set 9 #Keys 1 Keys: Error on line 2 Keys: Failed to merge keytree! 3 Keys: Invalid key/modifier on line $set 10 #Menu 1 °t¸m 2 FluxboxÀqµæ 3 °h¥X 4 5 ¦¸... 6 ¦ì¤_¾¹... 7 ¦ì¸m 8 ­«·s¥[°t¸m¤å¥ó 9 ­«Fluxbox 10 ĵ§i¡G[encoding]¤£ $set 11 #Remember 1 2 ¤Ø¤o 3 ¸õ¦Ü¤u§@ 4 5 ¦í... 6 ¦ì¸m 7 «O¦s 8 ¨÷°_ 9 Öߦí 10 ¥¼ª¾«ö 11 ¤u§@ 12 ¾¹ $set 12 #Screen 1 BScreen::BScreen: X server¥Í.\n ¥t¥~¤@µ¡¤fºÞ²z¾¹¥¿¦æ,display 2 W: %4d x H: %4d 3 BScreen::BScreen: ±±¨î«Ì¹õ %d ¨Ï¥Î¹³¼Ò¦¡ 0x%lx, ¦â±m²`«× %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Clients 2 ¤U¨÷ 3 ¤W¨÷ 4 Slit¤è¦V 5 Slit¦¸ 6 Slit¦ì¤_¾¹ 7 Slit¦ì¸m 8 Slit 9 «O¦sSlit¦Cªí $set 14 #Toolbar 1 ­«©R¦W«e¤u§@ 2 ¼Ò¦¡ 3 ©Ò¦³µ¡¤f 4 ©Ò¦³³Ì¤p¤Æªºµ¡¤f 5 6 «e¤u§@©Ò¦³µ¡¤f 7 «e¤u§@©Ò¦³³Ì¤p¤Æªºµ¡¤f 8 ¤u¨ã¦¸ 9 ¤u¨ã¦ì¤_¾¹ 10 ¤u¨ã¦ì¸m 11 ¤u¨ã 12 ¤u¨ã«×¦Ê¤À¤ñ 13 ¡G24¤p®æ¦¡ 14 ¡G12¤p®æ¦¡ 15 ¥Ü®æ¦¡ 16 ¥Ü 17 ©Ò¦³¥¼³Ì¤p¤Æªºµ¡¤f 18 «e¤u§@©Ò¦³¥¼³Ì¤p¤Æªºµ¡¤f $set 15 #Window 1 ¥¼©R¦W $set 16 #Windowmenu 1 2 ³Ì¤p¤Æ 3 ¦¸ 4 ­°§C 5 ³Ì¤j¤Æ 6 ´£¤É 7 °e¨ì... 8 ¨÷°_ 9 Öߦí 10 ¦º $set 17 #Workspace 1 ¤u§@ %d 2 ¤u§@ 3 ·s«Ø¤u§@ 4 ²¾°£³Ì¦Z¤@¤u§@ $set 18 #fbsetroot 1 : ¥²«ü©w: -solid, -mod, -gradient ¤T¤¤ªº¤@.\n 2 ªk«Øpixmap atoms¡A©ñ¡I 3 -display display connection\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient gradient texture\n\ -from gradient start color\n\ -to gradient end color\n\n\ -solid solid color\n\n\ -help ¥Ü§U«H®§\n $set 19 #main 1 : '-display'»Ý­n¤@ 2 Bad Alloc 3 Bad cast 4 ¶W¥X¥Ü­S 5 ¦æ 6 ­ã¨Ò¥~ 7 ¥¼ª¾ 8 : '-log'»Ý­n¤@ 9 ¤é§Ó¤å¥ó 10 ¤é§Ó¨ì 11 : '-rc'»Ý­n¤@ 12 : '-screen'»Ý­n¤@ 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ ¥D: http://www.fluxbox.org/\n\n\ -display \t\t«ü©wdisplay±µ¡C\n\ -screen \t¦b¯S©wªº«Ì¹õ¤W¥Ü¡C\n\ -rc \t\t\t¨Ï¥Î«ü©wªº·½¤å¥ó¡C\n\ -version\t\t\t¥Üª©¥»µM¦Z°h¥X¡C\n\ -info\t\t\t\t¥Ü¤@¨Ç¦³¥Îªº«H®§¡C\n\ -log \t\t\t¥X¨ì¤å¥ó¤¤¡C\n\ -help\t\t\t\t¥Ü§U«H®§µM¦Z°h¥X¡C\n\n 14 ĵ§i: ªk¸m¹Ò¶q'DISPLAY' $set 20 1 ¦bDock¤§¤W 2 ©³³¡ 3 ®à­± 4 Dock 5 ´¶³q 6 ³¡ fluxbox-1.3.5/nls/zh_CN/PaxHeaders.25974/generated-GB2312.m0000644000175000017500000000013212106662463020765 xustar000000000000000030 mtime=1360749875.707812465 30 atime=1360749875.731812465 30 ctime=1360750008.811811614 fluxbox-1.3.5/nls/zh_CN/generated-GB2312.m0000644000175000017500000001047012106662463017016 0ustar00mgmg00000000000000$ codeset=GB2312 $set 1 #Align 1 Ï·½¾ÓÖÐ 2 ×óÏ·½ 3 ÓÒÏ·½ 4 ˮƽ 5 ¿¿×ó 6 ×óÏ·½ 7 ×ó²à¾ÓÖÐ 8 ×óÉÏ·½ 9 À©Õ¹ 10 ¿¿ÓÒ 11 ÓÒÏ·½ 12 ÓÒ²à¾ÓÖÐ 13 ÓÒÉÏ·½ 14 ÉÏ·½¾ÓÖÐ 15 ×óÉÏ·½ 16 ×óÉÏ·½ 17 ´¹Ö± $set 2 #BaseDisplay 1 Í˳ö... ´æ´¢±ÀÀ£Îļþ\n 2 ¹Ø±Õ\n 3 %s: ²¶»ñÐźŠ%d\n $set 3 #Common 1 AlphaÖµ 2 ×Ô¶¯Òþ²Ø 3 ±àÒëʱ¼ä 4 ±àÒëÑ¡Ïî 5 ±àÒëÆ÷ 6 ±àÒëÆ÷°æ±¾ 7 ³õʼ»¯ 8 ¼ü°ó¶© 9 ±¾µØÓïÑÔÖ§³Ö 10 ²Ëµ¥ 11 Ñùʽ 12 ĬÈÏÅäÖà 13 ½ûÓà 14 ´íÎó 15 Fluxbox°æ±¾ 16 ×î´ó»¯Ê±¸Ç¹ý 17 GITÐÞ¶©°æ±¾ºÅ 18 ¿É¼û 19 ¸ÃÖ÷Ìâ䶨ÒåÈκα³¾°¡£\nÇë²Î¿¼ÊÖ²á»òÔĶÁFAQ¡£ $set 4 #Configmenu 1 ·´¾â³Ý 2 ×Ô¶¯ÌáÉý 3 µã»÷ÌáÉý 4 µã»÷¾Û½¹ 5 ×°ÊÎÁÙʱ´°¿Ú 6 Êó±ê¹öÂÖÇл»¹¤×÷Çø 7 Focus Window on Workspace Change 8 ¾Û½¹Ä£Ê½ 9 ¾Û½¹Ð´°¿Ú 10 ÍêÈ«×î´ó»¯ 11 ͼÏñ·ÂÉ« 12 ÒÆ¶¯Ê±ÏÔʾ´°¿ÚÄÚÈÝ 14 Êó±ê¾Û½¹ 15 ¹¤×÷Çø»ØÐý 16 Ç¿ÖÆÎ±Í¸Ã÷ 17 ²Ëµ¥AlphaÖµ 18 ͸Ã÷ 19 ¾Û½¹´°¿ÚAlphaÖµ 20 ·Ç¾Û½¹´°¿ÚAlphaÖµ 21 ±êǩѡÏî 22 ±êÇ©ÖÃÓÚ±êÌâÀ¸ÄÚ 23 ÍâÖñêÇ©¿í¶È 24 µã»÷¾Û½¹±êÇ© 25 Êó±ê¾Û½¹±êÇ© $set 5 #Ewmh 1 ÖÂÃü´íÎó: ÄÚ´æ²»×ã,ÎÞ·¨ÎªEWMH client list·ÖÅäÄÚ´æ $set 6 #FbTkError 1 ¾¯¸æ£¡ Height > 3200 £¬ÉèÖà Height = 3200 2 ¾¯¸æ£¡ Width > 3200 £¬ÉèÖà Width = 3200 3 ¾¯¸æ: ²»ÄܼÓÔØ±¸ÓÃ×ÖÌå 4 ·ÖÅä´íÎó¡£ 5 ´´½¨ÏñËØÓ³Éä³ö´í 6 ÎÞ·¨´´½¨XImage 7 ¶Áȡʧ°Ü 8 ¾¯¸æ£ºÎÞ·¨ÎªalphaÕÒµ½ÓÐЧ¸ñʽ¡£ 9 ¾¯¸æ£º´´½¨alphaͼƬʧ°Ü¡£ 10 ¾¯¸æ£º´´½¨alphaÏñËØÓ³Éäʧ°Ü¡£ 11 ²éÕÒÆÁÄ»¸ñʽʧ°Ü(%d) 12 ÄÚ´æ²»×ã 13 ÄÚ´æ²»×㣬ÎÞ·¨·ÖÅ䏸blue buffer¡£ 14 ÄÚ´æ²»×㣬ÎÞ·¨·ÖÅ䏸green buffer¡£ 15 ÄÚ´æ²»×㣬ÎÞ·¨·ÖÅ䏸red buffer¡£ 16 ¶ÁÈ¡Ö÷ÌâÏîĿʧ°Ü 17 ²»Ö§³ÖͼÏñģʽ 18 ÉèÖÃĬÈÏÖµ $set 7 #Fluxbox 1 ÎÞЧµÄrcÎļþÃû! 2 ¼ÓÔØ×éÎļþʧ°Ü 3 ¼ÓÔØÊý¾Ý¿âʧ°Ü 4 Retrying with 5 ¾¯¸æ£¡ÎÞ·¨ÕÒµ½ÆÁÄ»À´»æÖÆ´°¿Ú£¡ 6 ÎÞ·¨´´½¨ %s Ŀ¼ 7 ÎÞ·¨ÕÒµ½ÐèÒª¿ØÖÆµÄÆÁÄ»¡£\nÇëÈ·±£Ã»ÓÐÆäËû´°¿Ú¹ÜÀíÆ÷ÕýÔÚÔËÐС£ 8 Óï·¨¹æÔò½âÎö´íÎó 9 ÖÂÃü´íÎó£¡fluxboxÀàÖ»ÄÜÓÐÒ»¸öʵÀý¡£ 10 ÎÞ·¨Á¬½ÓX server¡£\nÇëÈ·±£Ä㿪ÆôFluxbox֮ǰ¿ªÆôÁËX¡£ 11 ¾¯¸æ£ºX server²»Ö§³Ölocale 12 ¾¯¸æ£ºÎÞ·¨ÉèÖÃlocale modifiers $set 8 #Gnome 1 ´íÎó: ÄÚ´æ²»×ã, ÎÞ·¨ÎªGNOME client list·ÖÅäÄÚ´æ $set 9 #Keys 1 Keys: Error on line 2 Keys: Failed to merge keytree! 3 Keys: Invalid key/modifier on line $set 10 #Menu 1 ÅäÖà 2 FluxboxĬÈϲ˵¥ 3 Í˳ö 4 ͼ±ê 5 ²ã´Î... 6 λÓÚ¼àÊÓÆ÷... 7 λÖà 8 ÖØÐ¼ÓÔØÅäÖÃÎļþ 9 ÖØÆôFluxbox 10 ¾¯¸æ£º[encoding]±êÇ©²»¶Ô³Æ $set 11 #Remember 1 ×°ÊÎ 2 ³ß´ç 3 ÌøÖÁ¹¤×÷Çø 4 ²ã 5 ¼Çס... 6 λÖà 7 ¹Ø±Õʱ±£´æ 8 ¾íÆð 9 ճס 10 δ֪°´¼ü 11 ¹¤×÷Çø 12 ¼àÊÓÆ÷ $set 12 #Screen 1 BScreen::BScreen: ѯÎÊX serverʱ·¢Éú´íÎó.\n ÁíÍâÒ»¸ö´°¿Ú¹ÜÀíÆ÷ÕýÔËÐÐ,displayΪ 2 W: %4d x H: %4d 3 BScreen::BScreen: ¿ØÖÆÆÁÄ» %d ʹÓÃͼÏñģʽ 0x%lx, É«²ÊÉî¶È %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Clients 2 Ͼí 3 ÉϾí 4 Slit·½Ïò 5 Slit²ã´Î 6 SlitλÓÚ¼àÊÓÆ÷ 7 SlitλÖà 8 Slit 9 ±£´æSlitÁбí $set 14 #Toolbar 1 ÖØÃüÃûµ±Ç°¹¤×÷Çø 2 ͼ±êÀ¸Ä£Ê½ 3 ËùÓд°¿Ú 4 ËùÓÐ×îС»¯µÄ´°¿Ú 5 ÎÞ 6 µ±Ç°¹¤×÷ÇøËùÓд°¿Ú 7 µ±Ç°¹¤×÷ÇøËùÓÐ×îС»¯µÄ´°¿Ú 8 ¹¤¾ßÀ¸²ã´Î 9 ¹¤¾ßÀ¸Î»ÓÚ¼àÊÓÆ÷ 10 ¹¤¾ßÀ¸Î»Öà 11 ¹¤¾ßÀ¸ 12 ¹¤¾ßÀ¸¿í¶È°Ù·Ö±È 13 ʱÖÓ£º24Сʱ¸ñʽ 14 ʱÖÓ£º12Сʱ¸ñʽ 15 ±à¼­Ê±¼äÏÔʾ¸ñʽ 16 ÏÔʾͼ±ê 17 ËùÓÐδ×îС»¯µÄ´°¿Ú 18 µ±Ç°¹¤×÷ÇøËùÓÐδ×îС»¯µÄ´°¿Ú $set 15 #Window 1 δÃüÃû $set 16 #Windowmenu 1 ¹Ø±Õ 2 ×îС»¯ 3 ²ã´Î 4 ½µµÍ 5 ×î´ó»¯ 6 ÌáÉý 7 ·¢Ë͵½... 8 ¾íÆð 9 ճס 10 ɱËÀ $set 17 #Workspace 1 ¹¤×÷Çø %d 2 ¹¤×÷Çø 3 н¨¹¤×÷Çø 4 ÒÆ³ý×îºóÒ»¸ö¹¤×÷Çø $set 18 #fbsetroot 1 ´íÎó: ±ØÐëÖ¸¶¨: -solid, -mod, -gradient Èý¸ö²ÎÊýÖеÄÒ»¸ö.\n 2 ÎÞ·¨´´½¨pixmap atoms£¬·ÅÆú£¡ 3 -display display connection\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient gradient texture\n\ -from gradient start color\n\ -to gradient end color\n\n\ -solid solid color\n\n\ -help ÏÔʾ°ïÖúÐÅÏ¢\n $set 19 #main 1 ´íÎó: '-display'ÐèÒªÒ»¸ö²ÎÊý 2 Bad Alloc 3 Bad cast 4 ³¬³öÏÔʾ·¶Î§ 5 ÔËÐÐʱ´íÎó 6 ±ê×¼ÀýÍâ 7 δ֪´íÎó 8 ´íÎó: '-log'ÐèÒªÒ»¸ö²ÎÊý 9 ÈÕÖ¾Îļþ 10 ¼Ç¼ÈÕÖ¾µ½ 11 ´íÎó: '-rc'ÐèÒªÒ»¸ö²ÎÊý 12 ´íÎó: '-screen'ÐèÒªÒ»¸ö²ÎÊý 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ Ö÷Ò³: http://www.fluxbox.org/\n\n\ -display \t\tÖ¸¶¨displayÁ¬½Ó¡£\n\ -screen \tÔÚÌØ¶¨µÄÆÁÄ»ÉÏÏÔʾ¡£\n\ -rc \t\t\tʹÓÃÖ¸¶¨µÄ×ÊÔ´Îļþ¡£\n\ -version\t\t\tÏÔʾ°æ±¾ºÅÈ»ºóÍ˳ö¡£\n\ -info\t\t\t\tÏÔʾһЩÓÐÓõÄÐÅÏ¢¡£\n\ -log \t\t\t½«Êä³ö¼Ç¼µ½ÎļþÖС£\n\ -help\t\t\t\tÏÔʾÕâÔò°ïÖúÐÅϢȻºóÍ˳ö¡£\n\n 14 ¾¯¸æ: ÎÞ·¨ÉèÖû·¾³±äÁ¿'DISPLAY' $set 20 1 ÔÚDockÖ®ÉÏ 2 µ×²¿ 3 ×ÀÃæ 4 Dock 5 ÆÕͨ 6 ¶¥²¿ fluxbox-1.3.5/nls/zh_CN/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662463020770 xustar000000000000000030 mtime=1360749875.703812466 30 atime=1360749875.731812465 30 ctime=1360750008.811811614 fluxbox-1.3.5/nls/zh_CN/generated-UTF-8.m0000644000175000017500000001247312106662463017026 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 下方居中 2 左下方 3 å³ä¸‹æ–¹ 4 æ°´å¹³ 5 é å·¦ 6 左下方 7 左侧居中 8 左上方 9 扩展 10 é å³ 11 å³ä¸‹æ–¹ 12 å³ä¾§å±…中 13 å³ä¸Šæ–¹ 14 上方居中 15 左上方 16 左上方 17 垂直 $set 2 #BaseDisplay 1 退出... 存储崩溃文件\n 2 关闭\n 3 %s: æ•èŽ·ä¿¡å· %d\n $set 3 #Common 1 Alpha值 2 自动éšè— 3 编译时间 4 编译选项 5 编译器 6 编译器版本 7 åˆå§‹åŒ– 8 键绑订 9 æœ¬åœ°è¯­è¨€æ”¯æŒ 10 èœå• 11 æ ·å¼ 12 默认é…ç½® 13 ç¦ç”¨ 14 错误 15 Fluxbox版本 16 最大化时盖过 17 GITä¿®è®¢ç‰ˆæœ¬å· 18 å¯è§ 19 该主题未定义任何背景。\n请å‚考手册或阅读FAQ。 $set 4 #Configmenu 1 å锯齿 2 自动æå‡ 3 点击æå‡ 4 点击èšç„¦ 5 è£…é¥°ä¸´æ—¶çª—å£ 6 鼠标滚轮切æ¢å·¥ä½œåŒº 7 Focus Window on Workspace Change 8 èšç„¦æ¨¡å¼ 9 èšç„¦æ–°çª—å£ 10 完全最大化 11 图åƒä»¿è‰² 12 移动时显示窗å£å†…容 14 é¼ æ ‡èšç„¦ 15 工作区回旋 16 å¼ºåˆ¶ä¼ªé€æ˜Ž 17 èœå•Alpha值 18 逿˜Ž 19 èšç„¦çª—å£Alpha值 20 éžèšç„¦çª—å£Alpha值 21 标签选项 22 标签置于标题æ å†… 23 外置标签宽度 24 点击èšç„¦æ ‡ç­¾ 25 é¼ æ ‡èšç„¦æ ‡ç­¾ $set 5 #Ewmh 1 致命错误: 内存ä¸è¶³,无法为EWMH client list分é…内存 $set 6 #FbTkError 1 è­¦å‘Šï¼ Height > 3200 ,设置 Height = 3200 2 è­¦å‘Šï¼ Width > 3200 ,设置 Width = 3200 3 警告: ä¸èƒ½åŠ è½½å¤‡ç”¨å­—ä½“ 4 分é…错误。 5 创建åƒç´ æ˜ å°„出错 6 无法创建XImage 7 读å–失败 8 警告:无法为alpha找到有效格å¼ã€‚ 9 警告:创建alpha图片失败。 10 警告:创建alphaåƒç´ æ˜ å°„失败。 11 查找å±å¹•æ ¼å¼å¤±è´¥(%d) 12 内存ä¸è¶³ 13 内存ä¸è¶³ï¼Œæ— æ³•分é…ç»™blue buffer。 14 内存ä¸è¶³ï¼Œæ— æ³•分é…ç»™green buffer。 15 内存ä¸è¶³ï¼Œæ— æ³•分é…ç»™red buffer。 16 读å–主题项目失败 17 䏿”¯æŒå›¾åƒæ¨¡å¼ 18 设置默认值 $set 7 #Fluxbox 1 无效的rc文件å! 2 加载组文件失败 3 加载数æ®åº“失败 4 Retrying with 5 è­¦å‘Šï¼æ— æ³•找到å±å¹•æ¥ç»˜åˆ¶çª—å£ï¼ 6 无法创建 %s 目录 7 æ— æ³•æ‰¾åˆ°éœ€è¦æŽ§åˆ¶çš„å±å¹•。\nè¯·ç¡®ä¿æ²¡æœ‰å…¶ä»–窗å£ç®¡ç†å™¨æ­£åœ¨è¿è¡Œã€‚ 8 语法规则解æžé”™è¯¯ 9 致命错误ï¼fluxboxç±»åªèƒ½æœ‰ä¸€ä¸ªå®žä¾‹ã€‚ 10 无法连接X server。\n请确ä¿ä½ å¼€å¯Fluxbox之å‰å¼€å¯äº†X。 11 警告:X server䏿”¯æŒlocale 12 警告:无法设置locale modifiers $set 8 #Gnome 1 错误: 内存ä¸è¶³, 无法为GNOME client list分é…内存 $set 9 #Keys 1 Keys: Error on line 2 Keys: Failed to merge keytree! 3 Keys: Invalid key/modifier on line $set 10 #Menu 1 é…ç½® 2 Fluxbox默认èœå• 3 退出 4 图标 5 层次... 6 ä½äºŽç›‘视器... 7 ä½ç½® 8 釿–°åŠ è½½é…置文件 9 é‡å¯Fluxbox 10 警告:[encoding]标签ä¸å¯¹ç§° $set 11 #Remember 1 装饰 2 尺寸 3 跳至工作区 4 层 5 è®°ä½... 6 ä½ç½® 7 关闭时ä¿å­˜ 8 å·èµ· 9 ç²˜ä½ 10 未知按键 11 工作区 12 监视器 $set 12 #Screen 1 BScreen::BScreen: 询问X serveræ—¶å‘生错误.\n å¦å¤–一个窗å£ç®¡ç†å™¨æ­£è¿è¡Œ,display为 2 W: %4d x H: %4d 3 BScreen::BScreen: 控制å±å¹• %d ä½¿ç”¨å›¾åƒæ¨¡å¼ 0x%lx, 色彩深度 %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Clients 2 ä¸‹å· 3 ä¸Šå· 4 Slitæ–¹å‘ 5 Slit层次 6 Slitä½äºŽç›‘视器 7 Slitä½ç½® 8 Slit 9 ä¿å­˜Slit列表 $set 14 #Toolbar 1 é‡å‘½å当å‰å·¥ä½œåŒº 2 å›¾æ ‡æ æ¨¡å¼ 3 æ‰€æœ‰çª—å£ 4 所有最å°åŒ–çš„çª—å£ 5 æ—  6 当å‰å·¥ä½œåŒºæ‰€æœ‰çª—å£ 7 当å‰å·¥ä½œåŒºæ‰€æœ‰æœ€å°åŒ–çš„çª—å£ 8 工具æ å±‚次 9 工具æ ä½äºŽç›‘视器 10 工具æ ä½ç½® 11 å·¥å…·æ  12 工具æ å®½åº¦ç™¾åˆ†æ¯” 13 时钟:24å°æ—¶æ ¼å¼ 14 时钟:12å°æ—¶æ ¼å¼ 15 ç¼–è¾‘æ—¶é—´æ˜¾ç¤ºæ ¼å¼ 16 显示图标 17 所有未最å°åŒ–çš„çª—å£ 18 当å‰å·¥ä½œåŒºæ‰€æœ‰æœªæœ€å°åŒ–çš„çª—å£ $set 15 #Window 1 未命å $set 16 #Windowmenu 1 关闭 2 最å°åŒ– 3 层次 4 é™ä½Ž 5 最大化 6 æå‡ 7 å‘é€åˆ°... 8 å·èµ· 9 ç²˜ä½ 10 æ€æ­» $set 17 #Workspace 1 工作区 %d 2 工作区 3 新建工作区 4 移除最åŽä¸€ä¸ªå·¥ä½œåŒº $set 18 #fbsetroot 1 错误: 必须指定: -solid, -mod, -gradient ä¸‰ä¸ªå‚æ•°ä¸­çš„一个.\n 2 无法创建pixmap atomsï¼Œæ”¾å¼ƒï¼ 3 -display display connection\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient gradient texture\n\ -from gradient start color\n\ -to gradient end color\n\n\ -solid solid color\n\n\ -help 显示帮助信æ¯\n $set 19 #main 1 错误: '-display'需è¦ä¸€ä¸ªå‚æ•° 2 Bad Alloc 3 Bad cast 4 超出显示范围 5 è¿è¡Œæ—¶é”™è¯¯ 6 标准例外 7 未知错误 8 错误: '-log'需è¦ä¸€ä¸ªå‚æ•° 9 日志文件 10 记录日志到 11 错误: '-rc'需è¦ä¸€ä¸ªå‚æ•° 12 错误: '-screen'需è¦ä¸€ä¸ªå‚æ•° 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ 主页: http://www.fluxbox.org/\n\n\ -display \t\t指定display连接。\n\ -screen \t在特定的å±å¹•上显示。\n\ -rc \t\t\tä½¿ç”¨æŒ‡å®šçš„èµ„æºæ–‡ä»¶ã€‚\n\ -version\t\t\t显示版本å·ç„¶åŽé€€å‡ºã€‚\n\ -info\t\t\t\t显示一些有用的信æ¯ã€‚\n\ -log \t\t\t将输出记录到文件中。\n\ -help\t\t\t\t显示这则帮助信æ¯ç„¶åŽé€€å‡ºã€‚\n\n 14 警告: 无法设置环境å˜é‡'DISPLAY' $set 20 1 在Dock之上 2 底部 3 æ¡Œé¢ 4 Dock 5 普通 6 顶部 fluxbox-1.3.5/nls/zh_CN/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020525 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749875.703812466 30 ctime=1360750008.811811614 fluxbox-1.3.5/nls/zh_CN/Translation.m0000644000175000017500000001247312106662425016563 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 下方居中 2 左下方 3 å³ä¸‹æ–¹ 4 æ°´å¹³ 5 é å·¦ 6 左下方 7 左侧居中 8 左上方 9 扩展 10 é å³ 11 å³ä¸‹æ–¹ 12 å³ä¾§å±…中 13 å³ä¸Šæ–¹ 14 上方居中 15 左上方 16 左上方 17 垂直 $set 2 #BaseDisplay 1 退出... 存储崩溃文件\n 2 关闭\n 3 %s: æ•èŽ·ä¿¡å· %d\n $set 3 #Common 1 Alpha值 2 自动éšè— 3 编译时间 4 编译选项 5 编译器 6 编译器版本 7 åˆå§‹åŒ– 8 键绑订 9 æœ¬åœ°è¯­è¨€æ”¯æŒ 10 èœå• 11 æ ·å¼ 12 默认é…ç½® 13 ç¦ç”¨ 14 错误 15 Fluxbox版本 16 最大化时盖过 17 GITä¿®è®¢ç‰ˆæœ¬å· 18 å¯è§ 19 该主题未定义任何背景。\n请å‚考手册或阅读FAQ。 $set 4 #Configmenu 1 å锯齿 2 自动æå‡ 3 点击æå‡ 4 点击èšç„¦ 5 è£…é¥°ä¸´æ—¶çª—å£ 6 鼠标滚轮切æ¢å·¥ä½œåŒº 7 Focus Window on Workspace Change 8 èšç„¦æ¨¡å¼ 9 èšç„¦æ–°çª—å£ 10 完全最大化 11 图åƒä»¿è‰² 12 移动时显示窗å£å†…容 14 é¼ æ ‡èšç„¦ 15 工作区回旋 16 å¼ºåˆ¶ä¼ªé€æ˜Ž 17 èœå•Alpha值 18 逿˜Ž 19 èšç„¦çª—å£Alpha值 20 éžèšç„¦çª—å£Alpha值 21 标签选项 22 标签置于标题æ å†… 23 外置标签宽度 24 点击èšç„¦æ ‡ç­¾ 25 é¼ æ ‡èšç„¦æ ‡ç­¾ $set 5 #Ewmh 1 致命错误: 内存ä¸è¶³,无法为EWMH client list分é…内存 $set 6 #FbTkError 1 è­¦å‘Šï¼ Height > 3200 ,设置 Height = 3200 2 è­¦å‘Šï¼ Width > 3200 ,设置 Width = 3200 3 警告: ä¸èƒ½åŠ è½½å¤‡ç”¨å­—ä½“ 4 分é…错误。 5 创建åƒç´ æ˜ å°„出错 6 无法创建XImage 7 读å–失败 8 警告:无法为alpha找到有效格å¼ã€‚ 9 警告:创建alpha图片失败。 10 警告:创建alphaåƒç´ æ˜ å°„失败。 11 查找å±å¹•æ ¼å¼å¤±è´¥(%d) 12 内存ä¸è¶³ 13 内存ä¸è¶³ï¼Œæ— æ³•分é…ç»™blue buffer。 14 内存ä¸è¶³ï¼Œæ— æ³•分é…ç»™green buffer。 15 内存ä¸è¶³ï¼Œæ— æ³•分é…ç»™red buffer。 16 读å–主题项目失败 17 䏿”¯æŒå›¾åƒæ¨¡å¼ 18 设置默认值 $set 7 #Fluxbox 1 无效的rc文件å! 2 加载组文件失败 3 加载数æ®åº“失败 4 Retrying with 5 è­¦å‘Šï¼æ— æ³•找到å±å¹•æ¥ç»˜åˆ¶çª—å£ï¼ 6 无法创建 %s 目录 7 æ— æ³•æ‰¾åˆ°éœ€è¦æŽ§åˆ¶çš„å±å¹•。\nè¯·ç¡®ä¿æ²¡æœ‰å…¶ä»–窗å£ç®¡ç†å™¨æ­£åœ¨è¿è¡Œã€‚ 8 语法规则解æžé”™è¯¯ 9 致命错误ï¼fluxboxç±»åªèƒ½æœ‰ä¸€ä¸ªå®žä¾‹ã€‚ 10 无法连接X server。\n请确ä¿ä½ å¼€å¯Fluxbox之å‰å¼€å¯äº†X。 11 警告:X server䏿”¯æŒlocale 12 警告:无法设置locale modifiers $set 8 #Gnome 1 错误: 内存ä¸è¶³, 无法为GNOME client list分é…内存 $set 9 #Keys 1 Keys: Error on line 2 Keys: Failed to merge keytree! 3 Keys: Invalid key/modifier on line $set 10 #Menu 1 é…ç½® 2 Fluxbox默认èœå• 3 退出 4 图标 5 层次... 6 ä½äºŽç›‘视器... 7 ä½ç½® 8 釿–°åŠ è½½é…置文件 9 é‡å¯Fluxbox 10 警告:[encoding]标签ä¸å¯¹ç§° $set 11 #Remember 1 装饰 2 尺寸 3 跳至工作区 4 层 5 è®°ä½... 6 ä½ç½® 7 关闭时ä¿å­˜ 8 å·èµ· 9 ç²˜ä½ 10 未知按键 11 工作区 12 监视器 $set 12 #Screen 1 BScreen::BScreen: 询问X serveræ—¶å‘生错误.\n å¦å¤–一个窗å£ç®¡ç†å™¨æ­£è¿è¡Œ,display为 2 W: %4d x H: %4d 3 BScreen::BScreen: 控制å±å¹• %d ä½¿ç”¨å›¾åƒæ¨¡å¼ 0x%lx, 色彩深度 %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Clients 2 ä¸‹å· 3 ä¸Šå· 4 Slitæ–¹å‘ 5 Slit层次 6 Slitä½äºŽç›‘视器 7 Slitä½ç½® 8 Slit 9 ä¿å­˜Slit列表 $set 14 #Toolbar 1 é‡å‘½å当å‰å·¥ä½œåŒº 2 å›¾æ ‡æ æ¨¡å¼ 3 æ‰€æœ‰çª—å£ 4 所有最å°åŒ–çš„çª—å£ 5 æ—  6 当å‰å·¥ä½œåŒºæ‰€æœ‰çª—å£ 7 当å‰å·¥ä½œåŒºæ‰€æœ‰æœ€å°åŒ–çš„çª—å£ 8 工具æ å±‚次 9 工具æ ä½äºŽç›‘视器 10 工具æ ä½ç½® 11 å·¥å…·æ  12 工具æ å®½åº¦ç™¾åˆ†æ¯” 13 时钟:24å°æ—¶æ ¼å¼ 14 时钟:12å°æ—¶æ ¼å¼ 15 ç¼–è¾‘æ—¶é—´æ˜¾ç¤ºæ ¼å¼ 16 显示图标 17 所有未最å°åŒ–çš„çª—å£ 18 当å‰å·¥ä½œåŒºæ‰€æœ‰æœªæœ€å°åŒ–çš„çª—å£ $set 15 #Window 1 未命å $set 16 #Windowmenu 1 关闭 2 最å°åŒ– 3 层次 4 é™ä½Ž 5 最大化 6 æå‡ 7 å‘é€åˆ°... 8 å·èµ· 9 ç²˜ä½ 10 æ€æ­» $set 17 #Workspace 1 工作区 %d 2 工作区 3 新建工作区 4 移除最åŽä¸€ä¸ªå·¥ä½œåŒº $set 18 #fbsetroot 1 错误: 必须指定: -solid, -mod, -gradient ä¸‰ä¸ªå‚æ•°ä¸­çš„一个.\n 2 无法创建pixmap atomsï¼Œæ”¾å¼ƒï¼ 3 -display display connection\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient gradient texture\n\ -from gradient start color\n\ -to gradient end color\n\n\ -solid solid color\n\n\ -help 显示帮助信æ¯\n $set 19 #main 1 错误: '-display'需è¦ä¸€ä¸ªå‚æ•° 2 Bad Alloc 3 Bad cast 4 超出显示范围 5 è¿è¡Œæ—¶é”™è¯¯ 6 标准例外 7 未知错误 8 错误: '-log'需è¦ä¸€ä¸ªå‚æ•° 9 日志文件 10 记录日志到 11 错误: '-rc'需è¦ä¸€ä¸ªå‚æ•° 12 错误: '-screen'需è¦ä¸€ä¸ªå‚æ•° 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ 主页: http://www.fluxbox.org/\n\n\ -display \t\t指定display连接。\n\ -screen \t在特定的å±å¹•上显示。\n\ -rc \t\t\tä½¿ç”¨æŒ‡å®šçš„èµ„æºæ–‡ä»¶ã€‚\n\ -version\t\t\t显示版本å·ç„¶åŽé€€å‡ºã€‚\n\ -info\t\t\t\t显示一些有用的信æ¯ã€‚\n\ -log \t\t\t将输出记录到文件中。\n\ -help\t\t\t\t显示这则帮助信æ¯ç„¶åŽé€€å‡ºã€‚\n\n 14 警告: 无法设置环境å˜é‡'DISPLAY' $set 20 1 在Dock之上 2 底部 3 æ¡Œé¢ 4 Dock 5 普通 6 顶部 fluxbox-1.3.5/nls/zh_CN/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662604020115 xustar000000000000000030 mtime=1360749956.439811949 30 atime=1360750004.075811644 30 ctime=1360750008.815811614 fluxbox-1.3.5/nls/zh_CN/Makefile.in0000644000175000017500000002716712106662604016161 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/zh_CN/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/zh_CN DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = zh_CN SRC_CODESET = UTF-8 DEST_CODESETS = UTF-8 GB2312 BIG5 GB18030 GBK NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/zh_CN/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/zh_CN/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -c -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/zh_CN/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020105 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749854.287812603 30 ctime=1360750008.815811614 fluxbox-1.3.5/nls/zh_CN/Makefile.am0000644000175000017500000000302312106662425016132 0ustar00mgmg00000000000000# nls/zh_CN/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = zh_CN SRC_CODESET = UTF-8 DEST_CODESETS = UTF-8 GB2312 BIG5 GB18030 GBK LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -c -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/nb_NO0000644000175000017500000000013212106662666015775 xustar000000000000000030 mtime=1360750006.435811629 30 atime=1360750008.815811614 30 ctime=1360750008.815811614 fluxbox-1.3.5/nls/nb_NO/0000755000175000017500000000000012106662666014101 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/nb_NO/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662463020762 xustar000000000000000030 mtime=1360749875.667812466 30 atime=1360749875.683812466 30 ctime=1360750008.815811614 fluxbox-1.3.5/nls/nb_NO/generated-UTF-8.m0000644000175000017500000001276712106662463017026 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Nederst pÃ¥ midten 2 Nede til venstre 3 Nede til høyre 4 Vannrett 5 Venstre 6 Venstre nede 7 Venstre midten 8 Venstre topp 9 Relativ 10 Høyre 11 Høyre nede 12 Høyre midten 13 Høyre oppe 14 Øverst pÃ¥ midten 15 Øverst til venstre 16 Øverst til høyre 17 Loddrett $set 2 #BaseDisplay 1 Avbryter . . . dumper kjerne\n 2 SlÃ¥r av\n 3 %s: fikk signal %d\n $set 3 #Common 1 Gjennomsiktighet 2 Skjul automatisk 3 Bygget 4 Byggete alternativer 5 Bygger 6 Byggerversjon 7 init 8 taster 9 oversetting 10 meny 11 stil 12 Standarder 13 slÃ¥tt av 14 Feil 15 FluxBox-versjon 16 Maksimer over 17 GIT-revisjon 18 Synlig $set 4 #Configmenu 1 Kantutjevning 2 Hev automatisk 3 Klikk hever 4 Klikk for fokus 5 Dekorer kortvarige vinduer 6 Musehjul bytter skrivebord 7 Fokus pÃ¥ vindu ved endring av arbeidsomrÃ¥de 8 Fokus-modell 9 Fokus pÃ¥ nye vinduer 10 Full maksimering 11 Bildeutjevning 12 Flytt vinduer ugjennomsiktig 14 Musefokus 15 Bøying av arbeidsomrÃ¥de 16 Tving halvgjennomsiktighet 17 Meny-alfa 18 Gjennomsiktighet 19 Gjennomsiktighet for vindu i fokus 20 Gjennomsiktighet for vindu ute av fokus $set 5 #Ewmh 1 Fatalt: Ikke mer minne; klarte ikke finne nok for EWMH-klientliste $set 6 #FbTkError 1 Advarsel! Høyde > 3200, setter høyde til 3200 2 Advarsel! Bredde > 3200, setter bredde til 3200 3 Advarsel: klarte ikke laste tilbakefallskriften 4 Tildelingsfeil. 5 Klarte ikke lage pikselkart 6 Klarte ikke lage «XImage» 7 Klarte ikke lese 8 Advarsel: Klarte ikke finne gyldig format for alfa. 9 Advarsel: klarte ikke lage alfabilde. 10 Advarsel: klarte ikke lage alfa-pikselkart. 11 Klarte ikke finne format for skjerm (%d) 12 Ikke mer minne 13 Tom for minne ved tildeling av hurtigminen for blÃ¥. 14 Tom for minne ved tildeling av hurtigminen for grønn. 15 Tom for minne ved tildeling av hurtigminen for rød. 16 Klarte ikke lese temaelement 17 visuell støttes ikke 18 Angir standardverdi $set 7 #Fluxbox 1 Ressursfilnavnet er ugyldig. 2 Klarte ikke laste gruppefil 3 Klarte ikke laste database 4 Prøver pÃ¥ nytt med 5 Advarsel! Klarte ikke finne skjerm Ã¥ avbilde vindu pÃ¥. 6 Klarte ikke lage katalogen «%s» 7 Klarte ikke finne skjermer Ã¥ kontrollere.\nSørg for at du ikke har en annen vindusbehandler kjørende. 8 Klarte ikke spalte regulært uttrykk 9 Fatalt! Det kan kun være én instans av FluxBox-klassen. 10 Klarte ikke koble til X-tjener.\nForsikre deg om at du startet X før du startet FluxBox. 11 Advarsel: X-tjeneren støtter ikke lokaliteten 12 Advarsel: klarte ikke velge lokalitetmodifikatorer $set 8 #Gnome 1 Fatalt: ikke mer minne; kan ikke tildele for GNOME-klientliste $set 9 #Keys 1 Taster: feil pÃ¥ linje 2 Taster: klarte ikke slÃ¥ sammen tastetre. 3 Taster: ugyldig tast/modifikator pÃ¥ linje $set 10 #Menu 1 Oppsett 2 FluxBox standardmeny 3 Avslutt 4 Ikoner 5 Lag . . . 6 PÃ¥ Hode . . . 7 Plassering 8 Last oppsett pÃ¥ nytt 9 Start pÃ¥ nytt $set 11 #Remember 1 Dekorasjoner 2 Dimensjoner 3 Hopp til arbeidsomrÃ¥de 4 Lag 5 Husk . . . 6 Posisjon 7 Lagre ved avslutting 8 Skyggelagt 9 Klebrig 10 Ukjent programtast 11 ArbeidsomrÃ¥de 12 Hode $set 12 #Screen 1 BScreen::BScreen: feil ved spørring av X-tjeneren;\n en annen vindusbehandler kjører allerede pÃ¥ visningsenheten 2 B: %4d x H: %4d 3 BScreen::BScreen: kontrollerer skjerm %d ved hjelp av visuell 0x%lx, dybde %d\n $set 13 #Slit 1 Klienter 2 Syklus ned 3 Syklus opp 4 Spalteretning 5 Spaltelag 6 Spalt pÃ¥ Hode 7 Spalteplassering 8 Spalt 9 Lagre spalteliste $set 14 #Toolbar 1 Rediger navnet pÃ¥ gjeldende arbeidsomrÃ¥de 2 Ikonlinje-modus 3 Alle vinduer 4 Ikoner 5 Ingen 6 ArbeidsomrÃ¥de 7 ArbeidsomrÃ¥de: ikoner 8 Verktøylinjelag 9 Vertkøylinje pÃ¥ Hode 10 Plassering av verktøylinje 11 Verktøylinje 12 Bredde pÃ¥ verktøylinje i prosent 13 Klokke: 24t 14 Klokke: 12t 15 Rediger klokkeformat 16 Vis bilder 17 Ingen ikoner 18 ArbeidsomrÃ¥de: ingen ikoner $set 15 #Window 1 Uten navn $set 16 #Windowmenu 1 Lukk 2 Ikonifiser 3 Lag 4 Senk 5 Maksimer 6 Hev 7 Send til . . . 8 Skyggelegg 9 Fest 10 Drep $set 17 #Workspace 1 ArbeidsomrÃ¥de %d 2 ArbeidsomrÃ¥der 3 Nytt arbeidsomrÃ¥de 4 Fjern siste $set 18 #fbsetroot 1 feil: mÃ¥ oppgi en av: -solid, -mod, -gradient\n 2 Klarte ikke opprette bildekartatomer, gir opp. 3 -display tilkobling til visningsenhet\n\ -mod «modula»-mønster\n\ -foreground, -fg «modula»-forgrunnsfarge\n\ -background, -bg «modula»-bakgrunnsfarge\n\n\ -gradient overgangtekstur\n\ -from startfarge for overgang\n\ -to sluttfarge for overgang\n\n\ -solid ensfarget\n\n\ -help hvis denne hjelpeteksten og avslutt\n $set 19 #main 1 feil: «-display» krever et argument 2 Feil tildeling 3 Feil typeomforming 4 Utenfor rekkevidde 5 Kjøretidsfeil 6 Standard Exception 7 Ukjent feil 8 feil: «-log» trenger et argument 9 Loggfil 10 Logger til 11 feil: «-rc» krever et argument 12 feil: «-rc» krever et argument 13 FluxBox %s: kopirett %s Henrik Kinnunen\n\ Nettside: http://www.fluxbox.org/\n\n\ -display \t\tbruk visningsenhetforbindelse.\n\ -screen \tkjør kun pÃ¥ valgte skjermer.\n\ -rc \t\t\tbruk alternativ ressursfil.\n\ -version\t\t\tvis versjonnummer og avslutt.\n\ -info\t\t\t\tvis litt nyttig informasjon.\n\ -log \t\t\tlogg utdata til fil.\n\ -help\t\t\t\tvis denne hjelpeteksten og avslutt.\n\n 14 advarsel: klarte ikke angi miljøvariabelen «DISPLAY» $set 20 1 Over feste 2 Bunn 3 Skrivebord 4 Feste 5 Normal 6 Topp fluxbox-1.3.5/nls/nb_NO/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020517 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749875.667812466 30 ctime=1360750008.819811614 fluxbox-1.3.5/nls/nb_NO/Translation.m0000644000175000017500000001276712106662425016563 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Nederst pÃ¥ midten 2 Nede til venstre 3 Nede til høyre 4 Vannrett 5 Venstre 6 Venstre nede 7 Venstre midten 8 Venstre topp 9 Relativ 10 Høyre 11 Høyre nede 12 Høyre midten 13 Høyre oppe 14 Øverst pÃ¥ midten 15 Øverst til venstre 16 Øverst til høyre 17 Loddrett $set 2 #BaseDisplay 1 Avbryter . . . dumper kjerne\n 2 SlÃ¥r av\n 3 %s: fikk signal %d\n $set 3 #Common 1 Gjennomsiktighet 2 Skjul automatisk 3 Bygget 4 Byggete alternativer 5 Bygger 6 Byggerversjon 7 init 8 taster 9 oversetting 10 meny 11 stil 12 Standarder 13 slÃ¥tt av 14 Feil 15 FluxBox-versjon 16 Maksimer over 17 GIT-revisjon 18 Synlig $set 4 #Configmenu 1 Kantutjevning 2 Hev automatisk 3 Klikk hever 4 Klikk for fokus 5 Dekorer kortvarige vinduer 6 Musehjul bytter skrivebord 7 Fokus pÃ¥ vindu ved endring av arbeidsomrÃ¥de 8 Fokus-modell 9 Fokus pÃ¥ nye vinduer 10 Full maksimering 11 Bildeutjevning 12 Flytt vinduer ugjennomsiktig 14 Musefokus 15 Bøying av arbeidsomrÃ¥de 16 Tving halvgjennomsiktighet 17 Meny-alfa 18 Gjennomsiktighet 19 Gjennomsiktighet for vindu i fokus 20 Gjennomsiktighet for vindu ute av fokus $set 5 #Ewmh 1 Fatalt: Ikke mer minne; klarte ikke finne nok for EWMH-klientliste $set 6 #FbTkError 1 Advarsel! Høyde > 3200, setter høyde til 3200 2 Advarsel! Bredde > 3200, setter bredde til 3200 3 Advarsel: klarte ikke laste tilbakefallskriften 4 Tildelingsfeil. 5 Klarte ikke lage pikselkart 6 Klarte ikke lage «XImage» 7 Klarte ikke lese 8 Advarsel: Klarte ikke finne gyldig format for alfa. 9 Advarsel: klarte ikke lage alfabilde. 10 Advarsel: klarte ikke lage alfa-pikselkart. 11 Klarte ikke finne format for skjerm (%d) 12 Ikke mer minne 13 Tom for minne ved tildeling av hurtigminen for blÃ¥. 14 Tom for minne ved tildeling av hurtigminen for grønn. 15 Tom for minne ved tildeling av hurtigminen for rød. 16 Klarte ikke lese temaelement 17 visuell støttes ikke 18 Angir standardverdi $set 7 #Fluxbox 1 Ressursfilnavnet er ugyldig. 2 Klarte ikke laste gruppefil 3 Klarte ikke laste database 4 Prøver pÃ¥ nytt med 5 Advarsel! Klarte ikke finne skjerm Ã¥ avbilde vindu pÃ¥. 6 Klarte ikke lage katalogen «%s» 7 Klarte ikke finne skjermer Ã¥ kontrollere.\nSørg for at du ikke har en annen vindusbehandler kjørende. 8 Klarte ikke spalte regulært uttrykk 9 Fatalt! Det kan kun være én instans av FluxBox-klassen. 10 Klarte ikke koble til X-tjener.\nForsikre deg om at du startet X før du startet FluxBox. 11 Advarsel: X-tjeneren støtter ikke lokaliteten 12 Advarsel: klarte ikke velge lokalitetmodifikatorer $set 8 #Gnome 1 Fatalt: ikke mer minne; kan ikke tildele for GNOME-klientliste $set 9 #Keys 1 Taster: feil pÃ¥ linje 2 Taster: klarte ikke slÃ¥ sammen tastetre. 3 Taster: ugyldig tast/modifikator pÃ¥ linje $set 10 #Menu 1 Oppsett 2 FluxBox standardmeny 3 Avslutt 4 Ikoner 5 Lag . . . 6 PÃ¥ Hode . . . 7 Plassering 8 Last oppsett pÃ¥ nytt 9 Start pÃ¥ nytt $set 11 #Remember 1 Dekorasjoner 2 Dimensjoner 3 Hopp til arbeidsomrÃ¥de 4 Lag 5 Husk . . . 6 Posisjon 7 Lagre ved avslutting 8 Skyggelagt 9 Klebrig 10 Ukjent programtast 11 ArbeidsomrÃ¥de 12 Hode $set 12 #Screen 1 BScreen::BScreen: feil ved spørring av X-tjeneren;\n en annen vindusbehandler kjører allerede pÃ¥ visningsenheten 2 B: %4d x H: %4d 3 BScreen::BScreen: kontrollerer skjerm %d ved hjelp av visuell 0x%lx, dybde %d\n $set 13 #Slit 1 Klienter 2 Syklus ned 3 Syklus opp 4 Spalteretning 5 Spaltelag 6 Spalt pÃ¥ Hode 7 Spalteplassering 8 Spalt 9 Lagre spalteliste $set 14 #Toolbar 1 Rediger navnet pÃ¥ gjeldende arbeidsomrÃ¥de 2 Ikonlinje-modus 3 Alle vinduer 4 Ikoner 5 Ingen 6 ArbeidsomrÃ¥de 7 ArbeidsomrÃ¥de: ikoner 8 Verktøylinjelag 9 Vertkøylinje pÃ¥ Hode 10 Plassering av verktøylinje 11 Verktøylinje 12 Bredde pÃ¥ verktøylinje i prosent 13 Klokke: 24t 14 Klokke: 12t 15 Rediger klokkeformat 16 Vis bilder 17 Ingen ikoner 18 ArbeidsomrÃ¥de: ingen ikoner $set 15 #Window 1 Uten navn $set 16 #Windowmenu 1 Lukk 2 Ikonifiser 3 Lag 4 Senk 5 Maksimer 6 Hev 7 Send til . . . 8 Skyggelegg 9 Fest 10 Drep $set 17 #Workspace 1 ArbeidsomrÃ¥de %d 2 ArbeidsomrÃ¥der 3 Nytt arbeidsomrÃ¥de 4 Fjern siste $set 18 #fbsetroot 1 feil: mÃ¥ oppgi en av: -solid, -mod, -gradient\n 2 Klarte ikke opprette bildekartatomer, gir opp. 3 -display tilkobling til visningsenhet\n\ -mod «modula»-mønster\n\ -foreground, -fg «modula»-forgrunnsfarge\n\ -background, -bg «modula»-bakgrunnsfarge\n\n\ -gradient overgangtekstur\n\ -from startfarge for overgang\n\ -to sluttfarge for overgang\n\n\ -solid ensfarget\n\n\ -help hvis denne hjelpeteksten og avslutt\n $set 19 #main 1 feil: «-display» krever et argument 2 Feil tildeling 3 Feil typeomforming 4 Utenfor rekkevidde 5 Kjøretidsfeil 6 Standard Exception 7 Ukjent feil 8 feil: «-log» trenger et argument 9 Loggfil 10 Logger til 11 feil: «-rc» krever et argument 12 feil: «-rc» krever et argument 13 FluxBox %s: kopirett %s Henrik Kinnunen\n\ Nettside: http://www.fluxbox.org/\n\n\ -display \t\tbruk visningsenhetforbindelse.\n\ -screen \tkjør kun pÃ¥ valgte skjermer.\n\ -rc \t\t\tbruk alternativ ressursfil.\n\ -version\t\t\tvis versjonnummer og avslutt.\n\ -info\t\t\t\tvis litt nyttig informasjon.\n\ -log \t\t\tlogg utdata til fil.\n\ -help\t\t\t\tvis denne hjelpeteksten og avslutt.\n\n 14 advarsel: klarte ikke angi miljøvariabelen «DISPLAY» $set 20 1 Over feste 2 Bunn 3 Skrivebord 4 Feste 5 Normal 6 Topp fluxbox-1.3.5/nls/nb_NO/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662604020107 xustar000000000000000030 mtime=1360749956.155811951 30 atime=1360750003.843811645 30 ctime=1360750008.819811614 fluxbox-1.3.5/nls/nb_NO/Makefile.in0000644000175000017500000002713412106662604016145 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/nb_NO/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/nb_NO DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = nb_NO SRC_CODESET = UTF-8 DEST_CODESETS = UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/nb_NO/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/nb_NO/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/nb_NO/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020077 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749854.003812604 30 ctime=1360750008.819811614 fluxbox-1.3.5/nls/nb_NO/Makefile.am0000644000175000017500000000277012106662425016134 0ustar00mgmg00000000000000# nls/nb_NO/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = nb_NO SRC_CODESET = UTF-8 DEST_CODESETS = UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/el_GR0000644000175000017500000000013212106662666015772 xustar000000000000000030 mtime=1360750006.403811629 30 atime=1360750008.819811614 30 ctime=1360750008.819811614 fluxbox-1.3.5/nls/el_GR/0000755000175000017500000000000012106662666014076 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/el_GR/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662463020757 xustar000000000000000030 mtime=1360749875.631812466 30 atime=1360749875.647812466 30 ctime=1360750008.819811614 fluxbox-1.3.5/nls/el_GR/generated-UTF-8.m0000644000175000017500000002005412106662463017007 0ustar00mgmg00000000000000$ codeset=utf8 $set 1 #Align 1 Κάτω ΚέντÏο 2 Κάτω ΑÏιστεÏά 3 Κάτω Δεξιά 4 ΟÏιζόντια 5 ΑÏιστεÏά 6 ΑÏιστεÏά Κάτω 7 ΑÏιστεÏά ΚέντÏο 8 ΑÏιστεÏά Πάνω 9 Σχετική 10 Δεξιά 11 Δεξιά Κάτω 12 Δεξιά ΚέντÏο 13 Δεξιά Πάνω 14 Πάνω ΚέντÏο 15 Πάνω ΑÏιστεÏά 16 Πάνω Δεξιά 17 ΚατακόÏυφη $set 2 #BaseDisplay 1 Aborting... dumping core\n 2 ΤεÏματισμός\n 3 %s: σήμα %d ανιχνεÏθηκε\n $set 3 #Common 1 Άλφα 2 Αυτόματη ΑπόκÏυψη 3 Μεταγλωττίστηκε 4 Επιλογές μεταγλώττισης 5 Μεταγλωττιστής 6 Έκδοση μεταγλωττιστή 7 init 8 keys 9 nls 10 menu 11 style 12 Defaults 13 απενεÏγοποιημένη 14 Σφάλμα 15 Έκδοση Fluxbox 16 ΥπεÏκάλυψη κατά τη μεγιστοποίηση 18 ΟÏατή $set 4 #Configmenu 1 ΑντιταÏτιση 2 Αυτόματη ΑνÏψωση 3 Κλικ για ΑνÏψωση 4 Κλικ για Εστίαση 5 Διακόσμησε ΠÏοσωÏινά ΠαÏάθυÏα 6 Αλλαγή Επιφάνειας ΕÏγασίας με Ροδέλα Î Î¿Î½Ï„Î¹ÎºÎ¹Î¿Ï 7 Εστίαση ΠαÏαθÏÏου στην Αλλαγή Επιφάνειας ΕÏγασίας 8 Μοντέλο Εστίασης 9 Εστίασε σε Îέα ΠαÏάθυÏα 10 ΠλήÏης Μεγιστοποίηση 11 Image Dithering 12 Opaque Window Moving 14 Mouse Focus 15 Workspace Warping 16 Επιβολή Ψευδο-Διαφάνειας 17 ÎœÎµÎ½Î¿Ï Î†Î»Ï†Î± 18 Διαφάνεια 19 Άλφα Εστιασμένου ΠαÏαθÏÏου 20 Άλφα Μη Εστιασμένου ΠαÏαθÏÏου $set 5 #Ewmh 1 Fatal: Out of memory, can't allocate for EWMH client list $set 6 #FbTkError 1 ΠÏοειδοποίηση! Ύψος > 3200 θέτω Ύψος = 3200 2 ΠÏοειδοποίηση! Πλάτος > 3200 θέτω Πλάτος = 3200 3 ΠÏοειδοποίηση: δεν μποÏÏŽ να φοÏτώσω την εφεδÏική γÏαμματοσειÏά 4 Σφάλμα δέσμευσης. 5 Σφάλμα κατα τη δημιουÏγία pixmap 6 Δεν μποÏÏŽ να δημιουÏγήσω XImage 7 Σφάλμα ανάγνωσης 8 ΠÏοειδοποίηση: Αποτυχία εÏÏεσης έγκυÏου format για άλφα. 9 ΠÏοειδοποίηση: Αποτυχία δημιουÏγίας άλφα εικόνας. 10 ΠÏοειδοποίηση: Αποτυχία δημιουÏγίας άλφα pixmap. 11 Failed to find format for screen(%d) 12 Έλλειψη μνήμης 13 Έλλειψη μνήμης κατά τη δέσμευση blue buffer. 14 Έλλειψη μνήμης κατά τη δέσμευση green buffer. 15 Έλλειψη μνήμης κατά τη δέσμευση red buffer. 16 Αποτυχία ανάγνωσης αντικειμένου θέματος 17 unsupported visual 18 Setting default value $set 7 #Fluxbox 1 Το όνομα του rc αÏχείου είναι άκυÏο! 2 Αποτυχία φόÏτωσης αÏχείου group 3 Αποτυχία φόÏτωσης βάσης δεδομένων 4 Retrying with 5 Warning! Could not find screen to map window on! 6 Δεν μποÏÏŽ να δημιουÏγήσω τον κατάλογο %s 7 Δεν βÏέθηκαν οθόνες για διαχείÏιση.\nΣιγουÏευτείτε ότι δεν έχετε άλλο διαχειÏιστή παÏαθÏÏων να Ï„Ïέχει. 8 Error parsing regular expression 9 Fatal! There can only one instance of fluxbox class. 10 Αποτυχία σÏνδεσης με τον εξυπηÏετητή των X.\nΣιγουÏευτείτε ότι ξεκινήσατε τα X Ï€Ïιν ξεκινήσετε το Fluxbox. 11 ΠÏοειδοποίηση: Ο εξυπηÏετητής των X δεν υποστηÏίζει locale 12 Warning: cannot set locale modifiers $set 8 #Gnome 1 Fatal: Out of memory, can't allocate for GNOME client list $set 9 #Keys 1 Keys: Σφάλμα στη γÏαμμή 2 Keys: Failed to merge keytree! 3 Keys: Invalid key/modifier on line $set 10 #Menu 1 Ρυθμίσεις 2 Εξ οÏÎ¹ÏƒÎ¼Î¿Ï Î¼ÎµÎ½Î¿Ï Ï„Î¿Ï… 3 Έξοδος 4 Εικονίδια 5 Επίπεδο... 6 On Head... 7 Τοποθέτηση 8 ΕπαναφόÏτωση Ρυθμίσεων 9 Επανεκκίνηση $set 11 #Remember 1 Διακοσμήσεις 2 Διαστάσεις 3 ΜεταφοÏά στην επιφάνεια εÏγασίας 4 Επίπεδο 5 Θυμήσου... 6 Τοποθεσία 7 Αποθήκευση στο κλείσιμο 8 Σκιασμένο 9 Sticky 10 Unknown apps key 11 Επιφάνεια εÏγασίας 12 Head $set 12 #Screen 1 BScreen::BScreen: an error occured while querying the X server.\n another window manager already running on display 2 W: %4d x H: %4d 3 BScreen::BScreen: managing screen %d using visual 0x%lx, depth %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Πελάτες 2 ΑνακÏκλωσε Ï€Ïος τα πάνω 3 ΑνακÏκλωσε Ï€Ïος τα κάτω 4 ΚατεÏθυνση του Slit 5 Επίπεδο του Slit 6 Slit on Head 7 Τοποθέτηση του Slit 8 Slit 9 Αποθήκευση SlitList $set 14 #Toolbar 1 ΔιόÏθωση ονόματος Ï„Ïέχουσας επιφάνειας εÏγασίας 2 Κατάσταση της Iconbar 3 Όλα τα παÏάθυÏα 4 Εικονίδια 5 Καμία 6 Επιφάνεια εÏγασίας 7 Εικονίδια επιφάνειας εÏγασίας 8 Επίπεδο της Toolbar 9 Toolbar on Head 10 Τοποθέτηση της Toolbar 11 Toolbar 12 Ποσοστό πλάτους Toolbar 13 Ρολόι: 24Ω 14 Ρολόι: 12Ω 15 ΡÏθμιση μοÏφής ÏÎ¿Î»Î¿Î³Î¹Î¿Ï 16 Εμφάνιση εικόνων 17 Όχι εικονίδια 18 Επιφάνεια εÏγασίας χωÏίς εικονίδια $set 15 #Window 1 ΧωÏίς όνομα $set 16 #Windowmenu 1 Κλείσιμο 2 Iconify 3 Επίπεδο 4 Î’Ïθιση 5 Μεγιστοποίηση 6 ΑνÏψωση 7 Αποστολή στο ... 8 Σκίαση 9 Stick 10 Σκότωμα $set 17 #Workspace 1 Επιφάνεια ΕÏγασίας %d 2 Επιφάνειες ΕÏγασίας 3 Îέα επιφάνεια εÏγασίας 4 ΔιαγÏαφή τελευταίας $set 18 #fbsetroot 1 Error: must specify one of: -solid, -mod, -gradient\n 2 Couldn't create pixmap atoms, giving up! 3 -display display connection\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient gradient texture\n\ -from gradient start color\n\ -to gradient end color\n\n\ -solid solid color\n\n\ -help print this help text and exit\n $set 19 #main 1 σφάλμα: το '-display' χÏειάζεται ένα ÏŒÏισμα 2 Bad Alloc 3 Bad cast 4 Εκτός οÏίων 5 Σφάλμα κατά την εκτέλεση 6 Standard Exception 7 Άγνωστο σφάλμα 8 σφάλμα: το '-log' χÏειάζεται ένα ÏŒÏισμα 9 ΑÏχείο ΚαταγÏαφής 10 Γίνεται καταγÏαφή στο 11 σφάλμα: το '-rc' χÏειάζεται ένα ÏŒÏισμα 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tχÏησιμοποίησε σÏνδεση display.\n\ -rc \t\t\tχÏησιμοποίησε εναλλακτικό αÏχείο πόÏων.\n\ -version\t\t\tεμφάνιση έκδοσης και τεÏματισμός.\n\ -info\t\t\t\tεμφάνιση μεÏικών χÏήσιμων πληÏοφοÏιών.\n\ -log \t\t\tαποθήκευση log σε αÏχείο.\n\ -help\t\t\t\tεμφάνιση Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… κειμένου βοηθείας και τεÏματισμός.\n\n 14 Ï€Ïοειδοποίηση: δεν είναι δυνατός ο οÏισμός της μεταβλητής πεÏιβάλλοντος 'DISPLAY' $set 20 1 Πάνω απο το Dock 2 Πάτος 3 Desktop 4 Dock 5 Κανονική 6 ΚοÏυφή fluxbox-1.3.5/nls/el_GR/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020514 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749875.631812466 30 ctime=1360750008.823811613 fluxbox-1.3.5/nls/el_GR/Translation.m0000644000175000017500000002005412106662425016544 0ustar00mgmg00000000000000$ codeset=utf8 $set 1 #Align 1 Κάτω ΚέντÏο 2 Κάτω ΑÏιστεÏά 3 Κάτω Δεξιά 4 ΟÏιζόντια 5 ΑÏιστεÏά 6 ΑÏιστεÏά Κάτω 7 ΑÏιστεÏά ΚέντÏο 8 ΑÏιστεÏά Πάνω 9 Σχετική 10 Δεξιά 11 Δεξιά Κάτω 12 Δεξιά ΚέντÏο 13 Δεξιά Πάνω 14 Πάνω ΚέντÏο 15 Πάνω ΑÏιστεÏά 16 Πάνω Δεξιά 17 ΚατακόÏυφη $set 2 #BaseDisplay 1 Aborting... dumping core\n 2 ΤεÏματισμός\n 3 %s: σήμα %d ανιχνεÏθηκε\n $set 3 #Common 1 Άλφα 2 Αυτόματη ΑπόκÏυψη 3 Μεταγλωττίστηκε 4 Επιλογές μεταγλώττισης 5 Μεταγλωττιστής 6 Έκδοση μεταγλωττιστή 7 init 8 keys 9 nls 10 menu 11 style 12 Defaults 13 απενεÏγοποιημένη 14 Σφάλμα 15 Έκδοση Fluxbox 16 ΥπεÏκάλυψη κατά τη μεγιστοποίηση 18 ΟÏατή $set 4 #Configmenu 1 ΑντιταÏτιση 2 Αυτόματη ΑνÏψωση 3 Κλικ για ΑνÏψωση 4 Κλικ για Εστίαση 5 Διακόσμησε ΠÏοσωÏινά ΠαÏάθυÏα 6 Αλλαγή Επιφάνειας ΕÏγασίας με Ροδέλα Î Î¿Î½Ï„Î¹ÎºÎ¹Î¿Ï 7 Εστίαση ΠαÏαθÏÏου στην Αλλαγή Επιφάνειας ΕÏγασίας 8 Μοντέλο Εστίασης 9 Εστίασε σε Îέα ΠαÏάθυÏα 10 ΠλήÏης Μεγιστοποίηση 11 Image Dithering 12 Opaque Window Moving 14 Mouse Focus 15 Workspace Warping 16 Επιβολή Ψευδο-Διαφάνειας 17 ÎœÎµÎ½Î¿Ï Î†Î»Ï†Î± 18 Διαφάνεια 19 Άλφα Εστιασμένου ΠαÏαθÏÏου 20 Άλφα Μη Εστιασμένου ΠαÏαθÏÏου $set 5 #Ewmh 1 Fatal: Out of memory, can't allocate for EWMH client list $set 6 #FbTkError 1 ΠÏοειδοποίηση! Ύψος > 3200 θέτω Ύψος = 3200 2 ΠÏοειδοποίηση! Πλάτος > 3200 θέτω Πλάτος = 3200 3 ΠÏοειδοποίηση: δεν μποÏÏŽ να φοÏτώσω την εφεδÏική γÏαμματοσειÏά 4 Σφάλμα δέσμευσης. 5 Σφάλμα κατα τη δημιουÏγία pixmap 6 Δεν μποÏÏŽ να δημιουÏγήσω XImage 7 Σφάλμα ανάγνωσης 8 ΠÏοειδοποίηση: Αποτυχία εÏÏεσης έγκυÏου format για άλφα. 9 ΠÏοειδοποίηση: Αποτυχία δημιουÏγίας άλφα εικόνας. 10 ΠÏοειδοποίηση: Αποτυχία δημιουÏγίας άλφα pixmap. 11 Failed to find format for screen(%d) 12 Έλλειψη μνήμης 13 Έλλειψη μνήμης κατά τη δέσμευση blue buffer. 14 Έλλειψη μνήμης κατά τη δέσμευση green buffer. 15 Έλλειψη μνήμης κατά τη δέσμευση red buffer. 16 Αποτυχία ανάγνωσης αντικειμένου θέματος 17 unsupported visual 18 Setting default value $set 7 #Fluxbox 1 Το όνομα του rc αÏχείου είναι άκυÏο! 2 Αποτυχία φόÏτωσης αÏχείου group 3 Αποτυχία φόÏτωσης βάσης δεδομένων 4 Retrying with 5 Warning! Could not find screen to map window on! 6 Δεν μποÏÏŽ να δημιουÏγήσω τον κατάλογο %s 7 Δεν βÏέθηκαν οθόνες για διαχείÏιση.\nΣιγουÏευτείτε ότι δεν έχετε άλλο διαχειÏιστή παÏαθÏÏων να Ï„Ïέχει. 8 Error parsing regular expression 9 Fatal! There can only one instance of fluxbox class. 10 Αποτυχία σÏνδεσης με τον εξυπηÏετητή των X.\nΣιγουÏευτείτε ότι ξεκινήσατε τα X Ï€Ïιν ξεκινήσετε το Fluxbox. 11 ΠÏοειδοποίηση: Ο εξυπηÏετητής των X δεν υποστηÏίζει locale 12 Warning: cannot set locale modifiers $set 8 #Gnome 1 Fatal: Out of memory, can't allocate for GNOME client list $set 9 #Keys 1 Keys: Σφάλμα στη γÏαμμή 2 Keys: Failed to merge keytree! 3 Keys: Invalid key/modifier on line $set 10 #Menu 1 Ρυθμίσεις 2 Εξ οÏÎ¹ÏƒÎ¼Î¿Ï Î¼ÎµÎ½Î¿Ï Ï„Î¿Ï… 3 Έξοδος 4 Εικονίδια 5 Επίπεδο... 6 On Head... 7 Τοποθέτηση 8 ΕπαναφόÏτωση Ρυθμίσεων 9 Επανεκκίνηση $set 11 #Remember 1 Διακοσμήσεις 2 Διαστάσεις 3 ΜεταφοÏά στην επιφάνεια εÏγασίας 4 Επίπεδο 5 Θυμήσου... 6 Τοποθεσία 7 Αποθήκευση στο κλείσιμο 8 Σκιασμένο 9 Sticky 10 Unknown apps key 11 Επιφάνεια εÏγασίας 12 Head $set 12 #Screen 1 BScreen::BScreen: an error occured while querying the X server.\n another window manager already running on display 2 W: %4d x H: %4d 3 BScreen::BScreen: managing screen %d using visual 0x%lx, depth %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Πελάτες 2 ΑνακÏκλωσε Ï€Ïος τα πάνω 3 ΑνακÏκλωσε Ï€Ïος τα κάτω 4 ΚατεÏθυνση του Slit 5 Επίπεδο του Slit 6 Slit on Head 7 Τοποθέτηση του Slit 8 Slit 9 Αποθήκευση SlitList $set 14 #Toolbar 1 ΔιόÏθωση ονόματος Ï„Ïέχουσας επιφάνειας εÏγασίας 2 Κατάσταση της Iconbar 3 Όλα τα παÏάθυÏα 4 Εικονίδια 5 Καμία 6 Επιφάνεια εÏγασίας 7 Εικονίδια επιφάνειας εÏγασίας 8 Επίπεδο της Toolbar 9 Toolbar on Head 10 Τοποθέτηση της Toolbar 11 Toolbar 12 Ποσοστό πλάτους Toolbar 13 Ρολόι: 24Ω 14 Ρολόι: 12Ω 15 ΡÏθμιση μοÏφής ÏÎ¿Î»Î¿Î³Î¹Î¿Ï 16 Εμφάνιση εικόνων 17 Όχι εικονίδια 18 Επιφάνεια εÏγασίας χωÏίς εικονίδια $set 15 #Window 1 ΧωÏίς όνομα $set 16 #Windowmenu 1 Κλείσιμο 2 Iconify 3 Επίπεδο 4 Î’Ïθιση 5 Μεγιστοποίηση 6 ΑνÏψωση 7 Αποστολή στο ... 8 Σκίαση 9 Stick 10 Σκότωμα $set 17 #Workspace 1 Επιφάνεια ΕÏγασίας %d 2 Επιφάνειες ΕÏγασίας 3 Îέα επιφάνεια εÏγασίας 4 ΔιαγÏαφή τελευταίας $set 18 #fbsetroot 1 Error: must specify one of: -solid, -mod, -gradient\n 2 Couldn't create pixmap atoms, giving up! 3 -display display connection\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient gradient texture\n\ -from gradient start color\n\ -to gradient end color\n\n\ -solid solid color\n\n\ -help print this help text and exit\n $set 19 #main 1 σφάλμα: το '-display' χÏειάζεται ένα ÏŒÏισμα 2 Bad Alloc 3 Bad cast 4 Εκτός οÏίων 5 Σφάλμα κατά την εκτέλεση 6 Standard Exception 7 Άγνωστο σφάλμα 8 σφάλμα: το '-log' χÏειάζεται ένα ÏŒÏισμα 9 ΑÏχείο ΚαταγÏαφής 10 Γίνεται καταγÏαφή στο 11 σφάλμα: το '-rc' χÏειάζεται ένα ÏŒÏισμα 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tχÏησιμοποίησε σÏνδεση display.\n\ -rc \t\t\tχÏησιμοποίησε εναλλακτικό αÏχείο πόÏων.\n\ -version\t\t\tεμφάνιση έκδοσης και τεÏματισμός.\n\ -info\t\t\t\tεμφάνιση μεÏικών χÏήσιμων πληÏοφοÏιών.\n\ -log \t\t\tαποθήκευση log σε αÏχείο.\n\ -help\t\t\t\tεμφάνιση Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… κειμένου βοηθείας και τεÏματισμός.\n\n 14 Ï€Ïοειδοποίηση: δεν είναι δυνατός ο οÏισμός της μεταβλητής πεÏιβάλλοντος 'DISPLAY' $set 20 1 Πάνω απο το Dock 2 Πάτος 3 Desktop 4 Dock 5 Κανονική 6 ΚοÏυφή fluxbox-1.3.5/nls/el_GR/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603020103 xustar000000000000000030 mtime=1360749955.823811953 30 atime=1360750003.575811647 30 ctime=1360750008.823811613 fluxbox-1.3.5/nls/el_GR/Makefile.in0000644000175000017500000002713412106662603016141 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/el_GR/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/el_GR DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = el_GR SRC_CODESET = UTF-8 DEST_CODESETS = UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/el_GR/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/el_GR/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/el_GR/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020074 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749853.679812606 30 ctime=1360750008.823811613 fluxbox-1.3.5/nls/el_GR/Makefile.am0000644000175000017500000000277012106662425016131 0ustar00mgmg00000000000000# nls/el_GR/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = el_GR SRC_CODESET = UTF-8 DEST_CODESETS = UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/uk_UA0000644000175000017500000000013212106662666016006 xustar000000000000000030 mtime=1360750006.371811629 30 atime=1360750008.823811613 30 ctime=1360750008.823811613 fluxbox-1.3.5/nls/uk_UA/0000755000175000017500000000000012106662666014112 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/uk_UA/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662463020773 xustar000000000000000030 mtime=1360749875.595812466 30 atime=1360749875.607812466 30 ctime=1360750008.827811613 fluxbox-1.3.5/nls/uk_UA/generated-UTF-8.m0000644000175000017500000001204512106662463017024 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Знизу в центрі 2 Знизу ліворуч 3 Знизу праворуч 4 Горизонтально 5 Ліворуч 6 Ліворуч знизу 7 Ліворуч у центрі 8 Ліворуч згори 9 Ðа вÑÑŽ ширину 10 Праворуч 11 Праворуч знизу 12 Праворуч у центрі 13 Праворуч угорі 14 Угорі в центрі 15 Угорі ліворуч 16 Угорі праворуч 17 Вертикально $set 2 #BaseDisplay $set 3 #Common 1 ПрозоріÑть 2 ÐÐ²Ñ‚Ð¾Ð¿Ñ€Ð¸Ñ…Ð¾Ð²Ð°Ð½Ð½Ñ 3 Скомпільований 4 Скомпільований з опціÑми 5 КомпілÑтор 6 ВерÑÑ–Ñ ÐºÐ¾Ð¼Ð¿Ñ–Ð»Ñтора 7 Файл реÑурÑів 8 Файл комбінацій клавіш 10 Файл меню 11 Файл зі Ñтилем 12 ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾ замовчуванню 13 вимкнена 15 ВерÑÑ–Ñ Fluxbox 16 Під вікнами 18 Видима $set 4 #Configmenu 1 Ð—Ð³Ð»Ð°Ð´Ð¶ÑƒÐ²Ð°Ð½Ð½Ñ ÑˆÑ€Ð¸Ñ„Ñ‚Ñ–Ð² 2 ÐÐ²Ñ‚Ð¾Ð¿Ñ€Ð¸Ñ…Ð¾Ð²Ð°Ð½Ð½Ñ 3 Ðа передній план по кліку 4 Ð¤Ð¾ÐºÑƒÑ Ð¿Ð¾ кліку 5 Прикрашати нерезидентні вікна 6 ÐŸÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ñтільниць коліщатком миші 7 Ð¤Ð¾ÐºÑƒÑ Ð½Ð° оÑтаннє вікно Ñтільниці 8 Модель фокуÑÑƒÐ²Ð°Ð½Ð½Ñ 9 Переміщувати Ñ„Ð¾ÐºÑƒÑ Ð½Ð° нові вікна 10 Повна макÑÐ¸Ð¼Ñ–Ð·Ð°Ñ†Ñ–Ñ 11 Згладжувати Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ 12 ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð¸Ñ… вікон 15 ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð²Ñ–ÐºÐ¾Ð½ між ÑтільницÑми 17 Меню 18 ПрозоріÑть 19 Ðктивне вікно 20 Ðеактивне вікно $set 5 #Ewmh $set 6 #FbTkError $set 7 #Fluxbox $set 8 #Gnome $set 9 #Keys $set 10 #Menu 1 ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ 3 Вихід 4 Згорнуті вікна 5 Шар... 7 Ð Ð¾Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ 9 ПерезапуÑк $set 11 #Remember 1 Декорації 2 Розміри 3 ПереміÑтитиÑÑ Ð½Ð° Ñтільницю 4 Шар 5 Запам'Ñтати... 6 Ð Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ 7 Зберігати при закритті 8 Згорнуто в заголовок 9 Приклеєний 11 Ð¡Ñ‚Ñ–Ð»ÑŒÐ½Ð¸Ñ†Ñ $set 12 #Screen 2 W: %4d x H: %4d 4 W: %04d x H: %04d $set 13 #Slit 1 Клієнти 2 По колу вниз 3 По колу вгору 4 ÐžÑ€Ñ–Ñ”Ð½Ñ‚Ð°Ñ†Ñ–Ñ Ð´Ð¾ÐºÐµÑ€Ð° 7 Ð Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ÐºÐµÑ€Ð° 8 Докер 9 Зберегти ÑпиÑок клієнтів $set 14 #Toolbar 1 Редагувати ім'Ñ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ñ— Ñтільниці 2 Режим Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð²Ñ–ÐºÐ¾Ð½ 3 Ð’ÑÑ– вікна зі вÑÑ–Ñ… Ñтільниць 4 Мінімізовані на вÑÑ–Ñ… ÑтільницÑÑ… 5 Ðе відображати 6 Ð’ÑÑ– вікна 7 Мінімізовані 10 Ð Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ð½ÐµÐ»Ñ– інÑтрументів 11 Панель інÑтрументів 12 Ширина у відÑотках 16 Відображати іконки $set 15 #Window 1 Безіменне $set 16 #Windowmenu 1 Закрити 2 Згорнути на панель інÑтрументів 3 Шар... 4 Ðа задній план 5 МакÑимізувати 6 Ðа передній план 7 Відправити вікно на ... 8 Згорнути у заголовок 9 Приклеїти $set 17 #Workspace 1 Ð¡Ñ‚Ñ–Ð»ÑŒÐ½Ð¸Ñ†Ñ %d 2 Стільниці 3 Ðова ÑÑ‚Ñ–Ð»ÑŒÐ½Ð¸Ñ†Ñ 4 Видалити оÑтанню $set 18 #fbsetroot 1 помилка: необхідно задати один із таких ключів: -solid, -mod, -gradient\n 3 -display з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· диÑплеєм\n\ -mod макет клітинки\n\ -foreground, -fg колір переднього плану клітинки\n\ -background, -bg колір фона клітинки\n\n\ -gradient градієнт\n\ -from початковий колір градієнту\n\ -to кінцевий колір градієнту\n\n\ -solid Ñуцільний колір\n\n\ -help вивеÑти цю підказку Ñ– вийти\n $set 19 #main 1 помилка: '-display' потребує аргумент 11 помилка: '-rc' потребує аргумент 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tвикориÑтовувати заданий диÑплей.\n\ -rc \t\t\tвикориÑтовувати альтернативний файл реÑурÑів.\n\ -version\t\t\tвивеÑти номер верÑÑ–Ñ— Ñ– вийти.\n\ -info\t\t\t\tвивеÑти деÑку кориÑну інформацію Ñ– вийти.\n\ -log \t\t\tжурналювати вивід у вказаний файл.\n\ -help\t\t\t\tвивеÑти цю підказку Ñ– вийти.\n\n $set 20 #Layer 1 Ðад доком 2 Знизу 3 Ð¡Ñ‚Ñ–Ð»ÑŒÐ½Ð¸Ñ†Ñ 4 Док 5 Ðормальний 6 Згори fluxbox-1.3.5/nls/uk_UA/PaxHeaders.25974/generated-KOI8-U.m0000644000175000017500000000013212106662463021104 xustar000000000000000030 mtime=1360749875.591812466 30 atime=1360749875.607812466 30 ctime=1360750008.827811613 fluxbox-1.3.5/nls/uk_UA/generated-KOI8-U.m0000644000175000017500000000634112106662463017137 0ustar00mgmg00000000000000$ codeset=KOI8-U $set 1 #Align 1 úÎÉÚÕ × ÃÅÎÔÒ¦ 2 úÎÉÚÕ Ì¦×ÏÒÕÞ 3 úÎÉÚÕ ÐÒÁ×ÏÒÕÞ 4 çÏÒÉÚÏÎÔÁÌØÎÏ 5 ì¦×ÏÒÕÞ 6 ì¦×ÏÒÕÞ ÚÎÉÚÕ 7 ì¦×ÏÒÕÞ Õ ÃÅÎÔÒ¦ 8 ì¦×ÏÒÕÞ ÚÇÏÒÉ 9 îÁ ×ÓÀ ÛÉÒÉÎÕ 10 ðÒÁ×ÏÒÕÞ 11 ðÒÁ×ÏÒÕÞ ÚÎÉÚÕ 12 ðÒÁ×ÏÒÕÞ Õ ÃÅÎÔÒ¦ 13 ðÒÁ×ÏÒÕÞ ÕÇÏÒ¦ 14 õÇÏÒ¦ × ÃÅÎÔÒ¦ 15 õÇÏÒ¦ ̦×ÏÒÕÞ 16 õÇÏÒ¦ ÐÒÁ×ÏÒÕÞ 17 ÷ÅÒÔÉËÁÌØÎÏ $set 2 #BaseDisplay $set 3 #Common 1 ðÒÏÚÏÒ¦ÓÔØ 2 á×ÔÏÐÒÉÈÏ×ÁÎÎÑ 3 óËÏÍÐ¦ÌØÏ×ÁÎÉÊ 4 óËÏÍÐ¦ÌØÏ×ÁÎÉÊ Ú ÏÐæÑÍÉ 5 ëÏÍЦÌÑÔÏÒ 6 ÷ÅÒÓ¦Ñ ËÏÍЦÌÑÔÏÒÁ 7 æÁÊÌ ÒÅÓÕÒÓ¦× 8 æÁÊÌ ËÏͦÎÁÃ¦Ê ËÌÁ×¦Û 10 æÁÊÌ ÍÅÎÀ 11 æÁÊÌ Ú¦ ÓÔÉÌÅÍ 12 îÁÌÁÛÔÕ×ÁÎÎÑ ÐÏ ÚÁÍÏ×ÞÕ×ÁÎÎÀ 13 ×ÉÍËÎÅÎÁ 15 ÷ÅÒÓ¦Ñ Fluxbox 16 ð¦Ä צËÎÁÍÉ 18 ÷ÉÄÉÍÁ $set 4 #Configmenu 1 úÇÌÁÄÖÕ×ÁÎÎÑ ÛÒÉÆÔ¦× 2 á×ÔÏÐÒÉÈÏ×ÁÎÎÑ 3 îÁ ÐÅÒÅÄÎ¦Ê ÐÌÁÎ ÐÏ Ë̦ËÕ 4 æÏËÕÓ ÐÏ Ë̦ËÕ 5 ðÒÉËÒÁÛÁÔÉ ÎÅÒÅÚÉÄÅÎÔΦ צËÎÁ 6 ðÅÒÅÍÉËÁÎÎÑ ÓÔ¦ÌØÎÉÃØ ËÏ̦ÝÁÔËÏÍ ÍÉÛ¦ 7 æÏËÕÓ ÎÁ ÏÓÔÁÎΤ צËÎÏ ÓÔ¦ÌØÎÉæ 8 íÏÄÅÌØ ÆÏËÕÓÕ×ÁÎÎÑ 9 ðÅÒÅͦÝÕ×ÁÔÉ ÆÏËÕÓ ÎÁ ÎÏצ צËÎÁ 10 ðÏ×ÎÁ ÍÁËÓÉͦÚÁÃ¦Ñ 11 úÇÌÁÄÖÕ×ÁÔÉ ÚÏÂÒÁÖÅÎÎÑ 12 ðÅÒÅͦÝÅÎÎÑ ÚÁÐÏ×ÎÅÎÉÈ ×¦ËÏÎ 15 ðÅÒÅͦÝÅÎÎÑ ×¦ËÏÎ Í¦Ö ÓÔ¦ÌØÎÉÃÑÍÉ 17 íÅÎÀ 18 ðÒÏÚÏÒ¦ÓÔØ 19 áËÔÉ×ΊצËÎÏ 20 îÅÁËÔÉ×ΊצËÎÏ $set 5 #Ewmh $set 6 #FbTkError $set 7 #Fluxbox $set 8 #Gnome $set 9 #Keys $set 10 #Menu 1 îÁÌÁÛÔÕ×ÁÎÎÑ 3 ÷ÉÈ¦Ä 4 úÇÏÒÎÕÔ¦ צËÎÁ 5 ûÁÒ... 7 òÏÚͦÝÅÎÎÑ 9 ðÅÒÅÚÁÐÕÓË $set 11 #Remember 1 äÅËÏÒÁæ§ 2 òÏÚͦÒÉ 3 ðÅÒÅͦÓÔÉÔÉÓÑ ÎÁ ÓÔ¦ÌØÎÉÃÀ 4 ûÁÒ 5 úÁÐÁÍ'ÑÔÁÔÉ... 6 òÏÚÔÁÛÕ×ÁÎÎÑ 7 úÂÅÒ¦ÇÁÔÉ ÐÒÉ ÚÁËÒÉÔÔ¦ 8 úÇÏÒÎÕÔÏ × ÚÁÇÏÌÏ×ÏË 9 ðÒÉËÌŤÎÉÊ 11 óÔ¦ÌØÎÉÃÑ $set 12 #Screen 2 W: %4d x H: %4d 4 W: %04d x H: %04d $set 13 #Slit 1 ë̦¤ÎÔÉ 2 ðÏ ËÏÌÕ ×ÎÉÚ 3 ðÏ ËÏÌÕ ×ÇÏÒÕ 4 ïÒ¦¤ÎÔÁÃ¦Ñ ÄÏËÅÒÁ 7 òÏÚÔÁÛÕ×ÁÎÎÑ ÄÏËÅÒÁ 8 äÏËÅÒ 9 úÂÅÒÅÇÔÉ ÓÐÉÓÏË Ë̦¤ÎÔ¦× $set 14 #Toolbar 1 òÅÄÁÇÕ×ÁÔÉ ¦Í'Ñ ÐÏÔÏÞÎϧ ÓÔ¦ÌØÎÉæ 2 òÅÖÉÍ ×¦ÄÏÂÒÁÖÅÎÎÑ ×¦ËÏÎ 3 ÷Ó¦ צËÎÁ Ú¦ ×Ó¦È ÓÔ¦ÌØÎÉÃØ 4 í¦Î¦Í¦ÚÏ×ÁΦ ÎÁ ×Ó¦È ÓÔ¦ÌØÎÉÃÑÈ 5 îŠצÄÏÂÒÁÖÁÔÉ 6 ÷Ó¦ צËÎÁ 7 í¦Î¦Í¦ÚÏ×ÁΦ 10 òÏÚÔÁÛÕ×ÁÎÎÑ ÐÁÎÅ̦ ¦ÎÓÔÒÕÍÅÎÔ¦× 11 ðÁÎÅÌØ ¦ÎÓÔÒÕÍÅÎÔ¦× 12 ûÉÒÉÎÁ Õ ×¦ÄÓÏÔËÁÈ 16 ÷¦ÄÏÂÒÁÖÁÔÉ ¦ËÏÎËÉ $set 15 #Window 1 âÅÚ¦ÍÅÎÎÅ $set 16 #Windowmenu 1 úÁËÒÉÔÉ 2 úÇÏÒÎÕÔÉ ÎÁ ÐÁÎÅÌØ ¦ÎÓÔÒÕÍÅÎÔ¦× 3 ûÁÒ... 4 îÁ ÚÁÄÎ¦Ê ÐÌÁÎ 5 íÁËÓÉͦÚÕ×ÁÔÉ 6 îÁ ÐÅÒÅÄÎ¦Ê ÐÌÁÎ 7 ÷¦ÄÐÒÁ×ÉÔÉ ×¦ËÎÏ ÎÁ ... 8 úÇÏÒÎÕÔÉ Õ ÚÁÇÏÌÏ×ÏË 9 ðÒÉËÌŧÔÉ $set 17 #Workspace 1 óÔ¦ÌØÎÉÃÑ %d 2 óÔ¦ÌØÎÉæ 3 îÏ×Á ÓÔ¦ÌØÎÉÃÑ 4 ÷ÉÄÁÌÉÔÉ ÏÓÔÁÎÎÀ $set 18 #fbsetroot 1 ÐÏÍÉÌËÁ: ÎÅÏÂȦÄÎÏ ÚÁÄÁÔÉ ÏÄÉÎ ¦Ú ÔÁËÉÈ ËÌÀÞ¦×: -solid, -mod, -gradient\n 3 -display Ú'¤ÄÎÁÎÎÑ Ú ÄÉÓÐÌŤÍ\n\ -mod ÍÁËÅÔ Ë̦ÔÉÎËÉ\n\ -foreground, -fg ËÏÌ¦Ò ÐÅÒÅÄÎØÏÇÏ ÐÌÁÎÕ Ë̦ÔÉÎËÉ\n\ -background, -bg ËÏÌ¦Ò ÆÏÎÁ Ë̦ÔÉÎËÉ\n\n\ -gradient ÇÒÁĦ¤ÎÔ\n\ -from ÐÏÞÁÔËÏ×ÉÊ ËÏÌ¦Ò ÇÒÁĦ¤ÎÔÕ\n\ -to ˦ÎÃÅ×ÉÊ ËÏÌ¦Ò ÇÒÁĦ¤ÎÔÕ\n\n\ -solid ÓÕÃ¦ÌØÎÉÊ ËÏ̦Ò\n\n\ -help ×É×ÅÓÔÉ ÃÀ ЦÄËÁÚËÕ ¦ ×ÉÊÔÉ\n $set 19 #main 1 ÐÏÍÉÌËÁ: '-display' ÐÏÔÒÅÂÕ¤ ÁÒÇÕÍÅÎÔ 11 ÐÏÍÉÌËÁ: '-rc' ÐÏÔÒÅÂÕ¤ ÁÒÇÕÍÅÎÔ 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\t×ÉËÏÒÉÓÔÏ×Õ×ÁÔÉ ÚÁÄÁÎÉÊ ÄÉÓÐÌÅÊ.\n\ -rc \t\t\t×ÉËÏÒÉÓÔÏ×Õ×ÁÔÉ ÁÌØÔÅÒÎÁÔÉ×ÎÉÊ ÆÁÊÌ ÒÅÓÕÒÓ¦×.\n\ -version\t\t\t×É×ÅÓÔÉ ÎÏÍÅÒ ×ÅÒÓ¦§ ¦ ×ÉÊÔÉ.\n\ -info\t\t\t\t×É×ÅÓÔÉ ÄÅÑËÕ ËÏÒÉÓÎÕ ¦ÎÆÏÒÍÁæÀ ¦ ×ÉÊÔÉ.\n\ -log \t\t\tÖÕÒÎÁÌÀ×ÁÔÉ ×É×¦Ä Õ ×ËÁÚÁÎÉÊ ÆÁÊÌ.\n\ -help\t\t\t\t×É×ÅÓÔÉ ÃÀ ЦÄËÁÚËÕ ¦ ×ÉÊÔÉ.\n\n $set 20 #Layer 1 îÁÄ ÄÏËÏÍ 2 úÎÉÚÕ 3 óÔ¦ÌØÎÉÃÑ 4 äÏË 5 îÏÒÍÁÌØÎÉÊ 6 úÇÏÒÉ fluxbox-1.3.5/nls/uk_UA/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020530 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749875.591812466 30 ctime=1360750008.827811613 fluxbox-1.3.5/nls/uk_UA/Translation.m0000644000175000017500000000634112106662425016563 0ustar00mgmg00000000000000$ codeset=KOI8-U $set 1 #Align 1 úÎÉÚÕ × ÃÅÎÔÒ¦ 2 úÎÉÚÕ Ì¦×ÏÒÕÞ 3 úÎÉÚÕ ÐÒÁ×ÏÒÕÞ 4 çÏÒÉÚÏÎÔÁÌØÎÏ 5 ì¦×ÏÒÕÞ 6 ì¦×ÏÒÕÞ ÚÎÉÚÕ 7 ì¦×ÏÒÕÞ Õ ÃÅÎÔÒ¦ 8 ì¦×ÏÒÕÞ ÚÇÏÒÉ 9 îÁ ×ÓÀ ÛÉÒÉÎÕ 10 ðÒÁ×ÏÒÕÞ 11 ðÒÁ×ÏÒÕÞ ÚÎÉÚÕ 12 ðÒÁ×ÏÒÕÞ Õ ÃÅÎÔÒ¦ 13 ðÒÁ×ÏÒÕÞ ÕÇÏÒ¦ 14 õÇÏÒ¦ × ÃÅÎÔÒ¦ 15 õÇÏÒ¦ ̦×ÏÒÕÞ 16 õÇÏÒ¦ ÐÒÁ×ÏÒÕÞ 17 ÷ÅÒÔÉËÁÌØÎÏ $set 2 #BaseDisplay $set 3 #Common 1 ðÒÏÚÏÒ¦ÓÔØ 2 á×ÔÏÐÒÉÈÏ×ÁÎÎÑ 3 óËÏÍÐ¦ÌØÏ×ÁÎÉÊ 4 óËÏÍÐ¦ÌØÏ×ÁÎÉÊ Ú ÏÐæÑÍÉ 5 ëÏÍЦÌÑÔÏÒ 6 ÷ÅÒÓ¦Ñ ËÏÍЦÌÑÔÏÒÁ 7 æÁÊÌ ÒÅÓÕÒÓ¦× 8 æÁÊÌ ËÏͦÎÁÃ¦Ê ËÌÁ×¦Û 10 æÁÊÌ ÍÅÎÀ 11 æÁÊÌ Ú¦ ÓÔÉÌÅÍ 12 îÁÌÁÛÔÕ×ÁÎÎÑ ÐÏ ÚÁÍÏ×ÞÕ×ÁÎÎÀ 13 ×ÉÍËÎÅÎÁ 15 ÷ÅÒÓ¦Ñ Fluxbox 16 ð¦Ä צËÎÁÍÉ 18 ÷ÉÄÉÍÁ $set 4 #Configmenu 1 úÇÌÁÄÖÕ×ÁÎÎÑ ÛÒÉÆÔ¦× 2 á×ÔÏÐÒÉÈÏ×ÁÎÎÑ 3 îÁ ÐÅÒÅÄÎ¦Ê ÐÌÁÎ ÐÏ Ë̦ËÕ 4 æÏËÕÓ ÐÏ Ë̦ËÕ 5 ðÒÉËÒÁÛÁÔÉ ÎÅÒÅÚÉÄÅÎÔΦ צËÎÁ 6 ðÅÒÅÍÉËÁÎÎÑ ÓÔ¦ÌØÎÉÃØ ËÏ̦ÝÁÔËÏÍ ÍÉÛ¦ 7 æÏËÕÓ ÎÁ ÏÓÔÁÎΤ צËÎÏ ÓÔ¦ÌØÎÉæ 8 íÏÄÅÌØ ÆÏËÕÓÕ×ÁÎÎÑ 9 ðÅÒÅͦÝÕ×ÁÔÉ ÆÏËÕÓ ÎÁ ÎÏצ צËÎÁ 10 ðÏ×ÎÁ ÍÁËÓÉͦÚÁÃ¦Ñ 11 úÇÌÁÄÖÕ×ÁÔÉ ÚÏÂÒÁÖÅÎÎÑ 12 ðÅÒÅͦÝÅÎÎÑ ÚÁÐÏ×ÎÅÎÉÈ ×¦ËÏÎ 15 ðÅÒÅͦÝÅÎÎÑ ×¦ËÏÎ Í¦Ö ÓÔ¦ÌØÎÉÃÑÍÉ 17 íÅÎÀ 18 ðÒÏÚÏÒ¦ÓÔØ 19 áËÔÉ×ΊצËÎÏ 20 îÅÁËÔÉ×ΊצËÎÏ $set 5 #Ewmh $set 6 #FbTkError $set 7 #Fluxbox $set 8 #Gnome $set 9 #Keys $set 10 #Menu 1 îÁÌÁÛÔÕ×ÁÎÎÑ 3 ÷ÉÈ¦Ä 4 úÇÏÒÎÕÔ¦ צËÎÁ 5 ûÁÒ... 7 òÏÚͦÝÅÎÎÑ 9 ðÅÒÅÚÁÐÕÓË $set 11 #Remember 1 äÅËÏÒÁæ§ 2 òÏÚͦÒÉ 3 ðÅÒÅͦÓÔÉÔÉÓÑ ÎÁ ÓÔ¦ÌØÎÉÃÀ 4 ûÁÒ 5 úÁÐÁÍ'ÑÔÁÔÉ... 6 òÏÚÔÁÛÕ×ÁÎÎÑ 7 úÂÅÒ¦ÇÁÔÉ ÐÒÉ ÚÁËÒÉÔÔ¦ 8 úÇÏÒÎÕÔÏ × ÚÁÇÏÌÏ×ÏË 9 ðÒÉËÌŤÎÉÊ 11 óÔ¦ÌØÎÉÃÑ $set 12 #Screen 2 W: %4d x H: %4d 4 W: %04d x H: %04d $set 13 #Slit 1 ë̦¤ÎÔÉ 2 ðÏ ËÏÌÕ ×ÎÉÚ 3 ðÏ ËÏÌÕ ×ÇÏÒÕ 4 ïÒ¦¤ÎÔÁÃ¦Ñ ÄÏËÅÒÁ 7 òÏÚÔÁÛÕ×ÁÎÎÑ ÄÏËÅÒÁ 8 äÏËÅÒ 9 úÂÅÒÅÇÔÉ ÓÐÉÓÏË Ë̦¤ÎÔ¦× $set 14 #Toolbar 1 òÅÄÁÇÕ×ÁÔÉ ¦Í'Ñ ÐÏÔÏÞÎϧ ÓÔ¦ÌØÎÉæ 2 òÅÖÉÍ ×¦ÄÏÂÒÁÖÅÎÎÑ ×¦ËÏÎ 3 ÷Ó¦ צËÎÁ Ú¦ ×Ó¦È ÓÔ¦ÌØÎÉÃØ 4 í¦Î¦Í¦ÚÏ×ÁΦ ÎÁ ×Ó¦È ÓÔ¦ÌØÎÉÃÑÈ 5 îŠצÄÏÂÒÁÖÁÔÉ 6 ÷Ó¦ צËÎÁ 7 í¦Î¦Í¦ÚÏ×ÁΦ 10 òÏÚÔÁÛÕ×ÁÎÎÑ ÐÁÎÅ̦ ¦ÎÓÔÒÕÍÅÎÔ¦× 11 ðÁÎÅÌØ ¦ÎÓÔÒÕÍÅÎÔ¦× 12 ûÉÒÉÎÁ Õ ×¦ÄÓÏÔËÁÈ 16 ÷¦ÄÏÂÒÁÖÁÔÉ ¦ËÏÎËÉ $set 15 #Window 1 âÅÚ¦ÍÅÎÎÅ $set 16 #Windowmenu 1 úÁËÒÉÔÉ 2 úÇÏÒÎÕÔÉ ÎÁ ÐÁÎÅÌØ ¦ÎÓÔÒÕÍÅÎÔ¦× 3 ûÁÒ... 4 îÁ ÚÁÄÎ¦Ê ÐÌÁÎ 5 íÁËÓÉͦÚÕ×ÁÔÉ 6 îÁ ÐÅÒÅÄÎ¦Ê ÐÌÁÎ 7 ÷¦ÄÐÒÁ×ÉÔÉ ×¦ËÎÏ ÎÁ ... 8 úÇÏÒÎÕÔÉ Õ ÚÁÇÏÌÏ×ÏË 9 ðÒÉËÌŧÔÉ $set 17 #Workspace 1 óÔ¦ÌØÎÉÃÑ %d 2 óÔ¦ÌØÎÉæ 3 îÏ×Á ÓÔ¦ÌØÎÉÃÑ 4 ÷ÉÄÁÌÉÔÉ ÏÓÔÁÎÎÀ $set 18 #fbsetroot 1 ÐÏÍÉÌËÁ: ÎÅÏÂȦÄÎÏ ÚÁÄÁÔÉ ÏÄÉÎ ¦Ú ÔÁËÉÈ ËÌÀÞ¦×: -solid, -mod, -gradient\n 3 -display Ú'¤ÄÎÁÎÎÑ Ú ÄÉÓÐÌŤÍ\n\ -mod ÍÁËÅÔ Ë̦ÔÉÎËÉ\n\ -foreground, -fg ËÏÌ¦Ò ÐÅÒÅÄÎØÏÇÏ ÐÌÁÎÕ Ë̦ÔÉÎËÉ\n\ -background, -bg ËÏÌ¦Ò ÆÏÎÁ Ë̦ÔÉÎËÉ\n\n\ -gradient ÇÒÁĦ¤ÎÔ\n\ -from ÐÏÞÁÔËÏ×ÉÊ ËÏÌ¦Ò ÇÒÁĦ¤ÎÔÕ\n\ -to ˦ÎÃÅ×ÉÊ ËÏÌ¦Ò ÇÒÁĦ¤ÎÔÕ\n\n\ -solid ÓÕÃ¦ÌØÎÉÊ ËÏ̦Ò\n\n\ -help ×É×ÅÓÔÉ ÃÀ ЦÄËÁÚËÕ ¦ ×ÉÊÔÉ\n $set 19 #main 1 ÐÏÍÉÌËÁ: '-display' ÐÏÔÒÅÂÕ¤ ÁÒÇÕÍÅÎÔ 11 ÐÏÍÉÌËÁ: '-rc' ÐÏÔÒÅÂÕ¤ ÁÒÇÕÍÅÎÔ 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\t×ÉËÏÒÉÓÔÏ×Õ×ÁÔÉ ÚÁÄÁÎÉÊ ÄÉÓÐÌÅÊ.\n\ -rc \t\t\t×ÉËÏÒÉÓÔÏ×Õ×ÁÔÉ ÁÌØÔÅÒÎÁÔÉ×ÎÉÊ ÆÁÊÌ ÒÅÓÕÒÓ¦×.\n\ -version\t\t\t×É×ÅÓÔÉ ÎÏÍÅÒ ×ÅÒÓ¦§ ¦ ×ÉÊÔÉ.\n\ -info\t\t\t\t×É×ÅÓÔÉ ÄÅÑËÕ ËÏÒÉÓÎÕ ¦ÎÆÏÒÍÁæÀ ¦ ×ÉÊÔÉ.\n\ -log \t\t\tÖÕÒÎÁÌÀ×ÁÔÉ ×É×¦Ä Õ ×ËÁÚÁÎÉÊ ÆÁÊÌ.\n\ -help\t\t\t\t×É×ÅÓÔÉ ÃÀ ЦÄËÁÚËÕ ¦ ×ÉÊÔÉ.\n\n $set 20 #Layer 1 îÁÄ ÄÏËÏÍ 2 úÎÉÚÕ 3 óÔ¦ÌØÎÉÃÑ 4 äÏË 5 îÏÒÍÁÌØÎÉÊ 6 úÇÏÒÉ fluxbox-1.3.5/nls/uk_UA/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662604020120 xustar000000000000000030 mtime=1360749956.395811949 30 atime=1360750004.039811644 30 ctime=1360750008.827811613 fluxbox-1.3.5/nls/uk_UA/Makefile.in0000644000175000017500000002714412106662604016157 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/uk_UA/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/uk_UA DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = uk_UA SRC_CODESET = KOI8-U DEST_CODESETS = KOI8-U UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/uk_UA/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/uk_UA/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/uk_UA/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020110 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749854.243812603 30 ctime=1360750008.831811613 fluxbox-1.3.5/nls/uk_UA/Makefile.am0000644000175000017500000000300012106662425016130 0ustar00mgmg00000000000000# nls/uk_UA/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = uk_UA SRC_CODESET = KOI8-U DEST_CODESETS = KOI8-U UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/be_BY0000644000175000017500000000013212106662666015762 xustar000000000000000030 mtime=1360750006.335811629 30 atime=1360750008.831811613 30 ctime=1360750008.831811613 fluxbox-1.3.5/nls/be_BY/0000755000175000017500000000000012106662666014066 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/be_BY/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662463020747 xustar000000000000000030 mtime=1360749875.551812466 30 atime=1360749875.567812466 30 ctime=1360750008.831811613 fluxbox-1.3.5/nls/be_BY/generated-UTF-8.m0000644000175000017500000002150212106662463016776 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Унізе па ÑÑÑ€Ñдзіне 2 Унізе леваруч 3 Унізе праваруч 4 Па гарызанталі 5 Леваруч 6 Леваруч ўнізе 7 Леваруч па ÑÑÑ€Ñдзіне 8 Леваруч ўверÑе 9 Па уÑёй шырыні 10 Праваруч 11 Праваруч ўнізе 12 Праваруч па ÑÑÑ€Ñдзіне 13 Праваруч ўверÑе 14 УверÑе па ÑÑÑ€Ñдзіне 15 УверÑе леваруч 16 УверÑе праваруч 17 Па вÑртыкалі $set 2 #BaseDisplay 1 Ðварыйнае завÑршÑньне... ÑтварÑньне адбітку памÑці\n 2 ЗавÑршÑньне\n 3 %s: Ñыгнал %d атрыманы\n $set 3 #Common 1 ПразрыÑтаÑьць 2 Ðўтаматычна хаваць 3 СкампілÑваны 4 СкампілÑваны з выбарам 5 КампілÑтар 6 Ð’ÑÑ€ÑÑ–Ñ ÐºÐ°Ð¼Ð¿Ñ–Ð»Ñтара 7 Файл наладак 8 Файл клÑвіш 10 Файл мÑню 11 Файл з Ñтылем 12 Ð”Ð°Ð¿Ð¾Ð¼Ð½Ñ‹Ñ Ð½Ð°Ð»Ð°Ð´ÐºÑ– 13 выключана 14 Памылка 15 Ð’ÑÑ€ÑÑ–Ñ Fluxbox 16 Пад вокнамі 18 Ð‘Ð°Ñ‡Ð½Ð°Ñ $set 4 #Configmenu 1 ÐнтыаліаÑінг 2 Падымаць аўтаматычна 3 Падымаць па шчаўчку 4 ЗаÑÑроджваньне па шчаўчку 5 Упрыгожваць нерÑзыдÑÐ½Ñ‚Ñ‹Ñ Ð²Ð¾ÐºÐ½Ñ‹ 6 МÑнÑць Ñтальцы колам мышы 7 ЗаÑÑроджваньне на вакне пры зьмене працоўнага меÑца 8 МадÑль заÑÑÑ€Ð¾Ð´Ð¶Ð²Ð°Ð½ÑŒÐ½Ñ 9 ЗаÑÑроджваньне на новых вокнах 10 МакÑымізаваць цалкам 11 Згладжваньне выÑваў 12 Рух запоўненых вокнаў 13 Размытае заÑÑроджваньне 14 ЗаÑÑроджваньне па руху 15 Рух вокнаў паміж працоўнымі меÑцамі 16 Змушаць да пÑÑўда-празрыÑтаÑьці 17 ПразрыÑтае мÑню 18 ПразрыÑтаÑьць 19 ПразрыÑтае вакно пад заÑÑроджваньнем 20 ПразрыÑтае вакно без заÑÑÑ€Ð¾Ð´Ð¶Ð²Ð°Ð½ÑŒÐ½Ñ $set 5 #Ewmh 1 Згубна: ÐеÑтае памÑці, немагчыма вылучыць пад EWMH кліент $set 6 #FbTkError 1 Увага! Ð’Ñ‹ÑˆÑ‹Ð½Ñ > 3200 Ð’Ñ‹ÑˆÑ‹Ð½Ñ Ð·Ñ€Ð¾Ð±Ð»ÐµÐ½Ð°Ñ = 3200 2 Увага! Ð¨Ñ‹Ñ€Ñ‹Ð½Ñ > 3200 Ð¨Ñ‹Ñ€Ñ‹Ð½Ñ Ð·Ñ€Ð¾Ð±Ð»ÐµÐ½Ð°Ñ = 3200 3 Увага: немагчыма загрузіць запаÑны шрыфт 4 Памылка вылучÑньнÑ. 5 Памылка пры ÑтварÑньні выÑваў 6 Ðемагчыма Ñтварыць XImage 7 Ðемагчыма прачытаць 8 Увага: Ðемагчыма знайÑьці правільны фармат Ð´Ð»Ñ Ð¿Ñ€Ð°Ð·Ñ€Ñ‹ÑтаÑьці. 9 Увага: Ðемагчыма Ñтварыць празрыÑтую выÑву. 10 Увага: Ðемагчыма Ñтварыць празрыÑтую выÑву. 11 Ðемагчыма вызначыць фармат Ñкрану(%d) 12 ÐеÑтае памÑці 13 ÐеÑтае памÑці Ð´Ð»Ñ Ð±ÑƒÑ„Ñра блакітнага колеру. 14 ÐеÑтае памÑці Ð´Ð»Ñ Ð±ÑƒÑ„Ñра зÑлёнага колеру. 15 ÐеÑтае памÑці Ð´Ð»Ñ Ð±ÑƒÑ„Ñра чырвонага колеру. 16 Ðемагчыма прачытаць ÑлемÑнт Ñ‚Ñмы 17 unsupported visual 18 УÑталÑваць дапомнаÑьці $set 7 #Fluxbox 1 Ðазва rc-файла нÑправільнаÑ! 2 Ðемагчыма загрузіць файл груп 3 Ðемагчыма загрузіць базу дадзеных 4 ПаÑпрабуйце ÑÑˆÑ‡Ñ Ð· 5 Увага! Ðемагчыма адшукаць Ñкран каб паказаць акно! 6 Ðемагчыма Ñтварыць Ñ‚Ñчку %s 7 Ðемагчыма знайÑьці Ñкран Ð´Ð»Ñ ÐºÑ–Ñ€Ð°Ð²Ð°Ð½ÑŒÐ½Ñ.\nУпÑўніцеÑÑ ÑˆÑ‚Ð¾ не працуе іншы кіраўнік вокнаў. 8 Памылка разбору Ñ€ÑгулÑрнага выразу 9 Згубна! Можа выконвацца толькі адзін fluxbox . 10 Ðемагчыма далучыцца да X-паÑлужніку.\nУпÑўніцеÑÑ ÑˆÑ‚Ð¾ X Ñтартуе перад Fluxbox. 11 Увага: X-паÑлужнік не падтрымлівае лÑкаль 12 Увага: Ðемагчыма уÑталÑваць мадыфікатары лÑкалі $set 8 #Gnome 1 Згубна: ÐеÑтае памÑці, немагчыма вылучыць пад GNOME кліент $set 9 #Keys 1 Keys: Памылка Ñž радку 2 Keys: Збой злучÑÐ½ÑŒÐ½Ñ 'keytree'e! 3 Keys: ÐÑÐ¿Ñ€Ð°Ð²Ñ–Ð»ÑŒÐ½Ð°Ñ ÐºÐ½Ð¾Ð¿ÐºÐ° або мадыфікатар у радку $set 10 #Menu 1 Ðаладкі 2 Стандартнае мÑню Fluxbox 3 Выхад 4 Вобразы 5 Слой... 6 On Head... 7 МеÑца 8 Перачытаць наладкі 9 ПерапуÑк $set 11 #Remember 1 Упрыгожваньні 2 Памер 3 Скокнуць да працоўнага меÑца 4 Слой 5 ПамÑтаць... 6 ÐŸÐ°Ð·Ñ‹Ñ†Ñ‹Ñ 7 Захоўваць пры выхадзе 8 Схаваць у загаловак 9 Прылеплены 10 Unknown apps key 11 Працоўнае меÑца 12 Загаловак $set 12 #Screen 1 BScreen::BScreen: памылка у чаÑе зьвÑÑ€Ñ‚Ð°Ð½ÑŒÐ½Ñ Ð´Ð° X-ÑпаÑлужніку.\n другі кіраўнік вокнамі ўжо выконваецца на гÑтым дыÑплÑÑ– 2 W: %4d x H: %4d 3 BScreen::BScreen: кіраваньне Ñкранам %d карыÑтаючыÑÑ visual 0x%lx, Ð³Ð»Ñ‹Ð±Ñ–Ð½Ñ %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Кліенты 2 Па кругу ўніз 3 Па кругу ўверх 4 Ðапрамак шчыліны 5 Слой шчыліны 7 МеÑца шчыліны 8 Шчыліна 9 Захаваць ÑÑŒÐ¿Ñ–Ñ ÑˆÑ‡Ñ‹Ð»Ñ–Ð½Ñ‹ $set 14 #Toolbar 1 РÑдагаваць назву гÑтага працоўнага меÑца 2 РÑжым адлюÑÑ‚Ñ€Ð°Ð²Ð°Ð½ÑŒÐ½Ñ Ð²Ð¾ÐºÐ½Ð°Ñž 3 УÑе вокны 4 Вобразы 5 Ðічога 6 Працоўнае меÑца 7 ÐœÑ–Ð½Ñ–Ð¼Ð°Ð»Ñ–Ð·Ð°Ð²Ð°Ð½Ñ‹Ñ 8 Слой панÑлі прыладаў 9 Toolbar on Head 10 МеÑца панÑлі прыладаў 11 ПанÑль прыладаў 12 Ð¨Ñ‹Ñ€Ñ‹Ð½Ñ Ñž адÑотках 13 Фармат чаÑу: 24 гадзіны 14 Фармат чаÑу: 12 гадзін 15 Заманіць фармат адлюÑÑ‚Ñ€Ð°Ð²Ð°Ð½ÑŒÐ½Ñ Ñ‡Ð°Ñу 16 Паказваць выÑвы $set 15 #Window 1 Безназоўнае $set 16 #Windowmenu 1 Закрыць 2 ЗьвÑрнуць Ñž панÑль прыладаў 3 Слой... 4 ÐіжÑй 5 МакÑымізаваць 6 ВышÑй 7 ДаÑлаць акно на ... 8 ЗьвÑрнуць Ñž загаловак 9 ПрылÑпіць 10 Забіць $set 17 #Workspace 1 Працоўнае меÑца %d 2 ÐŸÑ€Ð°Ñ†Ð¾ÑžÐ½Ñ‹Ñ Ð¼ÐµÑцы 3 Ðовае працоўнае меÑца 4 Выдаліць апошнÑе $set 18 #fbsetroot 1 памылка: павінна быць нешта з наÑтупнага: -solid, -mod, -gradient\n 3 -display ЗлучÑньне з дыÑплÑÑм\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient градыент\n\ -from першы колер градыенту\n\ -to апошні колер градыенту\n\n\ -solid ÑуцÑльны колер\n\n\ -help надрукаваць гÑты Ñ‚ÑкÑÑ‚ ды выйÑьці\n $set 19 #main 1 памылка: '-display' патрÑбны аргумÑнт 5 Памылка Ð²Ñ‹ÐºÐ°Ð½Ð°Ð½ÑŒÐ½Ñ 6 Стандартнае выключана 7 ÐевÑÐ´Ð¾Ð¼Ð°Ñ Ð¿Ð°Ð¼Ñ‹Ð»ÐºÐ° 8 памылка: '-log' патрÑбны аргумÑнт 9 Файл чаÑопіÑу 10 ЗапіÑваць чаÑопіÑу 11 памылка: '-rc' патрÑбны аргумÑнт 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tкарыÑтацца адзначаным даÑыплем.\n\ -rc \t\t\tкарыÑтацца другім файлам Ñ€ÑÑурÑаў.\n\ -version\t\t\tпаказаць нумар вÑÑ€ÑÑ–Ñ– ды выйÑьці.\n\ -info\t\t\t\tпаказаць некаторую карыÑную інфармацыю ды выйÑьці.\n\ -log \t\t\tЗапіÑваць лог у адзначаны файл.\n\ -help\t\t\t\tнадрукаваць гÑты Ñ‚ÑкÑÑ‚ ды выйÑьці.\n\n 14 увага: немагчыма прызначыць пераменную аÑÑродку 'DISPLAY' $set 20 1 ВышÑй шчыліны 2 ÐіжÑй 3 Сталец 4 Шчыліна 5 ÐÐ°Ñ€Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ 6 ВышÑй fluxbox-1.3.5/nls/be_BY/PaxHeaders.25974/generated-CP1251.m0000644000175000017500000000013212106662463020757 xustar000000000000000030 mtime=1360749875.547812466 30 atime=1360749875.567812466 30 ctime=1360750008.831811613 fluxbox-1.3.5/nls/be_BY/generated-CP1251.m0000644000175000017500000001275112106662463017014 0ustar00mgmg00000000000000$ codeset=CP1251 $set 1 #Align 1 Óí³çå ïà ñÿðýäç³íå 2 Óí³çå ëåâàðó÷ 3 Óí³çå ïðàâàðó÷ 4 Ïà ãàðûçàíòàë³ 5 Ëåâàðó÷ 6 Ëåâàðó÷ ¢í³çå 7 Ëåâàðó÷ ïà ñÿðýäç³íå 8 Ëåâàðó÷ ¢âåðñå 9 Ïà óñ¸é øûðûí³ 10 Ïðàâàðó÷ 11 Ïðàâàðó÷ ¢í³çå 12 Ïðàâàðó÷ ïà ñÿðýäç³íå 13 Ïðàâàðó÷ ¢âåðñå 14 Óâåðñå ïà ñÿðýäç³íå 15 Óâåðñå ëåâàðó÷ 16 Óâåðñå ïðàâàðó÷ 17 Ïà âýðòûêàë³ $set 2 #BaseDisplay 1 Àâàðûéíàå çàâÿðøýíüíå... ñòâàðýíüíå àäá³òêó ïàìÿö³\n 2 Çàâÿðøýíüíå\n 3 %s: ñûãíàë %d àòðûìàíû\n $set 3 #Common 1 Ïðàçðûñòàñüöü 2 À¢òàìàòû÷íà õàâàöü 3 Ñêàìï³ëÿâàíû 4 Ñêàìï³ëÿâàíû ç âûáàðàì 5 Êàìï³ëÿòàð 6 Âýðñ³ÿ êàìï³ëÿòàðà 7 Ôàéë íàëàäàê 8 Ôàéë êëÿâ³ø 10 Ôàéë ìýíþ 11 Ôàéë ç ñòûëåì 12 Äàïîìíûÿ íàëàäê³ 13 âûêëþ÷àíà 14 Ïàìûëêà 15 Âýðñ³ÿ Fluxbox 16 Ïàä âîêíàì³ 18 Áà÷íàÿ $set 4 #Configmenu 1 Àíòûàë³àñ³íã 2 Ïàäûìàöü à¢òàìàòû÷íà 3 Ïàäûìàöü ïà ø÷à¢÷êó 4 Çàñÿðîäæâàíüíå ïà ø÷à¢÷êó 5 Óïðûãîæâàöü íåðýçûäýíòûÿ âîêíû 6 Ìÿíÿöü ñòàëüöû êîëàì ìûøû 7 Çàñÿðîäæâàíüíå íà âàêíå ïðû çüìåíå ïðàöî¢íàãà ìåñöà 8 Ìàäýëü çàñÿðîäæâàíüíÿ 9 Çàñÿðîäæâàíüíå íà íîâûõ âîêíàõ 10 Ìàêñûì³çàâàöü öàëêàì 11 Çãëàäæâàíüíå âûÿâࢠ12 Ðóõ çàïî¢íåíûõ âîêíࢠ13 Ðàçìûòàå çàñÿðîäæâàíüíå 14 Çàñÿðîäæâàíüíå ïà ðóõó 15 Ðóõ âîêíࢠïàì³æ ïðàöî¢íûì³ ìåñöàì³ 16 Çìóøàöü äà ïñý¢äà-ïðàçðûñòàñüö³ 17 Ïðàçðûñòàå ìýíþ 18 Ïðàçðûñòàñüöü 19 Ïðàçðûñòàå âàêíî ïàä çàñÿðîäæâàíüíåì 20 Ïðàçðûñòàå âàêíî áåç çàñÿðîäæâàíüíÿ $set 5 #Ewmh 1 Çãóáíà: Íåñòàå ïàìÿö³, íåìàã÷ûìà âûëó÷ûöü ïàä EWMH êë³åíò $set 6 #FbTkError 1 Óâàãà! Âûøûíÿ > 3200 Âûøûíÿ çðîáëåíàÿ = 3200 2 Óâàãà! Øûðûíÿ > 3200 Øûðûíÿ çðîáëåíàÿ = 3200 3 Óâàãà: íåìàã÷ûìà çàãðóç³öü çàïàñíû øðûôò 4 Ïàìûëêà âûëó÷ýíüíÿ. 5 Ïàìûëêà ïðû ñòâàðýíüí³ âûÿâࢠ6 Íåìàã÷ûìà ñòâàðûöü XImage 7 Íåìàã÷ûìà ïðà÷ûòàöü 8 Óâàãà: Íåìàã÷ûìà çíàéñüö³ ïðàâ³ëüíû ôàðìàò äëÿ ïðàçðûñòàñüö³. 9 Óâàãà: Íåìàã÷ûìà ñòâàðûöü ïðàçðûñòóþ âûÿâó. 10 Óâàãà: Íåìàã÷ûìà ñòâàðûöü ïðàçðûñòóþ âûÿâó. 11 Íåìàã÷ûìà âûçíà÷ûöü ôàðìàò ýêðàíó(%d) 12 Íåñòàå ïàìÿö³ 13 Íåñòàå ïàìÿö³ äëÿ áóôýðà áëàê³òíàãà êîëåðó. 14 Íåñòàå ïàìÿö³ äëÿ áóôýðà çÿë¸íàãà êîëåðó. 15 Íåñòàå ïàìÿö³ äëÿ áóôýðà ÷ûðâîíàãà êîëåðó. 16 Íåìàã÷ûìà ïðà÷ûòàöü ýëåìýíò òýìû 17 unsupported visual 18 Óñòàëÿâàöü äàïîìíàñüö³ $set 7 #Fluxbox 1 Íàçâà rc-ôàéëà íÿïðàâ³ëüíàÿ! 2 Íåìàã÷ûìà çàãðóç³öü ôàéë ãðóï 3 Íåìàã÷ûìà çàãðóç³öü áàçó äàäçåíûõ 4 Ïàñïðàáóéöå ÿø÷ý ç 5 Óâàãà! Íåìàã÷ûìà àäøóêàöü ýêðàí êàá ïàêàçàöü àêíî! 6 Íåìàã÷ûìà ñòâàðûöü òý÷êó %s 7 Íåìàã÷ûìà çíàéñüö³ ýêðàí äëÿ ê³ðàâàíüíÿ.\nÓïý¢í³öåñÿ øòî íå ïðàöóå ³íøû ê³ðà¢í³ê âîêíà¢. 8 Ïàìûëêà ðàçáîðó ðýãóëÿðíàãà âûðàçó 9 Çãóáíà! Ìîæà âûêîíâàööà òîëüê³ àäç³í fluxbox . 10 Íåìàã÷ûìà äàëó÷ûööà äà X-ïàñëóæí³êó.\nÓïý¢í³öåñÿ øòî X ñòàðòóå ïåðàä Fluxbox. 11 Óâàãà: X-ïàñëóæí³ê íå ïàäòðûìë³âàå ëÿêàëü 12 Óâàãà: Íåìàã÷ûìà óñòàëÿâàöü ìàäûô³êàòàðû ëÿêàë³ $set 8 #Gnome 1 Çãóáíà: Íåñòàå ïàìÿö³, íåìàã÷ûìà âûëó÷ûöü ïàä GNOME êë³åíò $set 9 #Keys 1 Keys: Ïàìûëêà ¢ ðàäêó 2 Keys: Çáîé çëó÷ýíüíÿ 'keytree'e! 3 Keys: Íÿïðàâ³ëüíàÿ êíîïêà àáî ìàäûô³êàòàð ó ðàäêó $set 10 #Menu 1 Íàëàäê³ 2 Ñòàíäàðòíàå ìýíþ Fluxbox 3 Âûõàä 4 Âîáðàçû 5 Ñëîé... 6 On Head... 7 Ìåñöà 8 Ïåðà÷ûòàöü íàëàäê³ 9 Ïåðàïóñê $set 11 #Remember 1 Óïðûãîæâàíüí³ 2 Ïàìåð 3 Ñêîêíóöü äà ïðàöî¢íàãà ìåñöà 4 Ñëîé 5 Ïàìÿòàöü... 6 Ïàçûöûÿ 7 Çàõî¢âàöü ïðû âûõàäçå 8 Ñõàâàöü ó çàãàëîâàê 9 Ïðûëåïëåíû 10 Unknown apps key 11 Ïðàöî¢íàå ìåñöà 12 Çàãàëîâàê $set 12 #Screen 1 BScreen::BScreen: ïàìûëêà ó ÷àñå çüâÿðòàíüíÿ äà X-ñïàñëóæí³êó.\n äðóã³ ê³ðà¢í³ê âîêíàì³ ¢æî âûêîíâàåööà íà ãýòûì äûñïëý³ 2 W: %4d x H: %4d 3 BScreen::BScreen: ê³ðàâàíüíå ýêðàíàì %d êàðûñòàþ÷ûñÿ visual 0x%lx, ãëûá³íÿ %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Êë³åíòû 2 Ïà êðóãó ¢í³ç 3 Ïà êðóãó ¢âåðõ 4 Íàïðàìàê ø÷ûë³íû 5 Ñëîé ø÷ûë³íû 7 Ìåñöà ø÷ûë³íû 8 Ø÷ûë³íà 9 Çàõàâàöü ñüï³ñ ø÷ûë³íû $set 14 #Toolbar 1 Ðýäàãàâàöü íàçâó ãýòàãà ïðàöî¢íàãà ìåñöà 2 Ðýæûì àäëþñòðàâàíüíÿ âîêíࢠ3 Óñå âîêíû 4 Âîáðàçû 5 ͳ÷îãà 6 Ïðàöî¢íàå ìåñöà 7 ̳í³ìàë³çàâàíûÿ 8 Ñëîé ïàíýë³ ïðûëàäࢠ9 Toolbar on Head 10 Ìåñöà ïàíýë³ ïðûëàäࢠ11 Ïàíýëü ïðûëàäࢠ12 Øûðûíÿ ¢ àäñîòêàõ 13 Ôàðìàò ÷àñó: 24 ãàäç³íû 14 Ôàðìàò ÷àñó: 12 ãàäç³í 15 Çàìàí³öü ôàðìàò àäëþñòðàâàíüíÿ ÷àñó 16 Ïàêàçâàöü âûÿâû $set 15 #Window 1 Áåçíàçî¢íàå $set 16 #Windowmenu 1 Çàêðûöü 2 Çüâÿðíóöü ¢ ïàíýëü ïðûëàäࢠ3 Ñëîé... 4 ͳæýé 5 Ìàêñûì³çàâàöü 6 Âûøýé 7 Äàñëàöü àêíî íà ... 8 Çüâÿðíóöü ¢ çàãàëîâàê 9 Ïðûëÿï³öü 10 Çàá³öü $set 17 #Workspace 1 Ïðàöî¢íàå ìåñöà %d 2 Ïðàöî¢íûÿ ìåñöû 3 Íîâàå ïðàöî¢íàå ìåñöà 4 Âûäàë³öü àïîøíÿå $set 18 #fbsetroot 1 ïàìûëêà: ïàâ³ííà áûöü íåøòà ç íàñòóïíàãà: -solid, -mod, -gradient\n 3 -display Çëó÷ýíüíå ç äûñïëýÿì\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient ãðàäûåíò\n\ -from ïåðøû êîëåð ãðàäûåíòó\n\ -to àïîøí³ êîëåð ãðàäûåíòó\n\n\ -solid ñóöýëüíû êîëåð\n\n\ -help íàäðóêàâàöü ãýòû òýêñò äû âûéñüö³\n $set 19 #main 1 ïàìûëêà: '-display' ïàòðýáíû àðãóìýíò 5 Ïàìûëêà âûêàíàíüíÿ 6 Ñòàíäàðòíàå âûêëþ÷àíà 7 Íåâÿäîìàÿ ïàìûëêà 8 ïàìûëêà: '-log' ïàòðýáíû àðãóìýíò 9 Ôàéë ÷àñîï³ñó 10 Çàï³ñâàöü ÷àñîï³ñó 11 ïàìûëêà: '-rc' ïàòðýáíû àðãóìýíò 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\têàðûñòàööà àäçíà÷àíûì äàñûïëåì.\n\ -rc \t\t\têàðûñòàööà äðóã³ì ôàéëàì ðýñóðñà¢.\n\ -version\t\t\tïàêàçàöü íóìàð âýðñ³³ äû âûéñüö³.\n\ -info\t\t\t\tïàêàçàöü íåêàòîðóþ êàðûñíóþ ³íôàðìàöûþ äû âûéñüö³.\n\ -log \t\t\tÇàï³ñâàöü ëîã ó àäçíà÷àíû ôàéë.\n\ -help\t\t\t\tíàäðóêàâàöü ãýòû òýêñò äû âûéñüö³.\n\n 14 óâàãà: íåìàã÷ûìà ïðûçíà÷ûöü ïåðàìåííóþ àñÿðîäêó 'DISPLAY' $set 20 1 Âûøýé ø÷ûë³íû 2 ͳæýé 3 Ñòàëåö 4 Ø÷ûë³íà 5 Íàðìàëüíàÿ 6 Âûøýé fluxbox-1.3.5/nls/be_BY/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020504 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749875.547812466 30 ctime=1360750008.831811613 fluxbox-1.3.5/nls/be_BY/Translation.m0000644000175000017500000001275112106662425016541 0ustar00mgmg00000000000000$ codeset=CP1251 $set 1 #Align 1 Óí³çå ïà ñÿðýäç³íå 2 Óí³çå ëåâàðó÷ 3 Óí³çå ïðàâàðó÷ 4 Ïà ãàðûçàíòàë³ 5 Ëåâàðó÷ 6 Ëåâàðó÷ ¢í³çå 7 Ëåâàðó÷ ïà ñÿðýäç³íå 8 Ëåâàðó÷ ¢âåðñå 9 Ïà óñ¸é øûðûí³ 10 Ïðàâàðó÷ 11 Ïðàâàðó÷ ¢í³çå 12 Ïðàâàðó÷ ïà ñÿðýäç³íå 13 Ïðàâàðó÷ ¢âåðñå 14 Óâåðñå ïà ñÿðýäç³íå 15 Óâåðñå ëåâàðó÷ 16 Óâåðñå ïðàâàðó÷ 17 Ïà âýðòûêàë³ $set 2 #BaseDisplay 1 Àâàðûéíàå çàâÿðøýíüíå... ñòâàðýíüíå àäá³òêó ïàìÿö³\n 2 Çàâÿðøýíüíå\n 3 %s: ñûãíàë %d àòðûìàíû\n $set 3 #Common 1 Ïðàçðûñòàñüöü 2 À¢òàìàòû÷íà õàâàöü 3 Ñêàìï³ëÿâàíû 4 Ñêàìï³ëÿâàíû ç âûáàðàì 5 Êàìï³ëÿòàð 6 Âýðñ³ÿ êàìï³ëÿòàðà 7 Ôàéë íàëàäàê 8 Ôàéë êëÿâ³ø 10 Ôàéë ìýíþ 11 Ôàéë ç ñòûëåì 12 Äàïîìíûÿ íàëàäê³ 13 âûêëþ÷àíà 14 Ïàìûëêà 15 Âýðñ³ÿ Fluxbox 16 Ïàä âîêíàì³ 18 Áà÷íàÿ $set 4 #Configmenu 1 Àíòûàë³àñ³íã 2 Ïàäûìàöü à¢òàìàòû÷íà 3 Ïàäûìàöü ïà ø÷à¢÷êó 4 Çàñÿðîäæâàíüíå ïà ø÷à¢÷êó 5 Óïðûãîæâàöü íåðýçûäýíòûÿ âîêíû 6 Ìÿíÿöü ñòàëüöû êîëàì ìûøû 7 Çàñÿðîäæâàíüíå íà âàêíå ïðû çüìåíå ïðàöî¢íàãà ìåñöà 8 Ìàäýëü çàñÿðîäæâàíüíÿ 9 Çàñÿðîäæâàíüíå íà íîâûõ âîêíàõ 10 Ìàêñûì³çàâàöü öàëêàì 11 Çãëàäæâàíüíå âûÿâࢠ12 Ðóõ çàïî¢íåíûõ âîêíࢠ13 Ðàçìûòàå çàñÿðîäæâàíüíå 14 Çàñÿðîäæâàíüíå ïà ðóõó 15 Ðóõ âîêíࢠïàì³æ ïðàöî¢íûì³ ìåñöàì³ 16 Çìóøàöü äà ïñý¢äà-ïðàçðûñòàñüö³ 17 Ïðàçðûñòàå ìýíþ 18 Ïðàçðûñòàñüöü 19 Ïðàçðûñòàå âàêíî ïàä çàñÿðîäæâàíüíåì 20 Ïðàçðûñòàå âàêíî áåç çàñÿðîäæâàíüíÿ $set 5 #Ewmh 1 Çãóáíà: Íåñòàå ïàìÿö³, íåìàã÷ûìà âûëó÷ûöü ïàä EWMH êë³åíò $set 6 #FbTkError 1 Óâàãà! Âûøûíÿ > 3200 Âûøûíÿ çðîáëåíàÿ = 3200 2 Óâàãà! Øûðûíÿ > 3200 Øûðûíÿ çðîáëåíàÿ = 3200 3 Óâàãà: íåìàã÷ûìà çàãðóç³öü çàïàñíû øðûôò 4 Ïàìûëêà âûëó÷ýíüíÿ. 5 Ïàìûëêà ïðû ñòâàðýíüí³ âûÿâࢠ6 Íåìàã÷ûìà ñòâàðûöü XImage 7 Íåìàã÷ûìà ïðà÷ûòàöü 8 Óâàãà: Íåìàã÷ûìà çíàéñüö³ ïðàâ³ëüíû ôàðìàò äëÿ ïðàçðûñòàñüö³. 9 Óâàãà: Íåìàã÷ûìà ñòâàðûöü ïðàçðûñòóþ âûÿâó. 10 Óâàãà: Íåìàã÷ûìà ñòâàðûöü ïðàçðûñòóþ âûÿâó. 11 Íåìàã÷ûìà âûçíà÷ûöü ôàðìàò ýêðàíó(%d) 12 Íåñòàå ïàìÿö³ 13 Íåñòàå ïàìÿö³ äëÿ áóôýðà áëàê³òíàãà êîëåðó. 14 Íåñòàå ïàìÿö³ äëÿ áóôýðà çÿë¸íàãà êîëåðó. 15 Íåñòàå ïàìÿö³ äëÿ áóôýðà ÷ûðâîíàãà êîëåðó. 16 Íåìàã÷ûìà ïðà÷ûòàöü ýëåìýíò òýìû 17 unsupported visual 18 Óñòàëÿâàöü äàïîìíàñüö³ $set 7 #Fluxbox 1 Íàçâà rc-ôàéëà íÿïðàâ³ëüíàÿ! 2 Íåìàã÷ûìà çàãðóç³öü ôàéë ãðóï 3 Íåìàã÷ûìà çàãðóç³öü áàçó äàäçåíûõ 4 Ïàñïðàáóéöå ÿø÷ý ç 5 Óâàãà! Íåìàã÷ûìà àäøóêàöü ýêðàí êàá ïàêàçàöü àêíî! 6 Íåìàã÷ûìà ñòâàðûöü òý÷êó %s 7 Íåìàã÷ûìà çíàéñüö³ ýêðàí äëÿ ê³ðàâàíüíÿ.\nÓïý¢í³öåñÿ øòî íå ïðàöóå ³íøû ê³ðà¢í³ê âîêíà¢. 8 Ïàìûëêà ðàçáîðó ðýãóëÿðíàãà âûðàçó 9 Çãóáíà! Ìîæà âûêîíâàööà òîëüê³ àäç³í fluxbox . 10 Íåìàã÷ûìà äàëó÷ûööà äà X-ïàñëóæí³êó.\nÓïý¢í³öåñÿ øòî X ñòàðòóå ïåðàä Fluxbox. 11 Óâàãà: X-ïàñëóæí³ê íå ïàäòðûìë³âàå ëÿêàëü 12 Óâàãà: Íåìàã÷ûìà óñòàëÿâàöü ìàäûô³êàòàðû ëÿêàë³ $set 8 #Gnome 1 Çãóáíà: Íåñòàå ïàìÿö³, íåìàã÷ûìà âûëó÷ûöü ïàä GNOME êë³åíò $set 9 #Keys 1 Keys: Ïàìûëêà ¢ ðàäêó 2 Keys: Çáîé çëó÷ýíüíÿ 'keytree'e! 3 Keys: Íÿïðàâ³ëüíàÿ êíîïêà àáî ìàäûô³êàòàð ó ðàäêó $set 10 #Menu 1 Íàëàäê³ 2 Ñòàíäàðòíàå ìýíþ Fluxbox 3 Âûõàä 4 Âîáðàçû 5 Ñëîé... 6 On Head... 7 Ìåñöà 8 Ïåðà÷ûòàöü íàëàäê³ 9 Ïåðàïóñê $set 11 #Remember 1 Óïðûãîæâàíüí³ 2 Ïàìåð 3 Ñêîêíóöü äà ïðàöî¢íàãà ìåñöà 4 Ñëîé 5 Ïàìÿòàöü... 6 Ïàçûöûÿ 7 Çàõî¢âàöü ïðû âûõàäçå 8 Ñõàâàöü ó çàãàëîâàê 9 Ïðûëåïëåíû 10 Unknown apps key 11 Ïðàöî¢íàå ìåñöà 12 Çàãàëîâàê $set 12 #Screen 1 BScreen::BScreen: ïàìûëêà ó ÷àñå çüâÿðòàíüíÿ äà X-ñïàñëóæí³êó.\n äðóã³ ê³ðà¢í³ê âîêíàì³ ¢æî âûêîíâàåööà íà ãýòûì äûñïëý³ 2 W: %4d x H: %4d 3 BScreen::BScreen: ê³ðàâàíüíå ýêðàíàì %d êàðûñòàþ÷ûñÿ visual 0x%lx, ãëûá³íÿ %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Êë³åíòû 2 Ïà êðóãó ¢í³ç 3 Ïà êðóãó ¢âåðõ 4 Íàïðàìàê ø÷ûë³íû 5 Ñëîé ø÷ûë³íû 7 Ìåñöà ø÷ûë³íû 8 Ø÷ûë³íà 9 Çàõàâàöü ñüï³ñ ø÷ûë³íû $set 14 #Toolbar 1 Ðýäàãàâàöü íàçâó ãýòàãà ïðàöî¢íàãà ìåñöà 2 Ðýæûì àäëþñòðàâàíüíÿ âîêíࢠ3 Óñå âîêíû 4 Âîáðàçû 5 ͳ÷îãà 6 Ïðàöî¢íàå ìåñöà 7 ̳í³ìàë³çàâàíûÿ 8 Ñëîé ïàíýë³ ïðûëàäࢠ9 Toolbar on Head 10 Ìåñöà ïàíýë³ ïðûëàäࢠ11 Ïàíýëü ïðûëàäࢠ12 Øûðûíÿ ¢ àäñîòêàõ 13 Ôàðìàò ÷àñó: 24 ãàäç³íû 14 Ôàðìàò ÷àñó: 12 ãàäç³í 15 Çàìàí³öü ôàðìàò àäëþñòðàâàíüíÿ ÷àñó 16 Ïàêàçâàöü âûÿâû $set 15 #Window 1 Áåçíàçî¢íàå $set 16 #Windowmenu 1 Çàêðûöü 2 Çüâÿðíóöü ¢ ïàíýëü ïðûëàäࢠ3 Ñëîé... 4 ͳæýé 5 Ìàêñûì³çàâàöü 6 Âûøýé 7 Äàñëàöü àêíî íà ... 8 Çüâÿðíóöü ¢ çàãàëîâàê 9 Ïðûëÿï³öü 10 Çàá³öü $set 17 #Workspace 1 Ïðàöî¢íàå ìåñöà %d 2 Ïðàöî¢íûÿ ìåñöû 3 Íîâàå ïðàöî¢íàå ìåñöà 4 Âûäàë³öü àïîøíÿå $set 18 #fbsetroot 1 ïàìûëêà: ïàâ³ííà áûöü íåøòà ç íàñòóïíàãà: -solid, -mod, -gradient\n 3 -display Çëó÷ýíüíå ç äûñïëýÿì\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient ãðàäûåíò\n\ -from ïåðøû êîëåð ãðàäûåíòó\n\ -to àïîøí³ êîëåð ãðàäûåíòó\n\n\ -solid ñóöýëüíû êîëåð\n\n\ -help íàäðóêàâàöü ãýòû òýêñò äû âûéñüö³\n $set 19 #main 1 ïàìûëêà: '-display' ïàòðýáíû àðãóìýíò 5 Ïàìûëêà âûêàíàíüíÿ 6 Ñòàíäàðòíàå âûêëþ÷àíà 7 Íåâÿäîìàÿ ïàìûëêà 8 ïàìûëêà: '-log' ïàòðýáíû àðãóìýíò 9 Ôàéë ÷àñîï³ñó 10 Çàï³ñâàöü ÷àñîï³ñó 11 ïàìûëêà: '-rc' ïàòðýáíû àðãóìýíò 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\têàðûñòàööà àäçíà÷àíûì äàñûïëåì.\n\ -rc \t\t\têàðûñòàööà äðóã³ì ôàéëàì ðýñóðñà¢.\n\ -version\t\t\tïàêàçàöü íóìàð âýðñ³³ äû âûéñüö³.\n\ -info\t\t\t\tïàêàçàöü íåêàòîðóþ êàðûñíóþ ³íôàðìàöûþ äû âûéñüö³.\n\ -log \t\t\tÇàï³ñâàöü ëîã ó àäçíà÷àíû ôàéë.\n\ -help\t\t\t\tíàäðóêàâàöü ãýòû òýêñò äû âûéñüö³.\n\n 14 óâàãà: íåìàã÷ûìà ïðûçíà÷ûöü ïåðàìåííóþ àñÿðîäêó 'DISPLAY' $set 20 1 Âûøýé ø÷ûë³íû 2 ͳæýé 3 Ñòàëåö 4 Ø÷ûë³íà 5 Íàðìàëüíàÿ 6 Âûøýé fluxbox-1.3.5/nls/be_BY/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603020073 xustar000000000000000030 mtime=1360749955.671811954 30 atime=1360750003.451811648 30 ctime=1360750008.835811613 fluxbox-1.3.5/nls/be_BY/Makefile.in0000644000175000017500000002714412106662603016132 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/be_BY/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/be_BY DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = be_BY SRC_CODESET = CP1251 DEST_CODESETS = CP1251 UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/be_BY/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/be_BY/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/be_BY/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020064 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749853.523812607 30 ctime=1360750008.835811613 fluxbox-1.3.5/nls/be_BY/Makefile.am0000644000175000017500000000300012106662425016104 0ustar00mgmg00000000000000# nls/be_BY/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = be_BY SRC_CODESET = CP1251 DEST_CODESETS = CP1251 UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/vi_VN0000644000175000017500000000013112106662666016022 xustar000000000000000029 mtime=1360750006.29981163 30 atime=1360750008.835811613 30 ctime=1360750008.835811613 fluxbox-1.3.5/nls/vi_VN/0000755000175000017500000000000012106662666014127 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/vi_VN/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662463021010 xustar000000000000000030 mtime=1360749875.511812467 30 atime=1360749875.527812467 30 ctime=1360750008.835811613 fluxbox-1.3.5/nls/vi_VN/generated-UTF-8.m0000644000175000017500000001325012106662463017040 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Phía dưới ở giữa 2 Phía dưới bên trái 3 Phía dưới bên trái 4 Nằm ngang 6 Bên trái phía dưới 7 Bên trái ở giữa 8 Bên trái ở trên 11 Bên phải ở dưới 12 Bên phải ở giữa 13 Bên phải ở trên 14 Bên trên ở giữa 15 Bên trên phía trái 16 Bên trên phía phải 17 Thẳng đứng $set 2 #BaseDisplay 1 Dừng...dumping core\n 2 Tắt máy\n 3 %s: bắt được tín hiệu %d\n $set 3 #Common 1 Äá»™ trong suốt 2 Tá»± động ẩn 3 ÄÆ°á»£c biên dịch 4 Tùy chá»n được biên dịch 5 Trình biên dịch 6 Phiên bản trình biên dịch 7 Xác lập cÆ¡ bản 8 Phím nóng 10 Thá»±c đơn 11 Sắc thái 12 Mặc định 13 Không chá»n 14 Lá»—i 15 Phiên bản fluxbox 16 Phóng đại che hết màn hình 18 Có thể nhìn thấy $set 4 #Configmenu 4 Tiêu Ä‘iểm theo nhấn chuá»™t 7 Làm tiêu Ä‘iểm cá»­a sổ cuối cùng 8 Mẫu tiêu Ä‘iểm 9 ÄÆ°a tiêu Ä‘iểm lên cá»­a sổ má»›i 10 Phóng đại hết cỡ 11 Làm phẳng hình ảnh 12 Hiện ná»™i dung cá»­a sổ khi di chuyển 14 Tiêu Ä‘iểm theo trá» chuá»™t 15 Di chuyển cá»­a sổ giữa các không gian làm việc $set 5 #Ewmh 1 Lá»—i: Không đủ bá»™ nhá»› để phân phối cho danh sách client EWMH. $set 6 #FbTkError 1 Cảnh báo! Chiá»u cao > 3200 đặt chiá»u cao = 3200 2 Cảnh báo! Chiá»u rá»™ng > 3200 đặt chiá»u rá»™ng = 3200 3 Cảnh báo: không thể nạp phông chữ fallback 4 Lá»—i phân phối 5 Lá»—i tạo pixmap 6 Không thể tạo XImage 7 Lá»—i Ä‘á»c 8 Cảnh báo: lá»—i định dạng cá»§a độ trong suốt 9 Cảnh báo: lá»—i tạo ảnh trong suốt 10 Cảnh báo: lá»—i tạo pixmap trong suốt 11 Lá»—i định dạng cho màn hình (%d) 12 Äầy bá»™ nhá»› 13 Äầy bá»™ nhá»› khi phân phối cho bá»™ đệm Blue 14 Äầy bá»™ nhá»› khi phân phối cho bá»™ đệm Green 15 Äầy bá»™ nhá»› khi phân phối cho bá»™ đệm Red 16 Lá»—i Ä‘á»c tệp tin sắc thái 17 Tùy chá»n không được há»— trợ 18 Thiết lập giá trị mặc định $set 7 #Fluxbox 1 Lá»—i tên tệp tin rc! 2 Lá»—i nạp tệp tin nhóm 3 Lá»—i nạp cÆ¡ sở dữ liệu 4 Thá»­ lại vá»›i 5 Cảnh báo! Không tìm thấy màn hình để hiển thị cá»­a sổ 6 Không thể tạo thư mục %s 7 Không thể tìm thấy màn hình để quản lý.\nHãy kiểm tra xem bạn có Ä‘ang chạy má»™t trình quản lý màn hình khác không. 8 Lá»—i phân tích biểu thức chính quy 9 Lá»—i! Chỉ cho phép má»™t trưá»ng hợp cá»§a fluxbox class. 10 Không thể kết nối vá»›i máy chá»§ X.\nCần chạy X trước khi chạy fluxbox. 11 Cảnh báo: máy chá»§ X không há»— trợ bản dịch địa phương 12 Cảnh báo: không thể thiết lập bản dịch địa phương $set 8 #Gnome 1 Lá»—i: không đủ bá»™ nhá»› để phân phối cho danh sách client GNOME $set 9 #Keys 1 Phím nóng: Lá»—i trên má»™t dòng 2 Phím nóng: Lá»—i kết hợp cây phím! 3 Phím nóng: Lá»—i phím/chức năng $set 10 #Menu 1 Cấu hình 2 Thá»±c đơn mặc định 3 Thoát 4 Cá»­a sổ thu nhá» 5 Lá»›p 7 Vị trí 8 Nạp lại cấu hình 9 Khởi động lại $set 11 #Remember 1 Trang trí 2 Kích thước 3 Nhảy tá»›i không gian 4 Lá»›p 5 Nhá»›... 6 Vị trí 7 Ghi nhá»› khi đóng 8 Thu nhá» vào tiêu đỠ9 Hiện trên má»n không gian 10 Phím chưa được xác định 11 Không gian $set 12 #Screen 2 Rá»™ng: %4d x Cao: %4d 4 Rá»™ng: %04d x Cao: %04d $set 13 #Slit 1 Các client 2 Quay vòng xuống 3 Quay vòng lên 4 Hướng cá»§a Slit 5 Lá»›p cá»§a Slit 6 Slit trên Head 7 Vị trí cá»§a Slit 8 Slit $set 14 #Toolbar 1 Thay tên không gian hiện thá»i 2 Chế độ thanh cá»­a sổ thu nhá» 3 Tất cả cá»­a sổ 4 Biểu tượng 5 Không dùng 6 Không gian 7 Biểu tượng không gian 8 Lá»›p thanh tác vụ 9 Thanh tác vụ trên Head 10 Vị trí thanh tác vụ 11 Thanh tác vụ 12 Chiá»u rá»™ng thanh tác vụ $set 15 #Window 1 Không có tên $set 16 #Windowmenu 1 Äóng 2 Thu nhá» xuống thanh tác vụ 4 Lên ná»n sau 5 Phóng đại 6 Lên ná»n trước 7 Chuyển đến ... 8 Thu nhá» vào tiêu đỠ9 Trên má»i không gian $set 17 #Workspace 1 Không gian %d 2 Không gian 3 Không gian má»›i 4 Xóa không gian cuối $set 18 #fbsetroot 1 lá»—i: cần đưa ra má»™t trong các từ khóa sau: -solid, -mod, -gradient\n 2 Không thể tạo các pixmap! 3 -display hiển thị trên màn hình \n\ -mod mẫu môđun \n\ -foreground, -fg màu ná»n trước \n\ -background, -bg màu ná»n sau \n\n\ -gradient dải màu \n\ -from từ \n\ -to đến \n\n\ -solid màu thuần nhất \n\n\ -help hiển thị thông tin trợ giúp này và thoát\n $set 19 #main 1 lá»—i: '-display' cần đối số 2 Phân phối không tốt 3 Chia sẻ không tốt 4 Lá»—i ngoài hàng 5 Lá»—i runtime 6 Sá»± loại trừ tiêu chuẩn 7 Lá»—i không rõ nguyên nhân 8 lá»—i: '-log' cần má»™t đối số 9 Tệp tin sá»± kiện 10 Ghi sá»± kiện vào 11 lá»—i: '-rc' cần đối số 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tsá»­ dụng màn hình lá»±a chá»n.\n\ -rc \t\t\tsá»­ dụng tệp tin tài nguyên khác.\n\ -version\t\t\tđưa ra số phiên bản và thoát.\n\ -info\t\t\t\thiển thị vài thông tin có ích.\n\ -log \t\t\ttên tệp tin sá»± kiện.\n\ -help\t\t\t\thiển thị thông tin trợ giúp này và thoát.\n\n fluxbox-1.3.5/nls/vi_VN/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020545 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749875.511812467 30 ctime=1360750008.839811613 fluxbox-1.3.5/nls/vi_VN/Translation.m0000644000175000017500000001325012106662425016575 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Phía dưới ở giữa 2 Phía dưới bên trái 3 Phía dưới bên trái 4 Nằm ngang 6 Bên trái phía dưới 7 Bên trái ở giữa 8 Bên trái ở trên 11 Bên phải ở dưới 12 Bên phải ở giữa 13 Bên phải ở trên 14 Bên trên ở giữa 15 Bên trên phía trái 16 Bên trên phía phải 17 Thẳng đứng $set 2 #BaseDisplay 1 Dừng...dumping core\n 2 Tắt máy\n 3 %s: bắt được tín hiệu %d\n $set 3 #Common 1 Äá»™ trong suốt 2 Tá»± động ẩn 3 ÄÆ°á»£c biên dịch 4 Tùy chá»n được biên dịch 5 Trình biên dịch 6 Phiên bản trình biên dịch 7 Xác lập cÆ¡ bản 8 Phím nóng 10 Thá»±c đơn 11 Sắc thái 12 Mặc định 13 Không chá»n 14 Lá»—i 15 Phiên bản fluxbox 16 Phóng đại che hết màn hình 18 Có thể nhìn thấy $set 4 #Configmenu 4 Tiêu Ä‘iểm theo nhấn chuá»™t 7 Làm tiêu Ä‘iểm cá»­a sổ cuối cùng 8 Mẫu tiêu Ä‘iểm 9 ÄÆ°a tiêu Ä‘iểm lên cá»­a sổ má»›i 10 Phóng đại hết cỡ 11 Làm phẳng hình ảnh 12 Hiện ná»™i dung cá»­a sổ khi di chuyển 14 Tiêu Ä‘iểm theo trá» chuá»™t 15 Di chuyển cá»­a sổ giữa các không gian làm việc $set 5 #Ewmh 1 Lá»—i: Không đủ bá»™ nhá»› để phân phối cho danh sách client EWMH. $set 6 #FbTkError 1 Cảnh báo! Chiá»u cao > 3200 đặt chiá»u cao = 3200 2 Cảnh báo! Chiá»u rá»™ng > 3200 đặt chiá»u rá»™ng = 3200 3 Cảnh báo: không thể nạp phông chữ fallback 4 Lá»—i phân phối 5 Lá»—i tạo pixmap 6 Không thể tạo XImage 7 Lá»—i Ä‘á»c 8 Cảnh báo: lá»—i định dạng cá»§a độ trong suốt 9 Cảnh báo: lá»—i tạo ảnh trong suốt 10 Cảnh báo: lá»—i tạo pixmap trong suốt 11 Lá»—i định dạng cho màn hình (%d) 12 Äầy bá»™ nhá»› 13 Äầy bá»™ nhá»› khi phân phối cho bá»™ đệm Blue 14 Äầy bá»™ nhá»› khi phân phối cho bá»™ đệm Green 15 Äầy bá»™ nhá»› khi phân phối cho bá»™ đệm Red 16 Lá»—i Ä‘á»c tệp tin sắc thái 17 Tùy chá»n không được há»— trợ 18 Thiết lập giá trị mặc định $set 7 #Fluxbox 1 Lá»—i tên tệp tin rc! 2 Lá»—i nạp tệp tin nhóm 3 Lá»—i nạp cÆ¡ sở dữ liệu 4 Thá»­ lại vá»›i 5 Cảnh báo! Không tìm thấy màn hình để hiển thị cá»­a sổ 6 Không thể tạo thư mục %s 7 Không thể tìm thấy màn hình để quản lý.\nHãy kiểm tra xem bạn có Ä‘ang chạy má»™t trình quản lý màn hình khác không. 8 Lá»—i phân tích biểu thức chính quy 9 Lá»—i! Chỉ cho phép má»™t trưá»ng hợp cá»§a fluxbox class. 10 Không thể kết nối vá»›i máy chá»§ X.\nCần chạy X trước khi chạy fluxbox. 11 Cảnh báo: máy chá»§ X không há»— trợ bản dịch địa phương 12 Cảnh báo: không thể thiết lập bản dịch địa phương $set 8 #Gnome 1 Lá»—i: không đủ bá»™ nhá»› để phân phối cho danh sách client GNOME $set 9 #Keys 1 Phím nóng: Lá»—i trên má»™t dòng 2 Phím nóng: Lá»—i kết hợp cây phím! 3 Phím nóng: Lá»—i phím/chức năng $set 10 #Menu 1 Cấu hình 2 Thá»±c đơn mặc định 3 Thoát 4 Cá»­a sổ thu nhá» 5 Lá»›p 7 Vị trí 8 Nạp lại cấu hình 9 Khởi động lại $set 11 #Remember 1 Trang trí 2 Kích thước 3 Nhảy tá»›i không gian 4 Lá»›p 5 Nhá»›... 6 Vị trí 7 Ghi nhá»› khi đóng 8 Thu nhá» vào tiêu đỠ9 Hiện trên má»n không gian 10 Phím chưa được xác định 11 Không gian $set 12 #Screen 2 Rá»™ng: %4d x Cao: %4d 4 Rá»™ng: %04d x Cao: %04d $set 13 #Slit 1 Các client 2 Quay vòng xuống 3 Quay vòng lên 4 Hướng cá»§a Slit 5 Lá»›p cá»§a Slit 6 Slit trên Head 7 Vị trí cá»§a Slit 8 Slit $set 14 #Toolbar 1 Thay tên không gian hiện thá»i 2 Chế độ thanh cá»­a sổ thu nhá» 3 Tất cả cá»­a sổ 4 Biểu tượng 5 Không dùng 6 Không gian 7 Biểu tượng không gian 8 Lá»›p thanh tác vụ 9 Thanh tác vụ trên Head 10 Vị trí thanh tác vụ 11 Thanh tác vụ 12 Chiá»u rá»™ng thanh tác vụ $set 15 #Window 1 Không có tên $set 16 #Windowmenu 1 Äóng 2 Thu nhá» xuống thanh tác vụ 4 Lên ná»n sau 5 Phóng đại 6 Lên ná»n trước 7 Chuyển đến ... 8 Thu nhá» vào tiêu đỠ9 Trên má»i không gian $set 17 #Workspace 1 Không gian %d 2 Không gian 3 Không gian má»›i 4 Xóa không gian cuối $set 18 #fbsetroot 1 lá»—i: cần đưa ra má»™t trong các từ khóa sau: -solid, -mod, -gradient\n 2 Không thể tạo các pixmap! 3 -display hiển thị trên màn hình \n\ -mod mẫu môđun \n\ -foreground, -fg màu ná»n trước \n\ -background, -bg màu ná»n sau \n\n\ -gradient dải màu \n\ -from từ \n\ -to đến \n\n\ -solid màu thuần nhất \n\n\ -help hiển thị thông tin trợ giúp này và thoát\n $set 19 #main 1 lá»—i: '-display' cần đối số 2 Phân phối không tốt 3 Chia sẻ không tốt 4 Lá»—i ngoài hàng 5 Lá»—i runtime 6 Sá»± loại trừ tiêu chuẩn 7 Lá»—i không rõ nguyên nhân 8 lá»—i: '-log' cần má»™t đối số 9 Tệp tin sá»± kiện 10 Ghi sá»± kiện vào 11 lá»—i: '-rc' cần đối số 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tsá»­ dụng màn hình lá»±a chá»n.\n\ -rc \t\t\tsá»­ dụng tệp tin tài nguyên khác.\n\ -version\t\t\tđưa ra số phiên bản và thoát.\n\ -info\t\t\t\thiển thị vài thông tin có ích.\n\ -log \t\t\ttên tệp tin sá»± kiện.\n\ -help\t\t\t\thiển thị thông tin trợ giúp này và thoát.\n\n fluxbox-1.3.5/nls/vi_VN/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662604020135 xustar000000000000000030 mtime=1360749956.419811949 30 atime=1360750004.055811644 30 ctime=1360750008.839811613 fluxbox-1.3.5/nls/vi_VN/Makefile.in0000644000175000017500000002713412106662604016173 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/vi_VN/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/vi_VN DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = vi_VN SRC_CODESET = UTF-8 DEST_CODESETS = UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/vi_VN/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/vi_VN/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/vi_VN/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020125 xustar000000000000000030 mtime=1360749845.887812656 30 atime=1360749854.267812603 30 ctime=1360750008.839811613 fluxbox-1.3.5/nls/vi_VN/Makefile.am0000644000175000017500000000277012106662425016162 0ustar00mgmg00000000000000# nls/vi_VN/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = vi_VN SRC_CODESET = UTF-8 DEST_CODESETS = UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/pl_PL0000644000175000017500000000013112106662666016007 xustar000000000000000029 mtime=1360750006.26781163 30 atime=1360750008.839811613 30 ctime=1360750008.839811613 fluxbox-1.3.5/nls/pl_PL/0000755000175000017500000000000012106662666014114 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/pl_PL/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662463020775 xustar000000000000000030 mtime=1360749875.475812467 30 atime=1360749875.491812467 30 ctime=1360750008.843811613 fluxbox-1.3.5/nls/pl_PL/generated-UTF-8.m0000644000175000017500000001340412106662463017026 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Dolny Åšrodkowy 2 Dolny Lewy 3 Dolny Prawy 4 Poziomo 5 Z Lewej 6 Dolny Lewy 7 Åšrodkowy Lewy 8 Górny Lewy 9 WzglÄ™dny 10 Z Prawej 11 Dolny Prawy 12 Åšrodkowy Prawy 13 Prawy Górny 14 Górny Åšrodkowy 15 Górny Lewy 16 Górny Prawy 17 Pionowo $set 2 #BaseDisplay 1 Porzucam...Zrzucam pamięć\n 2 Zamykam\n 3 %s: sygnaÅ‚ %d otrzymaÅ‚\n $set 3 #Common 1 Przeźroczystość 2 Auto ukrywanie 3 Skompilowano 4 Skompilowano z opcjami 5 Kompilator 6 Wersja kompilatora 7 init 8 keys 10 menu 11 Styl 12 WartoÅ›ci domyÅ›lne 13 wyłączone 14 Błąd 15 Fluxbox wersja 16 Maksymalizuj nad 18 Widoczny $set 4 #Configmenu 1 AntiAlias 2 Automatyczne podnoszenie 3 Kliknij aby dać na wierzch 4 Kliknij by uaktywnić 5 Dekoracje na oknach-dzieciach 6 Zmiana pulpitów kółkiem myszy 7 ZmieÅ„ aktywne okno przy zmianie pulpitów 8 Sposób aktywacji okien 9 Ustawiaj nowe okna jako aktywne 10 PeÅ‚na maksymalizacja 11 Rastrowanie Obrazu 12 WyÅ›wietlaj zawartość przesuwanego okna 13 Pół-automatyczna aktywacja 14 Pokaż kursorem by uaktywnić 15 Pulpity obok siebie 16 WymuÅ› pseudo przeźroczystość 17 Przeźroczystość menu 18 Przeźroczystość 19 Przeźroczystość aktywnego okna 20 Przeźroczystość nieaktywnego okna $set 5 #Ewmh 1 Błąd krytyczny: Brak pamiÄ™ci, nie mogÄ™ zarezerwować lity klientów EWMH $set 6 #FbTkError 1 Ostrzeżenie! Wysokość > 3200 Ustawiam Wysokość = 3200 2 Ostrzeżenie! Szerokość > 3200 Ustawiam Szerokość = 3200 3 Ostrzeżenie: nie mogÄ™ zaÅ‚adować zapasowej czcionki 4 Błąd allokacji. 5 Błąd podczas tworzenia pixmapy 6 Nie mogÄ™ stworzyć XImage 7 Błąd odczytu 8 Ostrzeżenie: Nie znaleziono poprawnych ustawieÅ„ przeźroczystoÅ›ci 9 Ostrzeżenie: Nie powiodÅ‚o siÄ™ tworzenie przeźroczystego obrazu 10 Ostrzeżenie: Nie powiodÅ‚o siÄ™ tworzenie przeźroczystej pixmapy 11 Nie znalaÅ‚em formatu dla ekranu(%d) 12 Brak pamiÄ™ci 13 Brak pamiÄ™ci podczas alokacji niebieskiego bufora. 14 Brak pamiÄ™ci podczas alokacji zielonego bufora. 15 Brak pamiÄ™ci podczas alokacji czerwonego bufora. 16 Nie rozpoznajÄ™ elementu stylu 17 błąd podczas renderowania obrazka 18 Ustawiam wartość domyÅ›lnÄ… $set 7 #Fluxbox 1 niewÅ‚asciwa nazwa pliku zasobów! 2 Nie mogÄ™ zaÅ‚adować pliku grup 3 Nie mogÄ™ zaÅ‚adować bazy danych 4 Próbuje ponownie z 5 Ostrzeżenie! Nie mogÄ™ znaleźć ekranu na który mogÄ™ zmapować okno! 6 Nie mogÄ™ utworzyć katalogu %s 7 Nie moge znaleźć ekranów do zarzÄ…dzania\nUpewnij siÄ™ że nie masz włączonego inne menedźera okien. 8 Błąd podczas parsowania wyrażenia reguralnego 9 Błąd krytyczny! Może istnieć tylko jedna instancja klasy fluxbox. 10 Nie mogÄ™ połączyć siÄ™ z serwerem X.\nUpewnij siÄ™ że uruchomiÅ‚eÅ› X'y przed uruchomieniem Fluxbox. 11 Ostrzeżenie: serwer X nie wspiera ustawieÅ„ lokalnych 12 Ostrzeżenie: nie można ustawić modyfikatorów lokalnych $set 8 #Gnome 1 Błąd krytyczny: Brak pamiÄ™ci, nie mogÄ™ zaalokować dla listy klientów GNOME $set 9 #Keys 1 Keys: Błąd w lini 2 Keys: Błąd podczas łączenia drzew klawiszy! 3 Keys: NiewÅ‚aÅ›ciwy klawisz/modyfikator w linii $set 10 #Menu 1 Konfiguracja 2 DomyÅ›lne menu fluxbox 3 WyjÅ›cie 4 Ikonki 5 Warstwa... 6 Na monitorze... 7 Umiejscowienie 8 PrzeÅ‚aduj ustawienia 9 Restart $set 11 #Remember 1 Dekoracje 2 Rozmiar 3 Przejdź do pulpitu 4 Warstwa 5 ZapamiÄ™taj 6 Pozycja 7 Zapisz przy wyjÅ›ciu 8 ZwiniÄ™ty 9 Przyklejony 10 Nieznany klucz pliku apps 11 Pulpit 12 Monitor $set 12 #Screen 1 BScreen::BScreen: wystÄ…piÅ‚ błąd podczas wysyÅ‚ania zapytania do serwera X'ów.\nNa ekranie włączony jest już inny menedżer okien 2 S: %4d x W: %4d 4 S: %04d x W: %04d 3 BScreen::BScreen: używanie ekrany %d używam visuala 0x%lx, głębokość %d\n $set 13 #Slit 1 Klienci 2 PrzesuÅ„ wszystkich w górÄ™ 3 PrzesuÅ„ wszystkich w dół 4 Kierunek Tacki 5 Warstwa 6 Na monitorze 7 PoÅ‚ożenie Tacki 8 Tacka 9 ZapamiÄ™taj kolejność $set 14 #Toolbar 1 ZmieÅ„ nazwÄ™ aktywnego pulpitu 2 Tryb paska ikon 3 Wszystkie okna 4 Ikony 5 Å»adne 6 Pulpit 7 Ikony Pulpitu 8 Warstwa Paska NarzÄ™dzi 10 PoÅ‚ożenie 11 Pasek NarzÄ™dzi 12 Szerokość w procentach 13 Zegar w trybie 24h 14 Zegar w trybie 12h 15 Format wyÅ›wietlania zegara 16 Pokaż ikony $set 15 #Window 1 Bez nazwy $set 16 #Windowmenu 1 Zamknij 2 Minimalizuj 3 Warstwa 4 Pod spód 5 Maksymalizuj 6 Na wierzch 7 WyÅ›lij na ... 8 ZwiÅ„ 9 Przyklej 10 ZakoÅ„cz $set 17 #Workspace 1 Pulpit %d 2 Pulpity 3 Nowy Pulpit 4 UsuÅ„ Ostatni $set 18 #fbsetroot 1 błąd: musisz okreÅ›lić jedno z: -solid, -mod, -gradient\n 2 Nie mogÄ™ stowrzyć elementów pixmap - dajÄ™ sobie spokój! 3 -display korzystam z ekranu \n\ -mod wzór moduÅ‚u\n\ -foreground, -fg kolor pierwszego planu moduÅ‚u\n\ -background, -bg kolor tÅ‚a moduÅ‚u\n\n\ -gradient cieniowana tekstura\n\ -from pierwszy kolor cieniowania\n\ -to drugi kolor cieniowania\n\n\ -solid staÅ‚y kolor\n\n\ -help drukujÄ™ tÄ™ pomoc i wychodzÄ™\n $set 19 #main 1 błąd: '-display' wymaga argumentu 2 ZÅ‚a allokacja 4 Poza zakresem 5 Błąd wykonania 6 Standardowy wyjÄ…tek 7 Nieznany błąd 8 Błąd: '-log' wymaga wartoÅ›ci 9 Plik dziennika 10 ZapisujÄ™ dziennik 11 błąd: '-rc' wymaga argumentu 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tużyj połączenia ekranu.\n\ -rc \t\t\tużyj innego pliku zasobów.\n\ -version\t\t\twyÅ›wietlam wersjÄ™ i wychodzÄ™.\n\ -info\t\t\t\twyÅ›wietlam przydatne informacje.\n\ -log \t\t\tlogi przesyÅ‚am do pliku.\n\ -help\t\t\t\twyÅ›wietlam tÄ™ pomoc i wychodzÄ™.\n\ 14 Nie mogÅ‚em ustawić zmiennej Å›rodowiskowej 'DISPLAY'\n\n $set 20 #layers 1 Powyżej docku 2 Na dno 3 Pulpit 4 Dock 5 Normalna 6 Na wierzch fluxbox-1.3.5/nls/pl_PL/PaxHeaders.25974/generated-ISO-8859-2.m0000644000175000017500000000013212106662463021376 xustar000000000000000030 mtime=1360749875.471812467 30 atime=1360749875.491812467 30 ctime=1360750008.843811613 fluxbox-1.3.5/nls/pl_PL/generated-ISO-8859-2.m0000644000175000017500000001277412106662463017440 0ustar00mgmg00000000000000$ codeset=ISO-8859-2 $set 1 #Align 1 Dolny ¦rodkowy 2 Dolny Lewy 3 Dolny Prawy 4 Poziomo 5 Z Lewej 6 Dolny Lewy 7 ¦rodkowy Lewy 8 Górny Lewy 9 Wzglêdny 10 Z Prawej 11 Dolny Prawy 12 ¦rodkowy Prawy 13 Prawy Górny 14 Górny ¦rodkowy 15 Górny Lewy 16 Górny Prawy 17 Pionowo $set 2 #BaseDisplay 1 Porzucam...Zrzucam pamiêæ\n 2 Zamykam\n 3 %s: sygna³ %d otrzyma³\n $set 3 #Common 1 Prze¼roczysto¶æ 2 Auto ukrywanie 3 Skompilowano 4 Skompilowano z opcjami 5 Kompilator 6 Wersja kompilatora 7 init 8 keys 10 menu 11 Styl 12 Warto¶ci domy¶lne 13 wy³±czone 14 B³±d 15 Fluxbox wersja 16 Maksymalizuj nad 18 Widoczny $set 4 #Configmenu 1 AntiAlias 2 Automatyczne podnoszenie 3 Kliknij aby daæ na wierzch 4 Kliknij by uaktywniæ 5 Dekoracje na oknach-dzieciach 6 Zmiana pulpitów kó³kiem myszy 7 Zmieñ aktywne okno przy zmianie pulpitów 8 Sposób aktywacji okien 9 Ustawiaj nowe okna jako aktywne 10 Pe³na maksymalizacja 11 Rastrowanie Obrazu 12 Wy¶wietlaj zawarto¶æ przesuwanego okna 13 Pó³-automatyczna aktywacja 14 Poka¿ kursorem by uaktywniæ 15 Pulpity obok siebie 16 Wymu¶ pseudo prze¼roczysto¶æ 17 Prze¼roczysto¶æ menu 18 Prze¼roczysto¶æ 19 Prze¼roczysto¶æ aktywnego okna 20 Prze¼roczysto¶æ nieaktywnego okna $set 5 #Ewmh 1 B³±d krytyczny: Brak pamiêci, nie mogê zarezerwowaæ lity klientów EWMH $set 6 #FbTkError 1 Ostrze¿enie! Wysoko¶æ > 3200 Ustawiam Wysoko¶æ = 3200 2 Ostrze¿enie! Szeroko¶æ > 3200 Ustawiam Szeroko¶æ = 3200 3 Ostrze¿enie: nie mogê za³adowaæ zapasowej czcionki 4 B³±d allokacji. 5 B³±d podczas tworzenia pixmapy 6 Nie mogê stworzyæ XImage 7 B³±d odczytu 8 Ostrze¿enie: Nie znaleziono poprawnych ustawieñ prze¼roczysto¶ci 9 Ostrze¿enie: Nie powiod³o siê tworzenie prze¼roczystego obrazu 10 Ostrze¿enie: Nie powiod³o siê tworzenie prze¼roczystej pixmapy 11 Nie znala³em formatu dla ekranu(%d) 12 Brak pamiêci 13 Brak pamiêci podczas alokacji niebieskiego bufora. 14 Brak pamiêci podczas alokacji zielonego bufora. 15 Brak pamiêci podczas alokacji czerwonego bufora. 16 Nie rozpoznajê elementu stylu 17 b³±d podczas renderowania obrazka 18 Ustawiam warto¶æ domy¶ln± $set 7 #Fluxbox 1 niew³asciwa nazwa pliku zasobów! 2 Nie mogê za³adowaæ pliku grup 3 Nie mogê za³adowaæ bazy danych 4 Próbuje ponownie z 5 Ostrze¿enie! Nie mogê znale¼æ ekranu na który mogê zmapowaæ okno! 6 Nie mogê utworzyæ katalogu %s 7 Nie moge znale¼æ ekranów do zarz±dzania\nUpewnij siê ¿e nie masz w³±czonego inne mened¼era okien. 8 B³±d podczas parsowania wyra¿enia reguralnego 9 B³±d krytyczny! Mo¿e istnieæ tylko jedna instancja klasy fluxbox. 10 Nie mogê po³±czyæ siê z serwerem X.\nUpewnij siê ¿e uruchomi³e¶ X'y przed uruchomieniem Fluxbox. 11 Ostrze¿enie: serwer X nie wspiera ustawieñ lokalnych 12 Ostrze¿enie: nie mo¿na ustawiæ modyfikatorów lokalnych $set 8 #Gnome 1 B³±d krytyczny: Brak pamiêci, nie mogê zaalokowaæ dla listy klientów GNOME $set 9 #Keys 1 Keys: B³±d w lini 2 Keys: B³±d podczas ³±czenia drzew klawiszy! 3 Keys: Niew³a¶ciwy klawisz/modyfikator w linii $set 10 #Menu 1 Konfiguracja 2 Domy¶lne menu fluxbox 3 Wyj¶cie 4 Ikonki 5 Warstwa... 6 Na monitorze... 7 Umiejscowienie 8 Prze³aduj ustawienia 9 Restart $set 11 #Remember 1 Dekoracje 2 Rozmiar 3 Przejd¼ do pulpitu 4 Warstwa 5 Zapamiêtaj 6 Pozycja 7 Zapisz przy wyj¶ciu 8 Zwiniêty 9 Przyklejony 10 Nieznany klucz pliku apps 11 Pulpit 12 Monitor $set 12 #Screen 1 BScreen::BScreen: wyst±pi³ b³±d podczas wysy³ania zapytania do serwera X'ów.\nNa ekranie w³±czony jest ju¿ inny mened¿er okien 2 S: %4d x W: %4d 4 S: %04d x W: %04d 3 BScreen::BScreen: u¿ywanie ekrany %d u¿ywam visuala 0x%lx, g³êboko¶æ %d\n $set 13 #Slit 1 Klienci 2 Przesuñ wszystkich w górê 3 Przesuñ wszystkich w dó³ 4 Kierunek Tacki 5 Warstwa 6 Na monitorze 7 Po³o¿enie Tacki 8 Tacka 9 Zapamiêtaj kolejno¶æ $set 14 #Toolbar 1 Zmieñ nazwê aktywnego pulpitu 2 Tryb paska ikon 3 Wszystkie okna 4 Ikony 5 ¯adne 6 Pulpit 7 Ikony Pulpitu 8 Warstwa Paska Narzêdzi 10 Po³o¿enie 11 Pasek Narzêdzi 12 Szeroko¶æ w procentach 13 Zegar w trybie 24h 14 Zegar w trybie 12h 15 Format wy¶wietlania zegara 16 Poka¿ ikony $set 15 #Window 1 Bez nazwy $set 16 #Windowmenu 1 Zamknij 2 Minimalizuj 3 Warstwa 4 Pod spód 5 Maksymalizuj 6 Na wierzch 7 Wy¶lij na ... 8 Zwiñ 9 Przyklej 10 Zakoñcz $set 17 #Workspace 1 Pulpit %d 2 Pulpity 3 Nowy Pulpit 4 Usuñ Ostatni $set 18 #fbsetroot 1 b³±d: musisz okre¶liæ jedno z: -solid, -mod, -gradient\n 2 Nie mogê stowrzyæ elementów pixmap - dajê sobie spokój! 3 -display korzystam z ekranu \n\ -mod wzór modu³u\n\ -foreground, -fg kolor pierwszego planu modu³u\n\ -background, -bg kolor t³a modu³u\n\n\ -gradient cieniowana tekstura\n\ -from pierwszy kolor cieniowania\n\ -to drugi kolor cieniowania\n\n\ -solid sta³y kolor\n\n\ -help drukujê tê pomoc i wychodzê\n $set 19 #main 1 b³±d: '-display' wymaga argumentu 2 Z³a allokacja 4 Poza zakresem 5 B³±d wykonania 6 Standardowy wyj±tek 7 Nieznany b³±d 8 B³±d: '-log' wymaga warto¶ci 9 Plik dziennika 10 Zapisujê dziennik 11 b³±d: '-rc' wymaga argumentu 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tu¿yj po³±czenia ekranu.\n\ -rc \t\t\tu¿yj innego pliku zasobów.\n\ -version\t\t\twy¶wietlam wersjê i wychodzê.\n\ -info\t\t\t\twy¶wietlam przydatne informacje.\n\ -log \t\t\tlogi przesy³am do pliku.\n\ -help\t\t\t\twy¶wietlam tê pomoc i wychodzê.\n\ 14 Nie mog³em ustawiæ zmiennej ¶rodowiskowej 'DISPLAY'\n\n $set 20 #layers 1 Powy¿ej docku 2 Na dno 3 Pulpit 4 Dock 5 Normalna 6 Na wierzch fluxbox-1.3.5/nls/pl_PL/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020532 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749875.471812467 30 ctime=1360750008.843811613 fluxbox-1.3.5/nls/pl_PL/Translation.m0000644000175000017500000001277412106662425016574 0ustar00mgmg00000000000000$ codeset=ISO-8859-2 $set 1 #Align 1 Dolny ¦rodkowy 2 Dolny Lewy 3 Dolny Prawy 4 Poziomo 5 Z Lewej 6 Dolny Lewy 7 ¦rodkowy Lewy 8 Górny Lewy 9 Wzglêdny 10 Z Prawej 11 Dolny Prawy 12 ¦rodkowy Prawy 13 Prawy Górny 14 Górny ¦rodkowy 15 Górny Lewy 16 Górny Prawy 17 Pionowo $set 2 #BaseDisplay 1 Porzucam...Zrzucam pamiêæ\n 2 Zamykam\n 3 %s: sygna³ %d otrzyma³\n $set 3 #Common 1 Prze¼roczysto¶æ 2 Auto ukrywanie 3 Skompilowano 4 Skompilowano z opcjami 5 Kompilator 6 Wersja kompilatora 7 init 8 keys 10 menu 11 Styl 12 Warto¶ci domy¶lne 13 wy³±czone 14 B³±d 15 Fluxbox wersja 16 Maksymalizuj nad 18 Widoczny $set 4 #Configmenu 1 AntiAlias 2 Automatyczne podnoszenie 3 Kliknij aby daæ na wierzch 4 Kliknij by uaktywniæ 5 Dekoracje na oknach-dzieciach 6 Zmiana pulpitów kó³kiem myszy 7 Zmieñ aktywne okno przy zmianie pulpitów 8 Sposób aktywacji okien 9 Ustawiaj nowe okna jako aktywne 10 Pe³na maksymalizacja 11 Rastrowanie Obrazu 12 Wy¶wietlaj zawarto¶æ przesuwanego okna 13 Pó³-automatyczna aktywacja 14 Poka¿ kursorem by uaktywniæ 15 Pulpity obok siebie 16 Wymu¶ pseudo prze¼roczysto¶æ 17 Prze¼roczysto¶æ menu 18 Prze¼roczysto¶æ 19 Prze¼roczysto¶æ aktywnego okna 20 Prze¼roczysto¶æ nieaktywnego okna $set 5 #Ewmh 1 B³±d krytyczny: Brak pamiêci, nie mogê zarezerwowaæ lity klientów EWMH $set 6 #FbTkError 1 Ostrze¿enie! Wysoko¶æ > 3200 Ustawiam Wysoko¶æ = 3200 2 Ostrze¿enie! Szeroko¶æ > 3200 Ustawiam Szeroko¶æ = 3200 3 Ostrze¿enie: nie mogê za³adowaæ zapasowej czcionki 4 B³±d allokacji. 5 B³±d podczas tworzenia pixmapy 6 Nie mogê stworzyæ XImage 7 B³±d odczytu 8 Ostrze¿enie: Nie znaleziono poprawnych ustawieñ prze¼roczysto¶ci 9 Ostrze¿enie: Nie powiod³o siê tworzenie prze¼roczystego obrazu 10 Ostrze¿enie: Nie powiod³o siê tworzenie prze¼roczystej pixmapy 11 Nie znala³em formatu dla ekranu(%d) 12 Brak pamiêci 13 Brak pamiêci podczas alokacji niebieskiego bufora. 14 Brak pamiêci podczas alokacji zielonego bufora. 15 Brak pamiêci podczas alokacji czerwonego bufora. 16 Nie rozpoznajê elementu stylu 17 b³±d podczas renderowania obrazka 18 Ustawiam warto¶æ domy¶ln± $set 7 #Fluxbox 1 niew³asciwa nazwa pliku zasobów! 2 Nie mogê za³adowaæ pliku grup 3 Nie mogê za³adowaæ bazy danych 4 Próbuje ponownie z 5 Ostrze¿enie! Nie mogê znale¼æ ekranu na który mogê zmapowaæ okno! 6 Nie mogê utworzyæ katalogu %s 7 Nie moge znale¼æ ekranów do zarz±dzania\nUpewnij siê ¿e nie masz w³±czonego inne mened¼era okien. 8 B³±d podczas parsowania wyra¿enia reguralnego 9 B³±d krytyczny! Mo¿e istnieæ tylko jedna instancja klasy fluxbox. 10 Nie mogê po³±czyæ siê z serwerem X.\nUpewnij siê ¿e uruchomi³e¶ X'y przed uruchomieniem Fluxbox. 11 Ostrze¿enie: serwer X nie wspiera ustawieñ lokalnych 12 Ostrze¿enie: nie mo¿na ustawiæ modyfikatorów lokalnych $set 8 #Gnome 1 B³±d krytyczny: Brak pamiêci, nie mogê zaalokowaæ dla listy klientów GNOME $set 9 #Keys 1 Keys: B³±d w lini 2 Keys: B³±d podczas ³±czenia drzew klawiszy! 3 Keys: Niew³a¶ciwy klawisz/modyfikator w linii $set 10 #Menu 1 Konfiguracja 2 Domy¶lne menu fluxbox 3 Wyj¶cie 4 Ikonki 5 Warstwa... 6 Na monitorze... 7 Umiejscowienie 8 Prze³aduj ustawienia 9 Restart $set 11 #Remember 1 Dekoracje 2 Rozmiar 3 Przejd¼ do pulpitu 4 Warstwa 5 Zapamiêtaj 6 Pozycja 7 Zapisz przy wyj¶ciu 8 Zwiniêty 9 Przyklejony 10 Nieznany klucz pliku apps 11 Pulpit 12 Monitor $set 12 #Screen 1 BScreen::BScreen: wyst±pi³ b³±d podczas wysy³ania zapytania do serwera X'ów.\nNa ekranie w³±czony jest ju¿ inny mened¿er okien 2 S: %4d x W: %4d 4 S: %04d x W: %04d 3 BScreen::BScreen: u¿ywanie ekrany %d u¿ywam visuala 0x%lx, g³êboko¶æ %d\n $set 13 #Slit 1 Klienci 2 Przesuñ wszystkich w górê 3 Przesuñ wszystkich w dó³ 4 Kierunek Tacki 5 Warstwa 6 Na monitorze 7 Po³o¿enie Tacki 8 Tacka 9 Zapamiêtaj kolejno¶æ $set 14 #Toolbar 1 Zmieñ nazwê aktywnego pulpitu 2 Tryb paska ikon 3 Wszystkie okna 4 Ikony 5 ¯adne 6 Pulpit 7 Ikony Pulpitu 8 Warstwa Paska Narzêdzi 10 Po³o¿enie 11 Pasek Narzêdzi 12 Szeroko¶æ w procentach 13 Zegar w trybie 24h 14 Zegar w trybie 12h 15 Format wy¶wietlania zegara 16 Poka¿ ikony $set 15 #Window 1 Bez nazwy $set 16 #Windowmenu 1 Zamknij 2 Minimalizuj 3 Warstwa 4 Pod spód 5 Maksymalizuj 6 Na wierzch 7 Wy¶lij na ... 8 Zwiñ 9 Przyklej 10 Zakoñcz $set 17 #Workspace 1 Pulpit %d 2 Pulpity 3 Nowy Pulpit 4 Usuñ Ostatni $set 18 #fbsetroot 1 b³±d: musisz okre¶liæ jedno z: -solid, -mod, -gradient\n 2 Nie mogê stowrzyæ elementów pixmap - dajê sobie spokój! 3 -display korzystam z ekranu \n\ -mod wzór modu³u\n\ -foreground, -fg kolor pierwszego planu modu³u\n\ -background, -bg kolor t³a modu³u\n\n\ -gradient cieniowana tekstura\n\ -from pierwszy kolor cieniowania\n\ -to drugi kolor cieniowania\n\n\ -solid sta³y kolor\n\n\ -help drukujê tê pomoc i wychodzê\n $set 19 #main 1 b³±d: '-display' wymaga argumentu 2 Z³a allokacja 4 Poza zakresem 5 B³±d wykonania 6 Standardowy wyj±tek 7 Nieznany b³±d 8 B³±d: '-log' wymaga warto¶ci 9 Plik dziennika 10 Zapisujê dziennik 11 b³±d: '-rc' wymaga argumentu 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tu¿yj po³±czenia ekranu.\n\ -rc \t\t\tu¿yj innego pliku zasobów.\n\ -version\t\t\twy¶wietlam wersjê i wychodzê.\n\ -info\t\t\t\twy¶wietlam przydatne informacje.\n\ -log \t\t\tlogi przesy³am do pliku.\n\ -help\t\t\t\twy¶wietlam tê pomoc i wychodzê.\n\ 14 Nie mog³em ustawiæ zmiennej ¶rodowiskowej 'DISPLAY'\n\n $set 20 #layers 1 Powy¿ej docku 2 Na dno 3 Pulpit 4 Dock 5 Normalna 6 Na wierzch fluxbox-1.3.5/nls/pl_PL/PaxHeaders.25974/Makefile.in0000644000175000017500000000013112106662604020121 xustar000000000000000029 mtime=1360749956.21981195 30 atime=1360750003.895811645 30 ctime=1360750008.843811613 fluxbox-1.3.5/nls/pl_PL/Makefile.in0000644000175000017500000002715412106662604016162 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/pl_PL/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/pl_PL DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = pl_PL SRC_CODESET = ISO-8859-2 DEST_CODESETS = ISO-8859-2 UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/pl_PL/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/pl_PL/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/pl_PL/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020112 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749854.071812604 30 ctime=1360750008.843811613 fluxbox-1.3.5/nls/pl_PL/Makefile.am0000644000175000017500000000301012106662425016133 0ustar00mgmg00000000000000# nls/pl_PL/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = pl_PL SRC_CODESET = ISO-8859-2 DEST_CODESETS = ISO-8859-2 UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/sl_SI0000644000175000017500000000013112106662666016012 xustar000000000000000029 mtime=1360750006.23581163 30 atime=1360750008.847811613 30 ctime=1360750008.847811613 fluxbox-1.3.5/nls/sl_SI/0000755000175000017500000000000012106662666014117 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/sl_SI/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662463021000 xustar000000000000000030 mtime=1360749875.435812467 30 atime=1360749875.451812467 30 ctime=1360750008.847811613 fluxbox-1.3.5/nls/sl_SI/generated-UTF-8.m0000644000175000017500000000432412106662463017032 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Na dnu in osredinjeno 2 Na dnu in levo poravnano 3 Na dnu in desno poravnano 4 Vodoravno 6 Levo spodaj 7 Levo v sredini 8 Levo zgoraj 11 Desno spodaj 12 Desno v sredini 13 Desno zgoraj 14 Na vrhu in osredinjeno 15 Na vrhu in levo poravnano 16 Na vrhu in desno poravnano 17 NavpiÄno $set 2 #BaseDisplay $set 3 #Common 2 Samodejno skrivanje $set 4 #Configmenu 1 Glajenje pisav 2 Samodejno odkrivanje 4 Za fokus kliknite 7 Spremenjeni fokus okna na namizju 8 NaÄin fokusiranja 9 Novo okno dobi fokus 10 NajveÄje okno 11 Prelivanje slik 12 Premikanje prosojnih oken 13 Napol povrÅ¡no fokusiranje 14 PovrÅ¡ni fokus 15 Premikanje oken na druge delovne povrÅ¡ine $set 5 #Ewmh $set 6 #FbTkError $set 7 #Fluxbox $set 8 #Gnome $set 9 #Keys $set 10 #Menu 3 Izhod 4 Ikone 7 Lega 9 Ponovni zagon $set 11 #Remember $set 12 #Screen 2 W: %4d x H: %4d 4 W: %04d x H: %04d $set 13 #Slit 4 Smer reže 7 Lega reže 8 Reža $set 14 #Toolbar 1 Uredi ime trenutnega namizja 10 Lega orodne letve 11 Orodna letev $set 15 #Window 1 Neimenovano $set 16 #Windowmenu 1 Zapusti 2 PomanjÅ¡aj 4 Zakrij 5 PoveÄaj 6 Prikaži 7 Na delovno povrÅ¡ino... 8 Zastri 9 Prilepi $set 17 #Workspace 1 Delovna povrÅ¡ina %d 2 Delovne povrÅ¡ine 3 Nova delovna povrÅ¡ina 4 Odstrani zadnjo $set 18 #fbsetroot 1 napaka: doloÄiti je treba eno: -solid, -mod, -gradient\n 3 -display prikaži povezavo\n\ -mod vzorec\n\ -foreground, -fg barva ospredja\n\ -background, -bg barva ozadja\n\n\ -gradient prelivna tekstura\n\ -from zaÄetna barva preliva\n\ -to konÄna barva preliva\n\n\ -solid enotna barva\n\n\ -help prikaži ta navodila in konÄaj\n $set 19 #main 1 napaka: '-display' zahteva argument 11 napaka: '-rc' zahteva argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tuporabi prikazovalnik.\n\ -rc \t\t\tuporabi nadomestno datoteko z viri.\n\ -version\t\t\tprikaži oznako razliÄice in konÄaj.\n\ -info\t\t\t\tprikaži nekaj uporabnih informacij.\n\ -log \t\t\tzapiÅ¡i dnevnik v datoteko.\n\ -help\t\t\t\tprikaži ta navodila in konÄaj.\n\n fluxbox-1.3.5/nls/sl_SI/PaxHeaders.25974/generated-ISO-8859-2.m0000644000175000017500000000013212106662463021401 xustar000000000000000030 mtime=1360749875.431812467 30 atime=1360749875.447812467 30 ctime=1360750008.847811613 fluxbox-1.3.5/nls/sl_SI/generated-ISO-8859-2.m0000644000175000017500000000427412106662463017437 0ustar00mgmg00000000000000$ codeset=ISO-8859-2 $set 1 #Align 1 Na dnu in osredinjeno 2 Na dnu in levo poravnano 3 Na dnu in desno poravnano 4 Vodoravno 6 Levo spodaj 7 Levo v sredini 8 Levo zgoraj 11 Desno spodaj 12 Desno v sredini 13 Desno zgoraj 14 Na vrhu in osredinjeno 15 Na vrhu in levo poravnano 16 Na vrhu in desno poravnano 17 Navpièno $set 2 #BaseDisplay $set 3 #Common 2 Samodejno skrivanje $set 4 #Configmenu 1 Glajenje pisav 2 Samodejno odkrivanje 4 Za fokus kliknite 7 Spremenjeni fokus okna na namizju 8 Naèin fokusiranja 9 Novo okno dobi fokus 10 Najveèje okno 11 Prelivanje slik 12 Premikanje prosojnih oken 13 Napol povr¹no fokusiranje 14 Povr¹ni fokus 15 Premikanje oken na druge delovne povr¹ine $set 5 #Ewmh $set 6 #FbTkError $set 7 #Fluxbox $set 8 #Gnome $set 9 #Keys $set 10 #Menu 3 Izhod 4 Ikone 7 Lega 9 Ponovni zagon $set 11 #Remember $set 12 #Screen 2 W: %4d x H: %4d 4 W: %04d x H: %04d $set 13 #Slit 4 Smer re¾e 7 Lega re¾e 8 Re¾a $set 14 #Toolbar 1 Uredi ime trenutnega namizja 10 Lega orodne letve 11 Orodna letev $set 15 #Window 1 Neimenovano $set 16 #Windowmenu 1 Zapusti 2 Pomanj¹aj 4 Zakrij 5 Poveèaj 6 Prika¾i 7 Na delovno povr¹ino... 8 Zastri 9 Prilepi $set 17 #Workspace 1 Delovna povr¹ina %d 2 Delovne povr¹ine 3 Nova delovna povr¹ina 4 Odstrani zadnjo $set 18 #fbsetroot 1 napaka: doloèiti je treba eno: -solid, -mod, -gradient\n 3 -display prika¾i povezavo\n\ -mod vzorec\n\ -foreground, -fg barva ospredja\n\ -background, -bg barva ozadja\n\n\ -gradient prelivna tekstura\n\ -from zaèetna barva preliva\n\ -to konèna barva preliva\n\n\ -solid enotna barva\n\n\ -help prika¾i ta navodila in konèaj\n $set 19 #main 1 napaka: '-display' zahteva argument 11 napaka: '-rc' zahteva argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tuporabi prikazovalnik.\n\ -rc \t\t\tuporabi nadomestno datoteko z viri.\n\ -version\t\t\tprika¾i oznako razlièice in konèaj.\n\ -info\t\t\t\tprika¾i nekaj uporabnih informacij.\n\ -log \t\t\tzapi¹i dnevnik v datoteko.\n\ -help\t\t\t\tprika¾i ta navodila in konèaj.\n\n fluxbox-1.3.5/nls/sl_SI/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020535 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749875.431812467 30 ctime=1360750008.847811613 fluxbox-1.3.5/nls/sl_SI/Translation.m0000644000175000017500000000427412106662425016573 0ustar00mgmg00000000000000$ codeset=ISO-8859-2 $set 1 #Align 1 Na dnu in osredinjeno 2 Na dnu in levo poravnano 3 Na dnu in desno poravnano 4 Vodoravno 6 Levo spodaj 7 Levo v sredini 8 Levo zgoraj 11 Desno spodaj 12 Desno v sredini 13 Desno zgoraj 14 Na vrhu in osredinjeno 15 Na vrhu in levo poravnano 16 Na vrhu in desno poravnano 17 Navpièno $set 2 #BaseDisplay $set 3 #Common 2 Samodejno skrivanje $set 4 #Configmenu 1 Glajenje pisav 2 Samodejno odkrivanje 4 Za fokus kliknite 7 Spremenjeni fokus okna na namizju 8 Naèin fokusiranja 9 Novo okno dobi fokus 10 Najveèje okno 11 Prelivanje slik 12 Premikanje prosojnih oken 13 Napol povr¹no fokusiranje 14 Povr¹ni fokus 15 Premikanje oken na druge delovne povr¹ine $set 5 #Ewmh $set 6 #FbTkError $set 7 #Fluxbox $set 8 #Gnome $set 9 #Keys $set 10 #Menu 3 Izhod 4 Ikone 7 Lega 9 Ponovni zagon $set 11 #Remember $set 12 #Screen 2 W: %4d x H: %4d 4 W: %04d x H: %04d $set 13 #Slit 4 Smer re¾e 7 Lega re¾e 8 Re¾a $set 14 #Toolbar 1 Uredi ime trenutnega namizja 10 Lega orodne letve 11 Orodna letev $set 15 #Window 1 Neimenovano $set 16 #Windowmenu 1 Zapusti 2 Pomanj¹aj 4 Zakrij 5 Poveèaj 6 Prika¾i 7 Na delovno povr¹ino... 8 Zastri 9 Prilepi $set 17 #Workspace 1 Delovna povr¹ina %d 2 Delovne povr¹ine 3 Nova delovna povr¹ina 4 Odstrani zadnjo $set 18 #fbsetroot 1 napaka: doloèiti je treba eno: -solid, -mod, -gradient\n 3 -display prika¾i povezavo\n\ -mod vzorec\n\ -foreground, -fg barva ospredja\n\ -background, -bg barva ozadja\n\n\ -gradient prelivna tekstura\n\ -from zaèetna barva preliva\n\ -to konèna barva preliva\n\n\ -solid enotna barva\n\n\ -help prika¾i ta navodila in konèaj\n $set 19 #main 1 napaka: '-display' zahteva argument 11 napaka: '-rc' zahteva argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tuporabi prikazovalnik.\n\ -rc \t\t\tuporabi nadomestno datoteko z viri.\n\ -version\t\t\tprika¾i oznako razlièice in konèaj.\n\ -info\t\t\t\tprika¾i nekaj uporabnih informacij.\n\ -log \t\t\tzapi¹i dnevnik v datoteko.\n\ -help\t\t\t\tprika¾i ta navodila in konèaj.\n\n fluxbox-1.3.5/nls/sl_SI/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662604020125 xustar000000000000000030 mtime=1360749956.331811949 30 atime=1360750003.983811644 30 ctime=1360750008.851811613 fluxbox-1.3.5/nls/sl_SI/Makefile.in0000644000175000017500000002715412106662604016165 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/sl_SI/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/sl_SI DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = sl_SI SRC_CODESET = ISO-8859-2 DEST_CODESETS = ISO-8859-2 UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/sl_SI/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/sl_SI/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/sl_SI/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020115 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749854.179812603 30 ctime=1360750008.851811613 fluxbox-1.3.5/nls/sl_SI/Makefile.am0000644000175000017500000000301012106662425016136 0ustar00mgmg00000000000000# nls/sl_SI/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = sl_SI SRC_CODESET = ISO-8859-2 DEST_CODESETS = ISO-8859-2 UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/no_NO0000644000175000017500000000013112106662666016011 xustar000000000000000029 mtime=1360750006.19981163 30 atime=1360750008.851811613 30 ctime=1360750008.851811613 fluxbox-1.3.5/nls/no_NO/0000755000175000017500000000000012106662666014116 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/no_NO/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662463020777 xustar000000000000000030 mtime=1360749875.395812467 30 atime=1360749875.411812467 30 ctime=1360750008.851811613 fluxbox-1.3.5/nls/no_NO/generated-UTF-8.m0000644000175000017500000000706512106662463017036 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Nede i midten 2 Nede til venstre 3 Nede til høyre 4 Horisontelt 5 Venstre 6 Til venstre nede 7 Til venstre i midten 8 Til venstre opp 9 Relativt 10 Høyre 11 Til høyre nede 12 Til høyre i midten 13 Til høyre oppe 14 Oppe i midten 15 Oppe til venstre 16 Oppe til høyre 17 Vertikalt $set 2 #BaseDisplay 1 Avbryter.. dumper kjernen\n 2 Avslutter\n 3 %s: signal %d fanget\n $set 3 #Common 1 Gjenomsiktlighet 2 Gjem automatisk 3 Kompilert 4 Kompilerte valg 5 Kompilator 6 Kompilator valg 7 init-fil 8 Taste-fil 9 SprÃ¥k 10 Meny-fil 11 Stil 12 Standard valg 13 ikke aktivert 14 Valg 15 Fluxbox versjon 16 Forstørr over 17 GIT versjon 18 Synlig $set 4 #Configmenu 1 Kantutjevning 2 Vis automatisk 3 Klikk hever 4 Klikk for fokus 5 Dekorer gjennomsiktige vinduer 6 Skrivebord Mushjul Bytting 7 Fokuser vindu ved skrivebordsbytte 8 Fokusmodell 9 Fokus pÃ¥ nye vinduer 10 Full maximering 11 Bildedithering 12 Ugjennomsiktelig vinduflyttning 13 Halvsløv fokus 14 Sløv fokus 15 Dra vindu mellon arbeidsplasser 16 Tving kunstig gjennomsiktighet 17 Meny gjennomsiktighet 18 Gjennomsiktighet 19 Fokusert vindugjennomsiktighet 20 Ufokusert vindugjennomsiktighet $set 5 #Ewmh 1 Farlig: Tom for minne, kan ikke allokere for EWHM klient listen $set 6 #FbTkError 1 Advarsel! Høyden > 3200 setter Høyde = 3200 2 Advarsel! Vidden > 3200 setter Vidde = 3200 3 Advarsel! Kan ikke finne font 4 Allokerings feil 5 Feil ved opprettelse av pixmap 6 Kan ikke opprette XImage 7 Klarte ikke Ã¥ lese $set 7 #Fluxbox 1 rc filnavn er ikke gyldig! 2 Klarte ikke laste gruppefil 3 Klarte ikke laste gruppefil 4 Prøver igjen med 5 Advarsel! Kunne ikke finne skjerm Ã¥ skrive til 6 Kan ikke opprette mappen %s $set 8 #Gnome $set 9 #Keys $set 10 #Menu 1 Konfigurasjon 2 Fluxbox standard meny 3 Avslutt 4 Ikoner 5 Lag... 7 Plassering 8 Last konfig pÃ¥ ny 9 Start pÃ¥ ny $set 11 #Remember 1 Dekorasjoner 2 Dimensjoner 3 Hopp til arbeidsplass 4 Lag 5 Husk... 6 Posisjon 7 Lagre ved lukking 8 Skygge 9 Klister $set 12 #Screen 2 W: %4d x H: %4d 4 W: %04d x H: %04d $set 13 #Slit 4 Slitretning 7 Slitplassering 8 Slit $set 14 #Toolbar 1 Endre skrivebordsnavn 2 Ikonlinje modus 3 Alle vinduer 4 Ikoner 5 Ingen 6 Arbeidsplass 7 Arbedisplass ikoner 8 Verktøylinje lag 10 Verktøylistens plassering 11 Verktøysliste 12 Verktøyliste vidde i prosent 13 Klokke: 24t 14 Klokke: 12t 15 Endre klokkeformat 16 Vis bilder 17 Ingen ikoner $set 15 #Window 1 Intet navn $set 16 #Windowmenu 1 Lukk 2 Ikonifiser 3 Lag 4 Senk 5 Maksimer 6 Høyne 7 Send til... 8 Skygge 9 Klebrig 10 Drep $set 17 #Workspace 1 Skrivebord %d 2 Skrivebord 3 Nytt skrivebord 4 Fjern siste $set 18 #fbsetroot 1 fel: mÃ¥ste specifiera en av: -solid, -mod, -gradient\n 3 -display skärmanslutning\n\ -mod modulamönster\n\ -foreground, -fg förgrundsfärg för modulamönster\n\ -background, -bg bakgrundsfärg för modulamönster\n\n\ -gradient texturlutning\n\ -from startfärg\n\ -to slutfärg\n\n\ -solid solid färg\n\n\ -help visa denna hjälptext och avsluta\n $set 19 #main 1 feil: '-display' krever ett argument 11 fel: '-rc' krever ett argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tanvend skjermanslutning.\n\ -rc \t\t\tanvänd alternativ resursfil.\n\ -version\t\t\tvisa version och avsluta.\n\ -info\t\t\t\tVisar nyttig information.\n\ -log \t\t\tloggar utskriften till en fil.\n\ -help\t\t\t\tvisa denna hjälptext och avsluta.\n\n fluxbox-1.3.5/nls/no_NO/PaxHeaders.25974/generated-ISO-8859-1.m0000644000175000017500000000013212106662463021377 xustar000000000000000030 mtime=1360749875.391812467 30 atime=1360749875.407812467 30 ctime=1360750008.855811613 fluxbox-1.3.5/nls/no_NO/generated-ISO-8859-1.m0000644000175000017500000000702212106662463017427 0ustar00mgmg00000000000000$ codeset=ISO-8859-1 $set 1 #Align 1 Nede i midten 2 Nede til venstre 3 Nede til høyre 4 Horisontelt 5 Venstre 6 Til venstre nede 7 Til venstre i midten 8 Til venstre opp 9 Relativt 10 Høyre 11 Til høyre nede 12 Til høyre i midten 13 Til høyre oppe 14 Oppe i midten 15 Oppe til venstre 16 Oppe til høyre 17 Vertikalt $set 2 #BaseDisplay 1 Avbryter.. dumper kjernen\n 2 Avslutter\n 3 %s: signal %d fanget\n $set 3 #Common 1 Gjenomsiktlighet 2 Gjem automatisk 3 Kompilert 4 Kompilerte valg 5 Kompilator 6 Kompilator valg 7 init-fil 8 Taste-fil 9 Språk 10 Meny-fil 11 Stil 12 Standard valg 13 ikke aktivert 14 Valg 15 Fluxbox versjon 16 Forstørr over 17 GIT versjon 18 Synlig $set 4 #Configmenu 1 Kantutjevning 2 Vis automatisk 3 Klikk hever 4 Klikk for fokus 5 Dekorer gjennomsiktige vinduer 6 Skrivebord Mushjul Bytting 7 Fokuser vindu ved skrivebordsbytte 8 Fokusmodell 9 Fokus på nye vinduer 10 Full maximering 11 Bildedithering 12 Ugjennomsiktelig vinduflyttning 13 Halvsløv fokus 14 Sløv fokus 15 Dra vindu mellon arbeidsplasser 16 Tving kunstig gjennomsiktighet 17 Meny gjennomsiktighet 18 Gjennomsiktighet 19 Fokusert vindugjennomsiktighet 20 Ufokusert vindugjennomsiktighet $set 5 #Ewmh 1 Farlig: Tom for minne, kan ikke allokere for EWHM klient listen $set 6 #FbTkError 1 Advarsel! Høyden > 3200 setter Høyde = 3200 2 Advarsel! Vidden > 3200 setter Vidde = 3200 3 Advarsel! Kan ikke finne font 4 Allokerings feil 5 Feil ved opprettelse av pixmap 6 Kan ikke opprette XImage 7 Klarte ikke å lese $set 7 #Fluxbox 1 rc filnavn er ikke gyldig! 2 Klarte ikke laste gruppefil 3 Klarte ikke laste gruppefil 4 Prøver igjen med 5 Advarsel! Kunne ikke finne skjerm å skrive til 6 Kan ikke opprette mappen %s $set 8 #Gnome $set 9 #Keys $set 10 #Menu 1 Konfigurasjon 2 Fluxbox standard meny 3 Avslutt 4 Ikoner 5 Lag... 7 Plassering 8 Last konfig på ny 9 Start på ny $set 11 #Remember 1 Dekorasjoner 2 Dimensjoner 3 Hopp til arbeidsplass 4 Lag 5 Husk... 6 Posisjon 7 Lagre ved lukking 8 Skygge 9 Klister $set 12 #Screen 2 W: %4d x H: %4d 4 W: %04d x H: %04d $set 13 #Slit 4 Slitretning 7 Slitplassering 8 Slit $set 14 #Toolbar 1 Endre skrivebordsnavn 2 Ikonlinje modus 3 Alle vinduer 4 Ikoner 5 Ingen 6 Arbeidsplass 7 Arbedisplass ikoner 8 Verktøylinje lag 10 Verktøylistens plassering 11 Verktøysliste 12 Verktøyliste vidde i prosent 13 Klokke: 24t 14 Klokke: 12t 15 Endre klokkeformat 16 Vis bilder 17 Ingen ikoner $set 15 #Window 1 Intet navn $set 16 #Windowmenu 1 Lukk 2 Ikonifiser 3 Lag 4 Senk 5 Maksimer 6 Høyne 7 Send til... 8 Skygge 9 Klebrig 10 Drep $set 17 #Workspace 1 Skrivebord %d 2 Skrivebord 3 Nytt skrivebord 4 Fjern siste $set 18 #fbsetroot 1 fel: måste specifiera en av: -solid, -mod, -gradient\n 3 -display skärmanslutning\n\ -mod modulamönster\n\ -foreground, -fg förgrundsfärg för modulamönster\n\ -background, -bg bakgrundsfärg för modulamönster\n\n\ -gradient texturlutning\n\ -from startfärg\n\ -to slutfärg\n\n\ -solid solid färg\n\n\ -help visa denna hjälptext och avsluta\n $set 19 #main 1 feil: '-display' krever ett argument 11 fel: '-rc' krever ett argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tanvend skjermanslutning.\n\ -rc \t\t\tanvänd alternativ resursfil.\n\ -version\t\t\tvisa version och avsluta.\n\ -info\t\t\t\tVisar nyttig information.\n\ -log \t\t\tloggar utskriften till en fil.\n\ -help\t\t\t\tvisa denna hjälptext och avsluta.\n\n fluxbox-1.3.5/nls/no_NO/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020534 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749875.391812467 30 ctime=1360750008.855811613 fluxbox-1.3.5/nls/no_NO/Translation.m0000644000175000017500000000702212106662425016564 0ustar00mgmg00000000000000$ codeset=ISO-8859-1 $set 1 #Align 1 Nede i midten 2 Nede til venstre 3 Nede til høyre 4 Horisontelt 5 Venstre 6 Til venstre nede 7 Til venstre i midten 8 Til venstre opp 9 Relativt 10 Høyre 11 Til høyre nede 12 Til høyre i midten 13 Til høyre oppe 14 Oppe i midten 15 Oppe til venstre 16 Oppe til høyre 17 Vertikalt $set 2 #BaseDisplay 1 Avbryter.. dumper kjernen\n 2 Avslutter\n 3 %s: signal %d fanget\n $set 3 #Common 1 Gjenomsiktlighet 2 Gjem automatisk 3 Kompilert 4 Kompilerte valg 5 Kompilator 6 Kompilator valg 7 init-fil 8 Taste-fil 9 Språk 10 Meny-fil 11 Stil 12 Standard valg 13 ikke aktivert 14 Valg 15 Fluxbox versjon 16 Forstørr over 17 GIT versjon 18 Synlig $set 4 #Configmenu 1 Kantutjevning 2 Vis automatisk 3 Klikk hever 4 Klikk for fokus 5 Dekorer gjennomsiktige vinduer 6 Skrivebord Mushjul Bytting 7 Fokuser vindu ved skrivebordsbytte 8 Fokusmodell 9 Fokus på nye vinduer 10 Full maximering 11 Bildedithering 12 Ugjennomsiktelig vinduflyttning 13 Halvsløv fokus 14 Sløv fokus 15 Dra vindu mellon arbeidsplasser 16 Tving kunstig gjennomsiktighet 17 Meny gjennomsiktighet 18 Gjennomsiktighet 19 Fokusert vindugjennomsiktighet 20 Ufokusert vindugjennomsiktighet $set 5 #Ewmh 1 Farlig: Tom for minne, kan ikke allokere for EWHM klient listen $set 6 #FbTkError 1 Advarsel! Høyden > 3200 setter Høyde = 3200 2 Advarsel! Vidden > 3200 setter Vidde = 3200 3 Advarsel! Kan ikke finne font 4 Allokerings feil 5 Feil ved opprettelse av pixmap 6 Kan ikke opprette XImage 7 Klarte ikke å lese $set 7 #Fluxbox 1 rc filnavn er ikke gyldig! 2 Klarte ikke laste gruppefil 3 Klarte ikke laste gruppefil 4 Prøver igjen med 5 Advarsel! Kunne ikke finne skjerm å skrive til 6 Kan ikke opprette mappen %s $set 8 #Gnome $set 9 #Keys $set 10 #Menu 1 Konfigurasjon 2 Fluxbox standard meny 3 Avslutt 4 Ikoner 5 Lag... 7 Plassering 8 Last konfig på ny 9 Start på ny $set 11 #Remember 1 Dekorasjoner 2 Dimensjoner 3 Hopp til arbeidsplass 4 Lag 5 Husk... 6 Posisjon 7 Lagre ved lukking 8 Skygge 9 Klister $set 12 #Screen 2 W: %4d x H: %4d 4 W: %04d x H: %04d $set 13 #Slit 4 Slitretning 7 Slitplassering 8 Slit $set 14 #Toolbar 1 Endre skrivebordsnavn 2 Ikonlinje modus 3 Alle vinduer 4 Ikoner 5 Ingen 6 Arbeidsplass 7 Arbedisplass ikoner 8 Verktøylinje lag 10 Verktøylistens plassering 11 Verktøysliste 12 Verktøyliste vidde i prosent 13 Klokke: 24t 14 Klokke: 12t 15 Endre klokkeformat 16 Vis bilder 17 Ingen ikoner $set 15 #Window 1 Intet navn $set 16 #Windowmenu 1 Lukk 2 Ikonifiser 3 Lag 4 Senk 5 Maksimer 6 Høyne 7 Send til... 8 Skygge 9 Klebrig 10 Drep $set 17 #Workspace 1 Skrivebord %d 2 Skrivebord 3 Nytt skrivebord 4 Fjern siste $set 18 #fbsetroot 1 fel: måste specifiera en av: -solid, -mod, -gradient\n 3 -display skärmanslutning\n\ -mod modulamönster\n\ -foreground, -fg förgrundsfärg för modulamönster\n\ -background, -bg bakgrundsfärg för modulamönster\n\n\ -gradient texturlutning\n\ -from startfärg\n\ -to slutfärg\n\n\ -solid solid färg\n\n\ -help visa denna hjälptext och avsluta\n $set 19 #main 1 feil: '-display' krever ett argument 11 fel: '-rc' krever ett argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tanvend skjermanslutning.\n\ -rc \t\t\tanvänd alternativ resursfil.\n\ -version\t\t\tvisa version och avsluta.\n\ -info\t\t\t\tVisar nyttig information.\n\ -log \t\t\tloggar utskriften till en fil.\n\ -help\t\t\t\tvisa denna hjälptext och avsluta.\n\n fluxbox-1.3.5/nls/no_NO/PaxHeaders.25974/Makefile.in0000644000175000017500000000013112106662604020123 xustar000000000000000029 mtime=1360749956.19981195 30 atime=1360750003.879811645 30 ctime=1360750008.855811613 fluxbox-1.3.5/nls/no_NO/Makefile.in0000644000175000017500000002715412106662604016164 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/no_NO/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/no_NO DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = no_NO SRC_CODESET = ISO-8859-1 DEST_CODESETS = ISO-8859-1 UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/no_NO/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/no_NO/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/no_NO/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020114 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749854.047812604 30 ctime=1360750008.855811613 fluxbox-1.3.5/nls/no_NO/Makefile.am0000644000175000017500000000301012106662425016135 0ustar00mgmg00000000000000# nls/no_NO/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = no_NO SRC_CODESET = ISO-8859-1 DEST_CODESETS = ISO-8859-1 UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/nl_NL0000644000175000017500000000013212106662666016004 xustar000000000000000030 mtime=1360750006.163811631 30 atime=1360750008.859811613 30 ctime=1360750008.855811613 fluxbox-1.3.5/nls/nl_NL/0000755000175000017500000000000012106662666014110 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/nl_NL/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662463020771 xustar000000000000000030 mtime=1360749875.351812468 30 atime=1360749875.367812468 30 ctime=1360750008.859811613 fluxbox-1.3.5/nls/nl_NL/generated-UTF-8.m0000644000175000017500000000416312106662463017024 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Onder midden 2 Onder links 3 Onder rechts 4 Horizontaal 6 Links onder 7 Links midden 8 Links boven 11 Rechts onder 12 Rechts midden 13 Rechts boven 14 Boven midden 15 Boven links 16 Boven rechts 17 Vertikaal $set 2 #BaseDisplay $set 3 #Common 2 Automatisch verbergen $set 4 #Configmenu 1 Lettertypes bijwerken 2 Automatisch verhogen 4 Klik om Focus te krijgen 7 Focus Vensters na werkveldwissel 8 Focussoort 9 Nieuwe vensters focussen 10 Volledig maximaliseren 11 Plaatjes afvlakking 12 Venster ondoorzichtig verplaatsen 13 Bijna altijd muis focus 14 Muis focus 15 Werkveld springen $set 5 #Ewmh $set 6 #FbTkError $set 7 #Fluxbox $set 8 #Gnome $set 9 #Keys $set 10 #Menu 3 Afsluiten 4 Iconen 7 Plaats 9 Herstart $set 11 #Remember $set 12 #Screen 2 W: %4d x H: %4d 4 W: %04d x H: %04d $set 13 #Slit 4 Spleet-Richting 7 Spleet-Plaatsing 8 Spleet $set 14 #Toolbar 1 Werkveldnaam veranderen 10 Werkbalkplaatsing 11 Werkbalklijst $set 15 #Window 1 Naamloos $set 16 #Windowmenu 1 Sluiten 2 Minimalizeren 4 Onderop leggen 5 Maximalizeren 6 Bovenop leggen 7 Stuur naar 8 Oprollen 9 Plakkerig $set 17 #Workspace 1 Werkveld %d 2 Werkvelden 3 Nieuw werkveld 4 Verwijder laatste $set 18 #fbsetroot 1 error: must specify one of: -solid, -mod, -gradient\n 3 -display display connection\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient gradient texture\n\ -from gradient start color\n\ -to gradient end color\n\n\ -solid solid color\n\n\ -help print this help text and exit\n $set 19 #main 1 error: '-display' heeft een argument nodig 11 error: '-rc' heeft een argument nodig 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tkies ander scherm.\n\ -rc \t\t\tgebruik alternatieve configuratie.\n\ -version\t\t\ttoon versienummer.\n\ -info\t\t\t\ttoon bruikbare informatie.\n\ -log \t\t\tlog uitvoer naar bestand.\n\ -help\t\t\t\ttoon deze hulptekst.\n\n fluxbox-1.3.5/nls/nl_NL/PaxHeaders.25974/generated-ISO-8859-15.m0000644000175000017500000000013212106662463021456 xustar000000000000000030 mtime=1360749875.351812468 30 atime=1360749875.367812468 30 ctime=1360750008.859811613 fluxbox-1.3.5/nls/nl_NL/generated-ISO-8859-15.m0000644000175000017500000000417112106662463017510 0ustar00mgmg00000000000000$ codeset=ISO-8859-15 $set 1 #Align 1 Onder midden 2 Onder links 3 Onder rechts 4 Horizontaal 6 Links onder 7 Links midden 8 Links boven 11 Rechts onder 12 Rechts midden 13 Rechts boven 14 Boven midden 15 Boven links 16 Boven rechts 17 Vertikaal $set 2 #BaseDisplay $set 3 #Common 2 Automatisch verbergen $set 4 #Configmenu 1 Lettertypes bijwerken 2 Automatisch verhogen 4 Klik om Focus te krijgen 7 Focus Vensters na werkveldwissel 8 Focussoort 9 Nieuwe vensters focussen 10 Volledig maximaliseren 11 Plaatjes afvlakking 12 Venster ondoorzichtig verplaatsen 13 Bijna altijd muis focus 14 Muis focus 15 Werkveld springen $set 5 #Ewmh $set 6 #FbTkError $set 7 #Fluxbox $set 8 #Gnome $set 9 #Keys $set 10 #Menu 3 Afsluiten 4 Iconen 7 Plaats 9 Herstart $set 11 #Remember $set 12 #Screen 2 W: %4d x H: %4d 4 W: %04d x H: %04d $set 13 #Slit 4 Spleet-Richting 7 Spleet-Plaatsing 8 Spleet $set 14 #Toolbar 1 Werkveldnaam veranderen 10 Werkbalkplaatsing 11 Werkbalklijst $set 15 #Window 1 Naamloos $set 16 #Windowmenu 1 Sluiten 2 Minimalizeren 4 Onderop leggen 5 Maximalizeren 6 Bovenop leggen 7 Stuur naar 8 Oprollen 9 Plakkerig $set 17 #Workspace 1 Werkveld %d 2 Werkvelden 3 Nieuw werkveld 4 Verwijder laatste $set 18 #fbsetroot 1 error: must specify one of: -solid, -mod, -gradient\n 3 -display display connection\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient gradient texture\n\ -from gradient start color\n\ -to gradient end color\n\n\ -solid solid color\n\n\ -help print this help text and exit\n $set 19 #main 1 error: '-display' heeft een argument nodig 11 error: '-rc' heeft een argument nodig 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tkies ander scherm.\n\ -rc \t\t\tgebruik alternatieve configuratie.\n\ -version\t\t\ttoon versienummer.\n\ -info\t\t\t\ttoon bruikbare informatie.\n\ -log \t\t\tlog uitvoer naar bestand.\n\ -help\t\t\t\ttoon deze hulptekst.\n\n fluxbox-1.3.5/nls/nl_NL/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020526 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749875.347812468 30 ctime=1360750008.859811613 fluxbox-1.3.5/nls/nl_NL/Translation.m0000644000175000017500000000417112106662425016560 0ustar00mgmg00000000000000$ codeset=ISO-8859-15 $set 1 #Align 1 Onder midden 2 Onder links 3 Onder rechts 4 Horizontaal 6 Links onder 7 Links midden 8 Links boven 11 Rechts onder 12 Rechts midden 13 Rechts boven 14 Boven midden 15 Boven links 16 Boven rechts 17 Vertikaal $set 2 #BaseDisplay $set 3 #Common 2 Automatisch verbergen $set 4 #Configmenu 1 Lettertypes bijwerken 2 Automatisch verhogen 4 Klik om Focus te krijgen 7 Focus Vensters na werkveldwissel 8 Focussoort 9 Nieuwe vensters focussen 10 Volledig maximaliseren 11 Plaatjes afvlakking 12 Venster ondoorzichtig verplaatsen 13 Bijna altijd muis focus 14 Muis focus 15 Werkveld springen $set 5 #Ewmh $set 6 #FbTkError $set 7 #Fluxbox $set 8 #Gnome $set 9 #Keys $set 10 #Menu 3 Afsluiten 4 Iconen 7 Plaats 9 Herstart $set 11 #Remember $set 12 #Screen 2 W: %4d x H: %4d 4 W: %04d x H: %04d $set 13 #Slit 4 Spleet-Richting 7 Spleet-Plaatsing 8 Spleet $set 14 #Toolbar 1 Werkveldnaam veranderen 10 Werkbalkplaatsing 11 Werkbalklijst $set 15 #Window 1 Naamloos $set 16 #Windowmenu 1 Sluiten 2 Minimalizeren 4 Onderop leggen 5 Maximalizeren 6 Bovenop leggen 7 Stuur naar 8 Oprollen 9 Plakkerig $set 17 #Workspace 1 Werkveld %d 2 Werkvelden 3 Nieuw werkveld 4 Verwijder laatste $set 18 #fbsetroot 1 error: must specify one of: -solid, -mod, -gradient\n 3 -display display connection\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient gradient texture\n\ -from gradient start color\n\ -to gradient end color\n\n\ -solid solid color\n\n\ -help print this help text and exit\n $set 19 #main 1 error: '-display' heeft een argument nodig 11 error: '-rc' heeft een argument nodig 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tkies ander scherm.\n\ -rc \t\t\tgebruik alternatieve configuratie.\n\ -version\t\t\ttoon versienummer.\n\ -info\t\t\t\ttoon bruikbare informatie.\n\ -log \t\t\tlog uitvoer naar bestand.\n\ -help\t\t\t\ttoon deze hulptekst.\n\n fluxbox-1.3.5/nls/nl_NL/PaxHeaders.25974/Makefile.in0000644000175000017500000000013112106662604020115 xustar000000000000000029 mtime=1360749956.17581195 30 atime=1360750003.859811645 30 ctime=1360750008.859811613 fluxbox-1.3.5/nls/nl_NL/Makefile.in0000644000175000017500000002715612106662604016160 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/nl_NL/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/nl_NL DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = nl_NL SRC_CODESET = ISO-8859-15 DEST_CODESETS = ISO-8859-15 UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/nl_NL/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/nl_NL/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/nl_NL/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020106 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749854.027812604 30 ctime=1360750008.863811613 fluxbox-1.3.5/nls/nl_NL/Makefile.am0000644000175000017500000000301212106662425016131 0ustar00mgmg00000000000000# nls/nl_NL/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = nl_NL SRC_CODESET = ISO-8859-15 DEST_CODESETS = ISO-8859-15 UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/de_DE0000644000175000017500000000013212106662666015742 xustar000000000000000030 mtime=1360750006.131811631 30 atime=1360750008.863811613 30 ctime=1360750008.863811613 fluxbox-1.3.5/nls/de_DE/0000755000175000017500000000000012106662666014046 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/de_DE/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662463020727 xustar000000000000000030 mtime=1360749875.311812468 30 atime=1360749875.327812468 30 ctime=1360750008.863811613 fluxbox-1.3.5/nls/de_DE/generated-UTF-8.m0000644000175000017500000001511312106662463016757 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Unten mittig 2 Unten links 3 Unten rechts 4 Horizontal 5 Links 6 Links unten 7 Links mittig 8 Links oben 9 Relativ 10 Rechts 11 Rechts unten 12 Rechts mittig 13 Rechts oben 14 Oben mittig 15 Oben links 16 Oben rechts 17 Vertikal $set 2 #BaseDisplay 1 Abbruch... dumping core\n 2 Fahre herunter\n 3 %s: Signal %d empfangen\n $set 3 #Common 1 Transparenz (Alpha) 2 Automatisch verstecken 3 Kompiliert am 4 Einkompilierte Optionen 5 Compiler 6 Compilerversion 7 init 8 keys 9 nls 10 menu 11 style 12 Standardeinstellungen/-Dateien\n 13 deaktiviert 14 Fehler 15 Fluxbox Version 16 Von maximierten Fenstern verdecken 17 GIT Revision 18 Sichtbar 19 In diesem Style ist keine Hintergrundoption angegeben.\nBitte lesen Sie die Dokumentation und die FAQ. $set 4 #Configmenu 1 Kantenglättung (AntiAliasing) 2 Automatisches Hervorheben 3 Klick holt in den Vordergrund 4 Klick fokussiert 5 Flüchtige (Dialoge) Fenster dekorieren 6 Desktop mit Mausrad wechseln 7 Fenster nach Desktopwechsel fokussieren 8 Fokustyp 9 Neue Fenster fokussieren 10 Vollständig Maximieren 11 Bilddithering 12 Fensterinhalt beim Verschieben zeigen 14 Fokus folgt Maus 15 Fenster über Desktopgrenzen verschieben 16 Erzwinge Pseudotransparenz 17 Alphatransparenz für Menü 18 Transparenz 19 Alphatransparenz fokussierter Fenster 20 Alphatransparenz nicht fokussierter Fenster 21 Tab-Einstellungen 22 Tabs in der Titelleiste 23 Breite für externe Tabs 24 Klick fokussiert Tab 25 Tabfokus folgt Maus 26 Maximierungseinstellungen 27 Resize-Increment nicht beachten 28 Position fixieren 29 Größe fixieren 30 Fokus folgt Maus (strikt) 31 Gleicher Head $set 5 #Ewmh 1 Fataler Fehler: Kein Speicher mehr frei, kann keinen für EWMH-Clientliste zuweisen $set 6 #FbTkError 1 Warnung! Höhe > 3200, setze Höhe = 3200 2 Warnung! Breite > 3200, setze Breite = 3200 3 Warnung: Kann Fallback-Schriftart nicht laden 4 Fehler bei der Speicherbelegung. 5 Fehler bei der Pixmaperstellung 6 Kann XImage nicht erstellen 7 Fehler beim Lesen 8 Warnung: Kein gültiges Format für den Alphawert gefunden. 9 Warnung: Fehler beim Erstellen des Alphabilds. 10 Warnung: Fehler beim Erstellen des Alphapixmaps. 11 Fehler beim Finden eines Formats for den Bildschirm(%d) 12 Kein Speicher mehr frei 13 Kein Speicher mehr frei während der Zuordnung des Blauen Puffers. 14 Kein Speicher mehr frei während der Zuordnung des Grünen Puffers. 15 Kein Speicher mehr frei während der Zuordnung des Roten Puffers. 16 Kann Bestandteil des styles nicht lesen. 17 nicht unterstützte Visualisierung 18 Benutze Standardeinstellung $set 7 #Fluxbox 1 Dateiname der Konfigurationsdatei (rc) ist ungültig! 2 Kann groupfile nicht laden 3 Kann database nicht laden 4 Versuche es erneut mit 5 Warnung! Kann keinen Screen finden, um das Fenster darzustellen! 6 Kann Verzeichnis %s nicht anlegen 7 Kann keine Screens zur Verwaltung finden.\nLäuft bereits ein anderer Windowmanager? 8 Fehler beim Parsen des regulären Ausdrucks 9 Fataler Fehler! Es darf nur eine Instanz der Fluxbox-Klasse geben 10 Kann nicht zum X-Server verbinden.\nX muss vor Fluxbox gestartet werden. 11 Warnung: X-Server unterstützt Lokalisierung nicht 12 Warnung: Kann Lokalisierung nicht setzen $set 8 #Gnome 1 Fataler Fehler: Kein Speicher mehr frei, kann keinen für GNOME-Clientlist zuweisen $set 9 #Keys 1 keys: Fehler in Zeile 2 keys: Kann Tasten nicht sauber zuweisen! 3 keys: Ungültige Taste/Sondertaste (Modifier) in Zeile $set 10 #Menu 1 Konfiguration 2 Fluxbox Standardmenü 3 Beenden 4 Icons 5 Ebene 6 Auf Monitor 7 Platzierung 8 Konfiguration neu laden 9 Neu starten 10 Warnung: seltsame, unvollständige oder gar falsche [encoding] marke im Menü $set 11 #Remember 1 Dekoration 2 Maße 3 Wechsle zu Arbeitsfläche 4 Ebene 5 Einstellungen merken... 6 Position 7 Beim Schließen speichern 8 Aufgerollt 9 Klebend 10 Unbekannter apps-Eintrag 11 Arbeitsfläche 12 Monitor 13 Transparenz $set 12 #Screen 1 BScreen::BScreen: Fehler bei der Verbindung zum X-Server.\nEin anderer Windowmanager läuft bereits auf dem Display 2 B: %4d x H: %4d 3 BScreen::BScreen: Verwalte Screen %d mit Visual 0x%lx, Farbtiefe %d\n 4 B: %04d x H: %04d $set 13 #Slit 1 Aktive Slit-Programme 2 Nach oben rotieren 3 Nach unten rotieren 4 Slit Ausrichtung 5 Ebene für Slit 6 Slit auf Monitor 7 Slit Platzierung 8 Slit 9 SlitList speichern $set 14 #Toolbar 1 Aktuelle Arbeitsfläche umbenennen 2 Symbolleistenmodus 3 Alle Fenster 4 Symbole 5 Keine 6 Arbeitsfläche: Alle Fenster 7 Arbeitsfläche: Symbole 8 Ebene für Toolbar 9 Toolbar auf Monitor 10 Toolbar Platzierung 11 Toolbar 12 Toolbar Länge (Prozent) 13 Uhr: 24-Stunden-Format 14 Uhr: 12-Stunden-Format 15 Uhrformat bearbeiten 16 Programm-Icons anzeigen 17 Keine Symbole 18 Arbeitsfläche: Keine Symbole $set 15 #Window 1 Unbenannt $set 16 #Windowmenu 1 Schließen 2 Minimieren 3 Ebene 4 Nach hinten 5 Maximieren 6 Nach vorne 7 Verschieben nach... 8 Aufrollen 9 Auf allen Desktops sichtbar 10 Kill 11 Benutze Standardeinstellung $set 17 #Workspace 1 Arbeitsfläche %d 2 Arbeitsflächen 3 Neue Arbeitsfläche 4 Letzte Arbeitsfläche entfernen $set 18 #fbsetroot 1 Fehler: Einer der folgenden Parameter muss angegeben werden: -solid, -mod, -gradient\n 2 Konnte Pixmap-Atome nicht erstellen, ich häng mich auf! 3 -display Verbindung anzeigen\n\ -mod Modulo-Raster\n\ -foreground, -fg Modulo-Vordergrundfarbe\n\ -background, -bg Modulo-Hintergrundfarbe\n\n\ -gradient Textur für Farbverlauf\n\ -from Anfangsfarbe für Farbverlauf\n\ -to Endfarbe für Farbverlauf\n\n\ -solid Einfarbig\n\n\ -help Diese Hilfe anzeigen und beenden\n $set 19 #main 1 Fehler: '-display' braucht ein Argument 2 Schlechte Speicherzuweisung 3 Böse Typenkonvertierung 4 Ausser Reichweite 5 Laufzeitfehler 6 Standardausnahme 7 Unbekannter Fehler 8 Fehler: '-log' benötigt ein Argument 9 Log Datei 10 Schreibe Log in 11 Fehler: '-rc' benötigt ein Argument 12 Fehler: '-screen' benötigt ein Argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ Webseite: http://www.fluxbox.org/\n\n\ -display \t\tBenutze ein anderes $DISPLAY.\n\ -screen \tNur auf angegebenen Screens laufen.\n\ -rc \t\t\tBenutze eine andere Init Datei.\n\ -version\t\t\tZeige Version an.\n\ -info\t\t\t\tZeige nützliche Informationen an.\n\ -log \t\t\tSchreibe Log in Datei.\n\ -help\t\t\t\tZeige diese Hilfe an.\n\n 14 Warnung: Konnte Umgebungsvaribale 'DISPLAY' nicht setzen $set 20 #LayerSet 1 Über Dock 2 Unten 3 Desktop 4 Dock 5 Normal 6 Oben fluxbox-1.3.5/nls/de_DE/PaxHeaders.25974/generated-ISO-8859-15.m0000644000175000017500000000013212106662463021414 xustar000000000000000030 mtime=1360749875.307812468 30 atime=1360749875.327812468 30 ctime=1360750008.863811613 fluxbox-1.3.5/nls/de_DE/generated-ISO-8859-15.m0000644000175000017500000001503212106662463017444 0ustar00mgmg00000000000000$ codeset=ISO-8859-15 $set 1 #Align 1 Unten mittig 2 Unten links 3 Unten rechts 4 Horizontal 5 Links 6 Links unten 7 Links mittig 8 Links oben 9 Relativ 10 Rechts 11 Rechts unten 12 Rechts mittig 13 Rechts oben 14 Oben mittig 15 Oben links 16 Oben rechts 17 Vertikal $set 2 #BaseDisplay 1 Abbruch... dumping core\n 2 Fahre herunter\n 3 %s: Signal %d empfangen\n $set 3 #Common 1 Transparenz (Alpha) 2 Automatisch verstecken 3 Kompiliert am 4 Einkompilierte Optionen 5 Compiler 6 Compilerversion 7 init 8 keys 9 nls 10 menu 11 style 12 Standardeinstellungen/-Dateien\n 13 deaktiviert 14 Fehler 15 Fluxbox Version 16 Von maximierten Fenstern verdecken 17 GIT Revision 18 Sichtbar 19 In diesem Style ist keine Hintergrundoption angegeben.\nBitte lesen Sie die Dokumentation und die FAQ. $set 4 #Configmenu 1 Kantenglättung (AntiAliasing) 2 Automatisches Hervorheben 3 Klick holt in den Vordergrund 4 Klick fokussiert 5 Flüchtige (Dialoge) Fenster dekorieren 6 Desktop mit Mausrad wechseln 7 Fenster nach Desktopwechsel fokussieren 8 Fokustyp 9 Neue Fenster fokussieren 10 Vollständig Maximieren 11 Bilddithering 12 Fensterinhalt beim Verschieben zeigen 14 Fokus folgt Maus 15 Fenster über Desktopgrenzen verschieben 16 Erzwinge Pseudotransparenz 17 Alphatransparenz für Menü 18 Transparenz 19 Alphatransparenz fokussierter Fenster 20 Alphatransparenz nicht fokussierter Fenster 21 Tab-Einstellungen 22 Tabs in der Titelleiste 23 Breite für externe Tabs 24 Klick fokussiert Tab 25 Tabfokus folgt Maus 26 Maximierungseinstellungen 27 Resize-Increment nicht beachten 28 Position fixieren 29 Größe fixieren 30 Fokus folgt Maus (strikt) 31 Gleicher Head $set 5 #Ewmh 1 Fataler Fehler: Kein Speicher mehr frei, kann keinen für EWMH-Clientliste zuweisen $set 6 #FbTkError 1 Warnung! Höhe > 3200, setze Höhe = 3200 2 Warnung! Breite > 3200, setze Breite = 3200 3 Warnung: Kann Fallback-Schriftart nicht laden 4 Fehler bei der Speicherbelegung. 5 Fehler bei der Pixmaperstellung 6 Kann XImage nicht erstellen 7 Fehler beim Lesen 8 Warnung: Kein gültiges Format für den Alphawert gefunden. 9 Warnung: Fehler beim Erstellen des Alphabilds. 10 Warnung: Fehler beim Erstellen des Alphapixmaps. 11 Fehler beim Finden eines Formats for den Bildschirm(%d) 12 Kein Speicher mehr frei 13 Kein Speicher mehr frei während der Zuordnung des Blauen Puffers. 14 Kein Speicher mehr frei während der Zuordnung des Grünen Puffers. 15 Kein Speicher mehr frei während der Zuordnung des Roten Puffers. 16 Kann Bestandteil des styles nicht lesen. 17 nicht unterstützte Visualisierung 18 Benutze Standardeinstellung $set 7 #Fluxbox 1 Dateiname der Konfigurationsdatei (rc) ist ungültig! 2 Kann groupfile nicht laden 3 Kann database nicht laden 4 Versuche es erneut mit 5 Warnung! Kann keinen Screen finden, um das Fenster darzustellen! 6 Kann Verzeichnis %s nicht anlegen 7 Kann keine Screens zur Verwaltung finden.\nLäuft bereits ein anderer Windowmanager? 8 Fehler beim Parsen des regulären Ausdrucks 9 Fataler Fehler! Es darf nur eine Instanz der Fluxbox-Klasse geben 10 Kann nicht zum X-Server verbinden.\nX muss vor Fluxbox gestartet werden. 11 Warnung: X-Server unterstützt Lokalisierung nicht 12 Warnung: Kann Lokalisierung nicht setzen $set 8 #Gnome 1 Fataler Fehler: Kein Speicher mehr frei, kann keinen für GNOME-Clientlist zuweisen $set 9 #Keys 1 keys: Fehler in Zeile 2 keys: Kann Tasten nicht sauber zuweisen! 3 keys: Ungültige Taste/Sondertaste (Modifier) in Zeile $set 10 #Menu 1 Konfiguration 2 Fluxbox Standardmenü 3 Beenden 4 Icons 5 Ebene 6 Auf Monitor 7 Platzierung 8 Konfiguration neu laden 9 Neu starten 10 Warnung: seltsame, unvollständige oder gar falsche [encoding] marke im Menü $set 11 #Remember 1 Dekoration 2 Maße 3 Wechsle zu Arbeitsfläche 4 Ebene 5 Einstellungen merken... 6 Position 7 Beim Schließen speichern 8 Aufgerollt 9 Klebend 10 Unbekannter apps-Eintrag 11 Arbeitsfläche 12 Monitor 13 Transparenz $set 12 #Screen 1 BScreen::BScreen: Fehler bei der Verbindung zum X-Server.\nEin anderer Windowmanager läuft bereits auf dem Display 2 B: %4d x H: %4d 3 BScreen::BScreen: Verwalte Screen %d mit Visual 0x%lx, Farbtiefe %d\n 4 B: %04d x H: %04d $set 13 #Slit 1 Aktive Slit-Programme 2 Nach oben rotieren 3 Nach unten rotieren 4 Slit Ausrichtung 5 Ebene für Slit 6 Slit auf Monitor 7 Slit Platzierung 8 Slit 9 SlitList speichern $set 14 #Toolbar 1 Aktuelle Arbeitsfläche umbenennen 2 Symbolleistenmodus 3 Alle Fenster 4 Symbole 5 Keine 6 Arbeitsfläche: Alle Fenster 7 Arbeitsfläche: Symbole 8 Ebene für Toolbar 9 Toolbar auf Monitor 10 Toolbar Platzierung 11 Toolbar 12 Toolbar Länge (Prozent) 13 Uhr: 24-Stunden-Format 14 Uhr: 12-Stunden-Format 15 Uhrformat bearbeiten 16 Programm-Icons anzeigen 17 Keine Symbole 18 Arbeitsfläche: Keine Symbole $set 15 #Window 1 Unbenannt $set 16 #Windowmenu 1 Schließen 2 Minimieren 3 Ebene 4 Nach hinten 5 Maximieren 6 Nach vorne 7 Verschieben nach... 8 Aufrollen 9 Auf allen Desktops sichtbar 10 Kill 11 Benutze Standardeinstellung $set 17 #Workspace 1 Arbeitsfläche %d 2 Arbeitsflächen 3 Neue Arbeitsfläche 4 Letzte Arbeitsfläche entfernen $set 18 #fbsetroot 1 Fehler: Einer der folgenden Parameter muss angegeben werden: -solid, -mod, -gradient\n 2 Konnte Pixmap-Atome nicht erstellen, ich häng mich auf! 3 -display Verbindung anzeigen\n\ -mod Modulo-Raster\n\ -foreground, -fg Modulo-Vordergrundfarbe\n\ -background, -bg Modulo-Hintergrundfarbe\n\n\ -gradient Textur für Farbverlauf\n\ -from Anfangsfarbe für Farbverlauf\n\ -to Endfarbe für Farbverlauf\n\n\ -solid Einfarbig\n\n\ -help Diese Hilfe anzeigen und beenden\n $set 19 #main 1 Fehler: '-display' braucht ein Argument 2 Schlechte Speicherzuweisung 3 Böse Typenkonvertierung 4 Ausser Reichweite 5 Laufzeitfehler 6 Standardausnahme 7 Unbekannter Fehler 8 Fehler: '-log' benötigt ein Argument 9 Log Datei 10 Schreibe Log in 11 Fehler: '-rc' benötigt ein Argument 12 Fehler: '-screen' benötigt ein Argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ Webseite: http://www.fluxbox.org/\n\n\ -display \t\tBenutze ein anderes $DISPLAY.\n\ -screen \tNur auf angegebenen Screens laufen.\n\ -rc \t\t\tBenutze eine andere Init Datei.\n\ -version\t\t\tZeige Version an.\n\ -info\t\t\t\tZeige nützliche Informationen an.\n\ -log \t\t\tSchreibe Log in Datei.\n\ -help\t\t\t\tZeige diese Hilfe an.\n\n 14 Warnung: Konnte Umgebungsvaribale 'DISPLAY' nicht setzen $set 20 #LayerSet 1 Über Dock 2 Unten 3 Desktop 4 Dock 5 Normal 6 Oben fluxbox-1.3.5/nls/de_DE/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020464 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749875.307812468 30 ctime=1360750008.867811613 fluxbox-1.3.5/nls/de_DE/Translation.m0000644000175000017500000001503212106662425016514 0ustar00mgmg00000000000000$ codeset=ISO-8859-15 $set 1 #Align 1 Unten mittig 2 Unten links 3 Unten rechts 4 Horizontal 5 Links 6 Links unten 7 Links mittig 8 Links oben 9 Relativ 10 Rechts 11 Rechts unten 12 Rechts mittig 13 Rechts oben 14 Oben mittig 15 Oben links 16 Oben rechts 17 Vertikal $set 2 #BaseDisplay 1 Abbruch... dumping core\n 2 Fahre herunter\n 3 %s: Signal %d empfangen\n $set 3 #Common 1 Transparenz (Alpha) 2 Automatisch verstecken 3 Kompiliert am 4 Einkompilierte Optionen 5 Compiler 6 Compilerversion 7 init 8 keys 9 nls 10 menu 11 style 12 Standardeinstellungen/-Dateien\n 13 deaktiviert 14 Fehler 15 Fluxbox Version 16 Von maximierten Fenstern verdecken 17 GIT Revision 18 Sichtbar 19 In diesem Style ist keine Hintergrundoption angegeben.\nBitte lesen Sie die Dokumentation und die FAQ. $set 4 #Configmenu 1 Kantenglättung (AntiAliasing) 2 Automatisches Hervorheben 3 Klick holt in den Vordergrund 4 Klick fokussiert 5 Flüchtige (Dialoge) Fenster dekorieren 6 Desktop mit Mausrad wechseln 7 Fenster nach Desktopwechsel fokussieren 8 Fokustyp 9 Neue Fenster fokussieren 10 Vollständig Maximieren 11 Bilddithering 12 Fensterinhalt beim Verschieben zeigen 14 Fokus folgt Maus 15 Fenster über Desktopgrenzen verschieben 16 Erzwinge Pseudotransparenz 17 Alphatransparenz für Menü 18 Transparenz 19 Alphatransparenz fokussierter Fenster 20 Alphatransparenz nicht fokussierter Fenster 21 Tab-Einstellungen 22 Tabs in der Titelleiste 23 Breite für externe Tabs 24 Klick fokussiert Tab 25 Tabfokus folgt Maus 26 Maximierungseinstellungen 27 Resize-Increment nicht beachten 28 Position fixieren 29 Größe fixieren 30 Fokus folgt Maus (strikt) 31 Gleicher Head $set 5 #Ewmh 1 Fataler Fehler: Kein Speicher mehr frei, kann keinen für EWMH-Clientliste zuweisen $set 6 #FbTkError 1 Warnung! Höhe > 3200, setze Höhe = 3200 2 Warnung! Breite > 3200, setze Breite = 3200 3 Warnung: Kann Fallback-Schriftart nicht laden 4 Fehler bei der Speicherbelegung. 5 Fehler bei der Pixmaperstellung 6 Kann XImage nicht erstellen 7 Fehler beim Lesen 8 Warnung: Kein gültiges Format für den Alphawert gefunden. 9 Warnung: Fehler beim Erstellen des Alphabilds. 10 Warnung: Fehler beim Erstellen des Alphapixmaps. 11 Fehler beim Finden eines Formats for den Bildschirm(%d) 12 Kein Speicher mehr frei 13 Kein Speicher mehr frei während der Zuordnung des Blauen Puffers. 14 Kein Speicher mehr frei während der Zuordnung des Grünen Puffers. 15 Kein Speicher mehr frei während der Zuordnung des Roten Puffers. 16 Kann Bestandteil des styles nicht lesen. 17 nicht unterstützte Visualisierung 18 Benutze Standardeinstellung $set 7 #Fluxbox 1 Dateiname der Konfigurationsdatei (rc) ist ungültig! 2 Kann groupfile nicht laden 3 Kann database nicht laden 4 Versuche es erneut mit 5 Warnung! Kann keinen Screen finden, um das Fenster darzustellen! 6 Kann Verzeichnis %s nicht anlegen 7 Kann keine Screens zur Verwaltung finden.\nLäuft bereits ein anderer Windowmanager? 8 Fehler beim Parsen des regulären Ausdrucks 9 Fataler Fehler! Es darf nur eine Instanz der Fluxbox-Klasse geben 10 Kann nicht zum X-Server verbinden.\nX muss vor Fluxbox gestartet werden. 11 Warnung: X-Server unterstützt Lokalisierung nicht 12 Warnung: Kann Lokalisierung nicht setzen $set 8 #Gnome 1 Fataler Fehler: Kein Speicher mehr frei, kann keinen für GNOME-Clientlist zuweisen $set 9 #Keys 1 keys: Fehler in Zeile 2 keys: Kann Tasten nicht sauber zuweisen! 3 keys: Ungültige Taste/Sondertaste (Modifier) in Zeile $set 10 #Menu 1 Konfiguration 2 Fluxbox Standardmenü 3 Beenden 4 Icons 5 Ebene 6 Auf Monitor 7 Platzierung 8 Konfiguration neu laden 9 Neu starten 10 Warnung: seltsame, unvollständige oder gar falsche [encoding] marke im Menü $set 11 #Remember 1 Dekoration 2 Maße 3 Wechsle zu Arbeitsfläche 4 Ebene 5 Einstellungen merken... 6 Position 7 Beim Schließen speichern 8 Aufgerollt 9 Klebend 10 Unbekannter apps-Eintrag 11 Arbeitsfläche 12 Monitor 13 Transparenz $set 12 #Screen 1 BScreen::BScreen: Fehler bei der Verbindung zum X-Server.\nEin anderer Windowmanager läuft bereits auf dem Display 2 B: %4d x H: %4d 3 BScreen::BScreen: Verwalte Screen %d mit Visual 0x%lx, Farbtiefe %d\n 4 B: %04d x H: %04d $set 13 #Slit 1 Aktive Slit-Programme 2 Nach oben rotieren 3 Nach unten rotieren 4 Slit Ausrichtung 5 Ebene für Slit 6 Slit auf Monitor 7 Slit Platzierung 8 Slit 9 SlitList speichern $set 14 #Toolbar 1 Aktuelle Arbeitsfläche umbenennen 2 Symbolleistenmodus 3 Alle Fenster 4 Symbole 5 Keine 6 Arbeitsfläche: Alle Fenster 7 Arbeitsfläche: Symbole 8 Ebene für Toolbar 9 Toolbar auf Monitor 10 Toolbar Platzierung 11 Toolbar 12 Toolbar Länge (Prozent) 13 Uhr: 24-Stunden-Format 14 Uhr: 12-Stunden-Format 15 Uhrformat bearbeiten 16 Programm-Icons anzeigen 17 Keine Symbole 18 Arbeitsfläche: Keine Symbole $set 15 #Window 1 Unbenannt $set 16 #Windowmenu 1 Schließen 2 Minimieren 3 Ebene 4 Nach hinten 5 Maximieren 6 Nach vorne 7 Verschieben nach... 8 Aufrollen 9 Auf allen Desktops sichtbar 10 Kill 11 Benutze Standardeinstellung $set 17 #Workspace 1 Arbeitsfläche %d 2 Arbeitsflächen 3 Neue Arbeitsfläche 4 Letzte Arbeitsfläche entfernen $set 18 #fbsetroot 1 Fehler: Einer der folgenden Parameter muss angegeben werden: -solid, -mod, -gradient\n 2 Konnte Pixmap-Atome nicht erstellen, ich häng mich auf! 3 -display Verbindung anzeigen\n\ -mod Modulo-Raster\n\ -foreground, -fg Modulo-Vordergrundfarbe\n\ -background, -bg Modulo-Hintergrundfarbe\n\n\ -gradient Textur für Farbverlauf\n\ -from Anfangsfarbe für Farbverlauf\n\ -to Endfarbe für Farbverlauf\n\n\ -solid Einfarbig\n\n\ -help Diese Hilfe anzeigen und beenden\n $set 19 #main 1 Fehler: '-display' braucht ein Argument 2 Schlechte Speicherzuweisung 3 Böse Typenkonvertierung 4 Ausser Reichweite 5 Laufzeitfehler 6 Standardausnahme 7 Unbekannter Fehler 8 Fehler: '-log' benötigt ein Argument 9 Log Datei 10 Schreibe Log in 11 Fehler: '-rc' benötigt ein Argument 12 Fehler: '-screen' benötigt ein Argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ Webseite: http://www.fluxbox.org/\n\n\ -display \t\tBenutze ein anderes $DISPLAY.\n\ -screen \tNur auf angegebenen Screens laufen.\n\ -rc \t\t\tBenutze eine andere Init Datei.\n\ -version\t\t\tZeige Version an.\n\ -info\t\t\t\tZeige nützliche Informationen an.\n\ -log \t\t\tSchreibe Log in Datei.\n\ -help\t\t\t\tZeige diese Hilfe an.\n\n 14 Warnung: Konnte Umgebungsvaribale 'DISPLAY' nicht setzen $set 20 #LayerSet 1 Über Dock 2 Unten 3 Desktop 4 Dock 5 Normal 6 Oben fluxbox-1.3.5/nls/de_DE/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603020053 xustar000000000000000030 mtime=1360749955.803811953 30 atime=1360750003.559811647 30 ctime=1360750008.867811613 fluxbox-1.3.5/nls/de_DE/Makefile.in0000644000175000017500000002715612106662603016115 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/de_DE/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/de_DE DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = de_DE SRC_CODESET = ISO-8859-15 DEST_CODESETS = ISO-8859-15 UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/de_DE/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/de_DE/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/de_DE/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020044 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749853.655812607 30 ctime=1360750008.867811613 fluxbox-1.3.5/nls/de_DE/Makefile.am0000644000175000017500000000301212106662425016067 0ustar00mgmg00000000000000# nls/de_DE/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = de_DE SRC_CODESET = ISO-8859-15 DEST_CODESETS = ISO-8859-15 UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/lv_LV0000644000175000017500000000013212106662666016024 xustar000000000000000030 mtime=1360750006.095811631 30 atime=1360750008.867811613 30 ctime=1360750008.867811613 fluxbox-1.3.5/nls/lv_LV/0000755000175000017500000000000012106662666014130 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/lv_LV/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662463021011 xustar000000000000000030 mtime=1360749875.271812468 30 atime=1360749875.287812468 30 ctime=1360750008.871811613 fluxbox-1.3.5/nls/lv_LV/generated-UTF-8.m0000644000175000017500000000437612106662463017052 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 ApakÅ¡Ä CentrÄ 2 ApakÅ¡Ä pa Kreisi 3 ApakÅ¡Ä pa Labi 4 HorizontÄls 6 Pa Kreisi ApakÅ¡Ä 7 Pa Kreisi CentrÄ 8 Pa Kreisi AugÅ¡Ä 11 Pa Labi ApakÅ¡Ä 12 Pa Labi CentrÄ 13 Pa Labi AugÅ¡Ä 14 AugÅ¡Ä CentrÄ 15 AugÅ¡Ä pa Kreisi 16 AugÅ¡Ä pa Labi 17 VertikÄls $set 2 #BaseDisplay $set 3 #Common 2 Auto paslÄ“pt $set 4 #Configmenu 2 Auto PacelÅ¡ana 4 Klikšķis, lai FokusÄ“tu 7 FokusÄ“t Logu pie Darba vietas maiņas 8 FokusēšanÄs Modelis 9 FokusÄ“t Jaunos Logus 10 Pilna MaksimizÄcija 11 AttÄ“la Tonēšana 12 Necaurredzama Loga PÄrvietoÅ¡ana 13 Pusnevīžīga Fokusēšana 14 Nevīžīga Fokusēšana 15 PÄrvilkÅ¡ana uz Darba vietu $set 5 #Ewmh $set 6 #FbTkError $set 7 #Fluxbox $set 8 #Gnome $set 9 #Keys $set 10 #Menu 3 Iziet 4 Ikonas 7 NovietoÅ¡ana 9 RestartÄ“t $set 11 #Remember $set 12 #Screen 2 P: %4d x A: %4d 4 P: %04d x A: %04d $set 13 #Slit 4 Å Ä·Ä“luma Virziens 7 Å Ä·Ä“luma Novietojums 8 Å Ä·Ä“lums $set 14 #Toolbar 1 Rediģēt paÅ¡reizÄ“jÄs darba vietas nosaukumu 11 RÄ«kjosla $set 15 #Window 1 Nenosaukts $set 16 #Windowmenu 1 AizvÄ“rt 2 IkonificÄ“t 4 PazeminÄt 5 MaksimizÄ“t 6 Pacelt 7 SÅ«tÄ«t Uz ... 8 Ä’not 9 StiÄ·Ä“t $set 17 #Workspace 1 Darba vieta %d 2 Darba vietas 3 Jauna Darba vieta 4 Noņemt PÄ“dÄ“jo $set 18 #fbsetroot 1 kļūda: jÄnosaka viens no: -solid, -mod, -gradient\n 3 -display displeja savienojums\n\ -mod moduļa raksts\n\ -foreground, -fg moduļa priekÅ¡plÄna krÄsa\n\ -background, -bg moduļa fona krÄsa\n\n\ -gradient gradienta tekstÅ«ra\n\ -from pÄrejas sÄkuma krÄsa\n\ -to pÄrejas beigu krÄsa\n\n\ -solid viendabÄ«ga krÄsa\n\n\ -help parÄdÄ«t Å¡o palÄ«dzÄ«bu un iziet\n $set 19 #main 1 kļūda: '-display' nepiecieÅ¡ams arguments 11 kļūda: '-rc' nepiecieÅ¡ams arguments 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tlietot displeja savienojumu.\n\ -rc \t\t\tlietot citu resersu failu.\n\ -version\t\t\tparÄdÄ«t versiju un iziet.\n\ -info\t\t\t\tdisplay some useful information.\n\ -log \t\t\tlog output to file.\n\ -help\t\t\t\tparÄdÄ«t Å¡o palÄ«dzÄ«bas tekstu un iziet.\n\n fluxbox-1.3.5/nls/lv_LV/PaxHeaders.25974/generated-ISO-8859-13.m0000644000175000017500000000013212106662463021474 xustar000000000000000030 mtime=1360749875.267812468 30 atime=1360749875.283812468 30 ctime=1360750008.871811613 fluxbox-1.3.5/nls/lv_LV/generated-ISO-8859-13.m0000644000175000017500000000420612106662463017525 0ustar00mgmg00000000000000$ codeset=ISO-8859-13 $set 1 #Align 1 Apakðâ Centrâ 2 Apakðâ pa Kreisi 3 Apakðâ pa Labi 4 Horizontâls 6 Pa Kreisi Apakðâ 7 Pa Kreisi Centrâ 8 Pa Kreisi Augðâ 11 Pa Labi Apakðâ 12 Pa Labi Centrâ 13 Pa Labi Augðâ 14 Augðâ Centrâ 15 Augðâ pa Kreisi 16 Augðâ pa Labi 17 Vertikâls $set 2 #BaseDisplay $set 3 #Common 2 Auto paslçpt $set 4 #Configmenu 2 Auto Pacelðana 4 Klikðíis, lai Fokusçtu 7 Fokusçt Logu pie Darba vietas maiòas 8 Fokusçðanâs Modelis 9 Fokusçt Jaunos Logus 10 Pilna Maksimizâcija 11 Attçla Tonçðana 12 Necaurredzama Loga Pârvietoðana 13 Pusnevîþîga Fokusçðana 14 Nevîþîga Fokusçðana 15 Pârvilkðana uz Darba vietu $set 5 #Ewmh $set 6 #FbTkError $set 7 #Fluxbox $set 8 #Gnome $set 9 #Keys $set 10 #Menu 3 Iziet 4 Ikonas 7 Novietoðana 9 Restartçt $set 11 #Remember $set 12 #Screen 2 P: %4d x A: %4d 4 P: %04d x A: %04d $set 13 #Slit 4 Ðíçluma Virziens 7 Ðíçluma Novietojums 8 Ðíçlums $set 14 #Toolbar 1 Rediìçt paðreizçjâs darba vietas nosaukumu 11 Rîkjosla $set 15 #Window 1 Nenosaukts $set 16 #Windowmenu 1 Aizvçrt 2 Ikonificçt 4 Pazeminât 5 Maksimizçt 6 Pacelt 7 Sûtît Uz ... 8 Çnot 9 Stiíçt $set 17 #Workspace 1 Darba vieta %d 2 Darba vietas 3 Jauna Darba vieta 4 Noòemt Pçdçjo $set 18 #fbsetroot 1 kïûda: jânosaka viens no: -solid, -mod, -gradient\n 3 -display displeja savienojums\n\ -mod moduïa raksts\n\ -foreground, -fg moduïa priekðplâna krâsa\n\ -background, -bg moduïa fona krâsa\n\n\ -gradient gradienta tekstûra\n\ -from pârejas sâkuma krâsa\n\ -to pârejas beigu krâsa\n\n\ -solid viendabîga krâsa\n\n\ -help parâdît ðo palîdzîbu un iziet\n $set 19 #main 1 kïûda: '-display' nepiecieðams arguments 11 kïûda: '-rc' nepiecieðams arguments 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tlietot displeja savienojumu.\n\ -rc \t\t\tlietot citu resersu failu.\n\ -version\t\t\tparâdît versiju un iziet.\n\ -info\t\t\t\tdisplay some useful information.\n\ -log \t\t\tlog output to file.\n\ -help\t\t\t\tparâdît ðo palîdzîbas tekstu un iziet.\n\n fluxbox-1.3.5/nls/lv_LV/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020546 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749875.267812468 30 ctime=1360750008.871811613 fluxbox-1.3.5/nls/lv_LV/Translation.m0000644000175000017500000000420612106662425016577 0ustar00mgmg00000000000000$ codeset=ISO-8859-13 $set 1 #Align 1 Apakðâ Centrâ 2 Apakðâ pa Kreisi 3 Apakðâ pa Labi 4 Horizontâls 6 Pa Kreisi Apakðâ 7 Pa Kreisi Centrâ 8 Pa Kreisi Augðâ 11 Pa Labi Apakðâ 12 Pa Labi Centrâ 13 Pa Labi Augðâ 14 Augðâ Centrâ 15 Augðâ pa Kreisi 16 Augðâ pa Labi 17 Vertikâls $set 2 #BaseDisplay $set 3 #Common 2 Auto paslçpt $set 4 #Configmenu 2 Auto Pacelðana 4 Klikðíis, lai Fokusçtu 7 Fokusçt Logu pie Darba vietas maiòas 8 Fokusçðanâs Modelis 9 Fokusçt Jaunos Logus 10 Pilna Maksimizâcija 11 Attçla Tonçðana 12 Necaurredzama Loga Pârvietoðana 13 Pusnevîþîga Fokusçðana 14 Nevîþîga Fokusçðana 15 Pârvilkðana uz Darba vietu $set 5 #Ewmh $set 6 #FbTkError $set 7 #Fluxbox $set 8 #Gnome $set 9 #Keys $set 10 #Menu 3 Iziet 4 Ikonas 7 Novietoðana 9 Restartçt $set 11 #Remember $set 12 #Screen 2 P: %4d x A: %4d 4 P: %04d x A: %04d $set 13 #Slit 4 Ðíçluma Virziens 7 Ðíçluma Novietojums 8 Ðíçlums $set 14 #Toolbar 1 Rediìçt paðreizçjâs darba vietas nosaukumu 11 Rîkjosla $set 15 #Window 1 Nenosaukts $set 16 #Windowmenu 1 Aizvçrt 2 Ikonificçt 4 Pazeminât 5 Maksimizçt 6 Pacelt 7 Sûtît Uz ... 8 Çnot 9 Stiíçt $set 17 #Workspace 1 Darba vieta %d 2 Darba vietas 3 Jauna Darba vieta 4 Noòemt Pçdçjo $set 18 #fbsetroot 1 kïûda: jânosaka viens no: -solid, -mod, -gradient\n 3 -display displeja savienojums\n\ -mod moduïa raksts\n\ -foreground, -fg moduïa priekðplâna krâsa\n\ -background, -bg moduïa fona krâsa\n\n\ -gradient gradienta tekstûra\n\ -from pârejas sâkuma krâsa\n\ -to pârejas beigu krâsa\n\n\ -solid viendabîga krâsa\n\n\ -help parâdît ðo palîdzîbu un iziet\n $set 19 #main 1 kïûda: '-display' nepiecieðams arguments 11 kïûda: '-rc' nepiecieðams arguments 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tlietot displeja savienojumu.\n\ -rc \t\t\tlietot citu resersu failu.\n\ -version\t\t\tparâdît versiju un iziet.\n\ -info\t\t\t\tdisplay some useful information.\n\ -log \t\t\tlog output to file.\n\ -help\t\t\t\tparâdît ðo palîdzîbas tekstu un iziet.\n\n fluxbox-1.3.5/nls/lv_LV/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662604020136 xustar000000000000000030 mtime=1360749956.111811951 30 atime=1360750003.807811646 30 ctime=1360750008.871811613 fluxbox-1.3.5/nls/lv_LV/Makefile.in0000644000175000017500000002715612106662604016200 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/lv_LV/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/lv_LV DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = lv_LV SRC_CODESET = ISO-8859-13 DEST_CODESETS = ISO-8859-13 UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/lv_LV/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/lv_LV/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/lv_LV/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020126 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749853.959812605 30 ctime=1360750008.871811613 fluxbox-1.3.5/nls/lv_LV/Makefile.am0000644000175000017500000000301212106662425016151 0ustar00mgmg00000000000000# nls/lv_LV/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = lv_LV SRC_CODESET = ISO-8859-13 DEST_CODESETS = ISO-8859-13 UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/ko_KR0000644000175000017500000000013212106662666016007 xustar000000000000000030 mtime=1360750006.063811631 30 atime=1360750008.875811613 30 ctime=1360750008.875811613 fluxbox-1.3.5/nls/ko_KR/0000755000175000017500000000000012106662666014113 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/ko_KR/PaxHeaders.25974/generated-EUC-KR.m0000644000175000017500000000013212106662463021117 xustar000000000000000030 mtime=1360749875.231812469 30 atime=1360749875.247812468 30 ctime=1360750008.875811613 fluxbox-1.3.5/nls/ko_KR/generated-EUC-KR.m0000644000175000017500000000425412106662463017153 0ustar00mgmg00000000000000$ codeset=EUC-KR $set 1 #Align 1 ÇÏ´Ü Áß¾Ó 2 ÇÏ´Ü ¿ÞÂÊ 3 ÇÏ´Ü ¿À¸¥ÂÊ 4 [¼öÆò] 5 ¿ÞÂÊ Á¤·Ä 6 ÁÂÃø ¾Æ·¡ 7 ÁÂÃø Áß°£ 8 ÁÂÃø À§ 9 ¾çÂÊ Á¤·Ä 10 ¿À¸¥ÂÊ Á¤·Ä 11 ¿ìÃø ¾Æ·¡ 12 ¿ìÃø Áß°£ 13 ¿ìÃø À§ 14 »ó´Ü Áß¾Ó 15 »ó´Ü ¿ÞÂÊ 16 »ó´Ü ¿À¸¥ÂÊ 17 [¼öÁ÷] $set 2 #BaseDisplay $set 3 #Common 1 Åõ¸íµµ 2 ÀÚµ¿ ¼û±è 16 â ÃÖ´ëÈ­ ½Ã µ¤ÀÓ 18 Åø¹Ù Ç¥½Ã 19 ÀÌ ½ºÅ¸ÀÏ¿¡´Â ¹ÙÅÁÈ­¸é Ç׸ñÀÌ ¸í½ÃµÇ¾î ÀÖÁö ¾Ê´Ù.\n¸Þ´º¾óÀ» Âü°íÇϰųª FAQ¸¦ ÀÐÀ¸½Ã¿À. $set 4 #Configmenu 1 ¾ÈƼ ¾Ù¸®¾î½º 2 ÃÊÁ¡ °¡Áø â ÀÚµ¿ ¿Ã¸² 3 Ŭ¸¯ ½Ã ⠿ø² 4 Ŭ¸¯ ½Ã ÃÊÁ¡ °¡Áü 5 ÀϽÃÀûÀΠâµµ Å׵θ® ²Ù¹Ò 6 ¸¶¿ì½º ÈÙ·Î ÀÛ¾÷°ø°£ À̵¿ 7 ÀÛ¾÷°ø°£ Àüȯ ½Ã ÃÊÁ¡ °¡Áø â ±â¾ï 8 Ȱ¼ºÈ­ ¹æ¹ý 9 »õ·Î ¿©´Â â ÃÊÁ¡ °¡Áü 10 È­¸é Àüü¸¦ µ¤´Â â ÃÖ´ëÈ­ 11 À̹ÌÁö µð´õ¸µ 12 â À̵¿ ½Ã ³»¿ë Ç¥½Ã 14 Ä¿¼­ ¾Æ·¡ â ÃÊÁ¡ °¡Áü 15 ÀÛ¾÷°ø°£°£ ⠵巡±× À̵¿ 16 °¡Â¥ Åõ¸í °­Á¦ »ç¿ë 17 ¸Þ´º Åõ¸íµµ 18 Åõ¸íµµ ¼³Á¤ 19 ÃÊÁ¡ °¡Áø â Åõ¸íµµ 20 ÃÊÁ¡ ¾ø´Â â Åõ¸íµµ 21 ÅÇ ¿É¼Ç 22 ŸÀÌÆ²¹Ù¿¡ ÅÇ ³»Àå 23 ¿ÜºÎÅÇ ³Êºñ 24 Ä¿¼­ ¾Æ·¡ ÅÇ ÃÊÁ¡ °¡Áü 25 Ŭ¸¯ ½Ã ÅÇ ÃÊÁ¡ °¡Áü $set 5 #Ewmh $set 6 #FbTkError $set 7 #Fluxbox $set 8 #Gnome $set 9 #Keys $set 10 #Menu 1 ¼³Á¤ 2 Ç÷°½º¹Ú½º default ¸Þ´º 3 Á¾·á 4 ¼û±ä â 5 ·¹À̾î ... 6 À§Ä¡ ¸ð´ÏÅÍ ... 7 À§Ä¡ 8 ¼³Á¤À» ´Ù½Ã ÀоîµéÀÓ 9 Àç½ÃÀÛ $set 11 #Remember 1 Å׵θ® »óÅ 2 Å©±â 3 ±â¾ïÇÑ ÀÛ¾÷°ø°£À¸·Î Àüȯ 4 ·¹À̾î 5 ±â¾ï ... 6 À§Ä¡ 7 Á¾·á ½Ã °ªµé ±â¾ï 8 ¼ÎÀÌµå ¿©ºÎ 9 °íÁ¤ ¿©ºÎ 11 ÀÛ¾÷°ø°£ 12 À§Ä¡ ¸ð´ÏÅÍ 13 Åõ¸íµµ $set 12 #Screen $set 13 #Slit 1 Ŭ¶óÀÌ¾ðÆ® 2 ÇÑ Ä­¾¿ ³»¸² 3 ÇÑ Ä­¾¿ ¿Ã¸² 4 Slit ¹æÇâ 5 Slit ·¹À̾î 6 Slit À§Ä¡ ¸ð´ÏÅÍ 7 Slit À§Ä¡ 9 SlitList ÀúÀå $set 14 #Toolbar 1 ÀÛ¾÷°ø°£ À̸§ º¯°æ 2 ¾ÆÀÌÄܹ٠¸ðµå 3 ¸ðµç ÀÛ¾÷°ø°£ â Ç¥½Ã 4 ¼û±ä â Ç¥½Ã 5 ¾Æ¹« °Íµµ Ç¥½Ã ¾È ÇÔ 6 ÇöÀç ÀÛ¾÷°ø°£ â Ç¥½Ã 7 ÇöÀç ÀÛ¾÷°ø°£ ¼û±ä â Ç¥½Ã 8 Åø¹Ù ·¹À̾î 9 Åø¹Ù À§Ä¡ ¸ð´ÏÅÍ 10 Åø¹Ù À§Ä¡ 11 Åø¹Ù 12 Åø¹Ù ³Êºñ(%) 13 ½Ã°è: 24 ½Ã°£Á¦ 14 ½Ã°è: 12 ½Ã°£Á¦ 15 ½Ã°£ Ç¥½Ã Çü½Ä ¼öÁ¤ 16 ¾ÆÀÌÄÜ À̹ÌÁö Ç¥½Ã 17 ¼û±ä â »©°í Ç¥½Ã 18 ÇöÀç ÀÛ¾÷°ø°£ ¼û±ä â »©°í Ç¥½Ã $set 15 #Window $set 16 #Windowmenu 1 ´ÝÀ½ 2 ¼û±è 3 ·¹À̾î 4 ³·Ãã 5 ÃÖ´ëÈ­ 6 ¿Ã¸² 7 º¸³¿ ... 8 ¼ÎÀ̵å 9 °íÁ¤ 10 °­Á¦ Á¾·á 11 ±âº» Åõ¸íµµ $set 17 #Workspace 1 ÀÛ¾÷°ø°£ %d 2 ÀÛ¾÷°ø°£ 3 »õ ÀÛ¾÷°ø°£ Ãß°¡ 4 ³¡¿¡°Í Á¦°Å $set 18 #bsetroot $set 19 #main $set 20 1 Dock À§ 2 ÇϺΠ3 µ¥½ºÅ©Åé 5 ±âº» 6 »óÀ§ fluxbox-1.3.5/nls/ko_KR/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662463020774 xustar000000000000000030 mtime=1360749875.227812469 30 atime=1360749875.243812468 30 ctime=1360750008.875811613 fluxbox-1.3.5/nls/ko_KR/generated-UTF-8.m0000644000175000017500000000541612106662463017031 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 하단 중앙 2 하단 왼쪽 3 하단 오른쪽 4 [수í‰] 5 왼쪽 ì •ë ¬ 6 좌측 아래 7 좌측 중간 8 좌측 위 9 양쪽 ì •ë ¬ 10 오른쪽 ì •ë ¬ 11 우측 아래 12 우측 중간 13 우측 위 14 ìƒë‹¨ 중앙 15 ìƒë‹¨ 왼쪽 16 ìƒë‹¨ 오른쪽 17 [수ì§] $set 2 #BaseDisplay $set 3 #Common 1 íˆ¬ëª…ë„ 2 ìžë™ 숨김 16 ì°½ 최대화 시 ë®ìž„ 18 툴바 표시 19 ì´ ìŠ¤íƒ€ì¼ì—는 바탕화면 í•­ëª©ì´ ëª…ì‹œë˜ì–´ 있지 않다.\në©”ë‰´ì–¼ì„ ì°¸ê³ í•˜ê±°ë‚˜ FAQ를 ì½ìœ¼ì‹œì˜¤. $set 4 #Configmenu 1 안티 앨리어스 2 ì´ˆì  ê°€ì§„ ì°½ ìžë™ 올림 3 í´ë¦­ 시 ì°½ 올림 4 í´ë¦­ 시 ì´ˆì  ê°€ì§ 5 ì¼ì‹œì ì¸ ì°½ë„ í…Œë‘리 꾸밈 6 마우스 휠로 작업공간 ì´ë™ 7 작업공간 전환 시 ì´ˆì  ê°€ì§„ ì°½ 기억 8 활성화 방법 9 새로 여는 ì°½ ì´ˆì  ê°€ì§ 10 화면 전체를 ë®ëŠ” ì°½ 최대화 11 ì´ë¯¸ì§€ ë””ë”ë§ 12 ì°½ ì´ë™ 시 ë‚´ìš© 표시 14 커서 아래 ì°½ ì´ˆì  ê°€ì§ 15 작업공간간 ì°½ 드래그 ì´ë™ 16 가짜 투명 ê°•ì œ 사용 17 메뉴 íˆ¬ëª…ë„ 18 íˆ¬ëª…ë„ ì„¤ì • 19 ì´ˆì  ê°€ì§„ ì°½ íˆ¬ëª…ë„ 20 ì´ˆì  ì—†ëŠ” ì°½ íˆ¬ëª…ë„ 21 탭 옵션 22 타ì´í‹€ë°”ì— íƒ­ 내장 23 외부탭 너비 24 커서 아래 탭 ì´ˆì  ê°€ì§ 25 í´ë¦­ 시 탭 ì´ˆì  ê°€ì§ $set 5 #Ewmh $set 6 #FbTkError $set 7 #Fluxbox $set 8 #Gnome $set 9 #Keys $set 10 #Menu 1 설정 2 플럭스박스 default 메뉴 3 종료 4 숨긴 ì°½ 5 ë ˆì´ì–´ ... 6 위치 모니터 ... 7 위치 8 ì„¤ì •ì„ ë‹¤ì‹œ ì½ì–´ë“¤ìž„ 9 재시작 $set 11 #Remember 1 í…Œë‘리 ìƒíƒœ 2 í¬ê¸° 3 기억한 작업공간으로 전환 4 ë ˆì´ì–´ 5 기억 ... 6 위치 7 종료 시 값들 기억 8 ì…°ì´ë“œ 여부 9 ê³ ì • 여부 11 작업공간 12 위치 모니터 13 íˆ¬ëª…ë„ $set 12 #Screen $set 13 #Slit 1 í´ë¼ì´ì–¸íЏ 2 한 칸씩 내림 3 한 칸씩 올림 4 Slit ë°©í–¥ 5 Slit ë ˆì´ì–´ 6 Slit 위치 모니터 7 Slit 위치 9 SlitList 저장 $set 14 #Toolbar 1 작업공간 ì´ë¦„ 변경 2 ì•„ì´ì½˜ë°” 모드 3 모든 작업공간 ì°½ 표시 4 숨긴 ì°½ 표시 5 아무 ê²ƒë„ í‘œì‹œ 안 함 6 현재 작업공간 ì°½ 표시 7 현재 작업공간 숨긴 ì°½ 표시 8 툴바 ë ˆì´ì–´ 9 툴바 위치 모니터 10 툴바 위치 11 툴바 12 툴바 너비(%) 13 시계: 24 시간제 14 시계: 12 시간제 15 시간 표시 í˜•ì‹ ìˆ˜ì • 16 ì•„ì´ì½˜ ì´ë¯¸ì§€ 표시 17 숨긴 ì°½ 빼고 표시 18 현재 작업공간 숨긴 ì°½ 빼고 표시 $set 15 #Window $set 16 #Windowmenu 1 ë‹«ìŒ 2 숨김 3 ë ˆì´ì–´ 4 낮춤 5 최대화 6 올림 7 보냄 ... 8 ì…°ì´ë“œ 9 ê³ ì • 10 ê°•ì œ 종료 11 기본 íˆ¬ëª…ë„ $set 17 #Workspace 1 작업공간 %d 2 작업공간 3 새 작업공간 추가 4 ëì—것 제거 $set 18 #bsetroot $set 19 #main $set 20 1 Dock 위 2 하부 3 ë°ìФí¬í†± 5 기본 6 ìƒìœ„ fluxbox-1.3.5/nls/ko_KR/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020531 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749875.227812469 30 ctime=1360750008.875811613 fluxbox-1.3.5/nls/ko_KR/Translation.m0000644000175000017500000000541612106662425016566 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 하단 중앙 2 하단 왼쪽 3 하단 오른쪽 4 [수í‰] 5 왼쪽 ì •ë ¬ 6 좌측 아래 7 좌측 중간 8 좌측 위 9 양쪽 ì •ë ¬ 10 오른쪽 ì •ë ¬ 11 우측 아래 12 우측 중간 13 우측 위 14 ìƒë‹¨ 중앙 15 ìƒë‹¨ 왼쪽 16 ìƒë‹¨ 오른쪽 17 [수ì§] $set 2 #BaseDisplay $set 3 #Common 1 íˆ¬ëª…ë„ 2 ìžë™ 숨김 16 ì°½ 최대화 시 ë®ìž„ 18 툴바 표시 19 ì´ ìŠ¤íƒ€ì¼ì—는 바탕화면 í•­ëª©ì´ ëª…ì‹œë˜ì–´ 있지 않다.\në©”ë‰´ì–¼ì„ ì°¸ê³ í•˜ê±°ë‚˜ FAQ를 ì½ìœ¼ì‹œì˜¤. $set 4 #Configmenu 1 안티 앨리어스 2 ì´ˆì  ê°€ì§„ ì°½ ìžë™ 올림 3 í´ë¦­ 시 ì°½ 올림 4 í´ë¦­ 시 ì´ˆì  ê°€ì§ 5 ì¼ì‹œì ì¸ ì°½ë„ í…Œë‘리 꾸밈 6 마우스 휠로 작업공간 ì´ë™ 7 작업공간 전환 시 ì´ˆì  ê°€ì§„ ì°½ 기억 8 활성화 방법 9 새로 여는 ì°½ ì´ˆì  ê°€ì§ 10 화면 전체를 ë®ëŠ” ì°½ 최대화 11 ì´ë¯¸ì§€ ë””ë”ë§ 12 ì°½ ì´ë™ 시 ë‚´ìš© 표시 14 커서 아래 ì°½ ì´ˆì  ê°€ì§ 15 작업공간간 ì°½ 드래그 ì´ë™ 16 가짜 투명 ê°•ì œ 사용 17 메뉴 íˆ¬ëª…ë„ 18 íˆ¬ëª…ë„ ì„¤ì • 19 ì´ˆì  ê°€ì§„ ì°½ íˆ¬ëª…ë„ 20 ì´ˆì  ì—†ëŠ” ì°½ íˆ¬ëª…ë„ 21 탭 옵션 22 타ì´í‹€ë°”ì— íƒ­ 내장 23 외부탭 너비 24 커서 아래 탭 ì´ˆì  ê°€ì§ 25 í´ë¦­ 시 탭 ì´ˆì  ê°€ì§ $set 5 #Ewmh $set 6 #FbTkError $set 7 #Fluxbox $set 8 #Gnome $set 9 #Keys $set 10 #Menu 1 설정 2 플럭스박스 default 메뉴 3 종료 4 숨긴 ì°½ 5 ë ˆì´ì–´ ... 6 위치 모니터 ... 7 위치 8 ì„¤ì •ì„ ë‹¤ì‹œ ì½ì–´ë“¤ìž„ 9 재시작 $set 11 #Remember 1 í…Œë‘리 ìƒíƒœ 2 í¬ê¸° 3 기억한 작업공간으로 전환 4 ë ˆì´ì–´ 5 기억 ... 6 위치 7 종료 시 값들 기억 8 ì…°ì´ë“œ 여부 9 ê³ ì • 여부 11 작업공간 12 위치 모니터 13 íˆ¬ëª…ë„ $set 12 #Screen $set 13 #Slit 1 í´ë¼ì´ì–¸íЏ 2 한 칸씩 내림 3 한 칸씩 올림 4 Slit ë°©í–¥ 5 Slit ë ˆì´ì–´ 6 Slit 위치 모니터 7 Slit 위치 9 SlitList 저장 $set 14 #Toolbar 1 작업공간 ì´ë¦„ 변경 2 ì•„ì´ì½˜ë°” 모드 3 모든 작업공간 ì°½ 표시 4 숨긴 ì°½ 표시 5 아무 ê²ƒë„ í‘œì‹œ 안 함 6 현재 작업공간 ì°½ 표시 7 현재 작업공간 숨긴 ì°½ 표시 8 툴바 ë ˆì´ì–´ 9 툴바 위치 모니터 10 툴바 위치 11 툴바 12 툴바 너비(%) 13 시계: 24 시간제 14 시계: 12 시간제 15 시간 표시 í˜•ì‹ ìˆ˜ì • 16 ì•„ì´ì½˜ ì´ë¯¸ì§€ 표시 17 숨긴 ì°½ 빼고 표시 18 현재 작업공간 숨긴 ì°½ 빼고 표시 $set 15 #Window $set 16 #Windowmenu 1 ë‹«ìŒ 2 숨김 3 ë ˆì´ì–´ 4 낮춤 5 최대화 6 올림 7 보냄 ... 8 ì…°ì´ë“œ 9 ê³ ì • 10 ê°•ì œ 종료 11 기본 íˆ¬ëª…ë„ $set 17 #Workspace 1 작업공간 %d 2 작업공간 3 새 작업공간 추가 4 ëì—것 제거 $set 18 #bsetroot $set 19 #main $set 20 1 Dock 위 2 하부 3 ë°ìФí¬í†± 5 기본 6 ìƒìœ„ fluxbox-1.3.5/nls/ko_KR/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662604020121 xustar000000000000000030 mtime=1360749956.087811951 30 atime=1360750003.791811646 30 ctime=1360750008.879811613 fluxbox-1.3.5/nls/ko_KR/Makefile.in0000644000175000017500000002714312106662604016157 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/ko_KR/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/ko_KR DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = ko_KR SRC_CODESET = UTF-8 DEST_CODESETS = UTF-8 EUC-KR NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/ko_KR/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/ko_KR/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/ko_KR/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020111 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749853.939812605 30 ctime=1360750008.879811613 fluxbox-1.3.5/nls/ko_KR/Makefile.am0000644000175000017500000000277712106662425016155 0ustar00mgmg00000000000000# nls/ko_KR/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = ko_KR SRC_CODESET = UTF-8 DEST_CODESETS = UTF-8 EUC-KR LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/ja_JP0000644000175000017500000000013212106662666015765 xustar000000000000000030 mtime=1360750006.027811631 30 atime=1360750008.879811613 30 ctime=1360750008.879811613 fluxbox-1.3.5/nls/ja_JP/0000755000175000017500000000000012106662666014071 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/ja_JP/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662463020752 xustar000000000000000030 mtime=1360749875.187812469 30 atime=1360749875.203812469 30 ctime=1360750008.879811613 fluxbox-1.3.5/nls/ja_JP/generated-UTF-8.m0000644000175000017500000000543612106662463017011 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 下å´-中央 2 下å´-å·¦ 3 下å´-å³ 4 æ°´å¹³(H) 6 å·¦å´-下 7 å·¦å´-中央 8 å·¦å´-上 11 å³å´-下 12 å³å´-中央 13 å³å´-上 14 上å´-中央 15 上å´-å·¦ 16 上å´-å³ 17 垂直(V) $set 2 #BaseDisplay $set 3 #Common 2 自動的ã«éš ã™ $set 4 #Configmenu 1 アンãƒã‚¨ã‚¤ãƒªã‚¢ã‚¹ 2 フォーカスを当ã¦ãŸã¨ãã«æœ€å‰é¢ã«ç§»å‹• 4 クリックã§ãƒ•ォーカス 7 ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ç§»å‹•æ™‚ã«æœ€å¾Œã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã«ãƒ•ォーカス 8 フォーカスモデル 9 æ–°è¦ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã«ãƒ•ォーカス 10 完全最大化(タスクãƒãƒ¼ç„¡è¦–) 11 ç”»åƒãƒ‡ã‚£ã‚¶ 12 ウィンドウã®å†…容を表示ã—ãŸã¾ã¾ç§»å‹• 13 カーソルオーãƒãƒ¼ã§ãƒ•ォーカス(SemiSloppy) 14 カーソルオーãƒãƒ¼ã§ãƒ•ォーカス 15 ウィンドウドラッグã§ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã‚’移動 $set 5 #Ewmh $set 6 #FbTkError $set 7 #Fluxbox $set 8 #Gnome $set 9 #Keys $set 10 #Menu 3 終了 4 アイコン 7 é…ç½® 9 å†èµ·å‹• $set 11 #Remember $set 12 #Screen 2 å¹…: %4d x 高: %4d 4 å¹…: %04d x 高: %04d $set 13 #Slit 4 Slit ã®æ–¹å‘ 7 Slit ã®é…ç½® 8 Slit $set 14 #Toolbar 1 ç¾åœ¨ã®ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹åを編集 10 ツールãƒãƒ¼ã®é…ç½® 11 ツールãƒãƒ¼ $set 15 #Window 1 åå‰ãªã— $set 16 #Windowmenu 1 é–‰ã˜ã‚‹ 2 アイコン化(タイトルãƒãƒ¼ã«æ ¼ç´ï¼‰ 4 最背é¢ã«æŒã£ã¦ã„ã 5 最大化 6 最å‰é¢ã«æŒã£ã¦ãã‚‹ 7 é€ã‚‹ ... 8 ãƒãƒ¼ã«æ ¼ç´ 9 ã™ã¹ã¦ã®ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã§è¡¨ç¤º $set 17 #Workspace 1 ワークスペース %d 2 ワークスペース 3 æ–°è¦ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ä½œæˆ 4 末尾ã®ãƒ¯ãƒ¼ã‚¯ã‚¹ãƒšãƒ¼ã‚¹ã‚’削除 $set 18 #fbsetroot 1 Error: 次ã®ä¸­ã‹ã‚‰ä¸€ã¤ã‚’é¸æŠžã—ãªã‘れã°ãªã‚Šã¾ã›ã‚“: -solid, -mod, -gradient\n 3 -display æŒ‡å®šãƒ‡ã‚£ã‚¹ãƒ—ãƒ¬ã‚¤ã«æŽ¥ç¶š\n\ -mod æ ¼å­ã®ãƒ‘ターン間隔\n\ -foreground, -fg æ ¼å­æ¨¡æ§˜ã®å‰æ™¯è‰²\n\ -background, -bg æ ¼å­æ¨¡æ§˜ã®èƒŒæ™¯è‰²\n\n\ -gradient グラデーション(テクスãƒãƒ£ï¼‰\n\ -from グラデーションã®é–‹å§‹è‰²\n\ -to グラデーションã®çµ‚了色\n\n\ -solid å˜è‰²\n\n\ -help ã“ã®ãƒ˜ãƒ«ãƒ—を表示ã—ã¦çµ‚了\n $set 19 #main 1 error: '-display' オプションã¯å¼•æ•°ã‚’å¿…è¦ã¨ã—ã¾ã™ 11 error: '-rc' オプションã¯å¼•æ•°ã‚’å¿…è¦ã¨ã—ã¾ã™ 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\t æŒ‡å®šãƒ‡ã‚£ã‚¹ãƒ—ãƒ¬ã‚¤ã«æŽ¥ç¶š.\n\ -rc \t\t\t 代ã‚りã®ãƒªã‚½ãƒ¼ã‚¹ãƒ•ァイルを使用.\n\ -version\t\t\t ãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…報を表示ã—ã¦çµ‚了.\n\ -info\t\t\t\tdisplay some useful information.\n\ -log \t\t\tlog output to file.\n\ -help\t\t\t\t ã“ã®ãƒ˜ãƒ«ãƒ—を表示ã—ã¦çµ‚了.\n\n fluxbox-1.3.5/nls/ja_JP/PaxHeaders.25974/generated-eucJP.m0000644000175000017500000000013212106662463021155 xustar000000000000000030 mtime=1360749875.187812469 30 atime=1360749875.203812469 30 ctime=1360750008.883811613 fluxbox-1.3.5/nls/ja_JP/generated-eucJP.m0000644000175000017500000000436512106662463017214 0ustar00mgmg00000000000000$ codeset=eucJP $set 1 #Align 1 ²¼Â¦-Ãæ±û 2 ²¼Â¦-º¸ 3 ²¼Â¦-±¦ 4 ¿åÊ¿(H) 6 º¸Â¦-²¼ 7 º¸Â¦-Ãæ±û 8 º¸Â¦-¾å 11 ±¦Â¦-²¼ 12 ±¦Â¦-Ãæ±û 13 ±¦Â¦-¾å 14 ¾å¦-Ãæ±û 15 ¾å¦-º¸ 16 ¾å¦-±¦ 17 ¿âľ(V) $set 2 #BaseDisplay $set 3 #Common 2 ¼«Æ°Åª¤Ë±£¤¹ $set 4 #Configmenu 1 ¥¢¥ó¥Á¥¨¥¤¥ê¥¢¥¹ 2 ¥Õ¥©¡¼¥«¥¹¤òÅö¤Æ¤¿¤È¤­¤ËºÇÁ°ÌÌ¤Ë°ÜÆ° 4 ¥¯¥ê¥Ã¥¯¤Ç¥Õ¥©¡¼¥«¥¹ 7 ¥ï¡¼¥¯¥¹¥Ú¡¼¥¹°Üư»þ¤ËºÇ¸å¤Î¥¦¥£¥ó¥É¥¦¤Ë¥Õ¥©¡¼¥«¥¹ 8 ¥Õ¥©¡¼¥«¥¹¥â¥Ç¥ë 9 ¿·µ¬¥¦¥£¥ó¥É¥¦¤Ë¥Õ¥©¡¼¥«¥¹ 10 ´°Á´ºÇÂç²½(¥¿¥¹¥¯¥Ð¡¼Ìµ»ë) 11 ²èÁü¥Ç¥£¥¶ 12 ¥¦¥£¥ó¥É¥¦¤ÎÆâÍÆ¤òɽ¼¨¤·¤¿¤Þ¤Þ°Üư 13 ¥«¡¼¥½¥ë¥ª¡¼¥Ð¡¼¤Ç¥Õ¥©¡¼¥«¥¹(SemiSloppy) 14 ¥«¡¼¥½¥ë¥ª¡¼¥Ð¡¼¤Ç¥Õ¥©¡¼¥«¥¹ 15 ¥¦¥£¥ó¥É¥¦¥É¥é¥Ã¥°¤Ç¥ï¡¼¥¯¥¹¥Ú¡¼¥¹¤ò°Üư $set 5 #Ewmh $set 6 #FbTkError $set 7 #Fluxbox $set 8 #Gnome $set 9 #Keys $set 10 #Menu 3 ½ªÎ» 4 ¥¢¥¤¥³¥ó 7 ÇÛÃÖ 9 ºÆµ¯Æ° $set 11 #Remember $set 12 #Screen 2 Éý: %4d x ¹â: %4d 4 Éý: %04d x ¹â: %04d $set 13 #Slit 4 Slit ¤ÎÊý¸þ 7 Slit ¤ÎÇÛÃÖ 8 Slit $set 14 #Toolbar 1 ¸½ºß¤Î¥ï¡¼¥¯¥¹¥Ú¡¼¥¹Ì¾¤òÊÔ½¸ 10 ¥Ä¡¼¥ë¥Ð¡¼¤ÎÇÛÃÖ 11 ¥Ä¡¼¥ë¥Ð¡¼ $set 15 #Window 1 ̾Á°¤Ê¤· $set 16 #Windowmenu 1 ÊĤ¸¤ë 2 ¥¢¥¤¥³¥ó²½¡Ê¥¿¥¤¥È¥ë¥Ð¡¼¤Ë³ÊǼ¡Ë 4 ºÇÇØÌ̤˻ý¤Ã¤Æ¤¤¤¯ 5 ºÇÂç²½ 6 ºÇÁ°Ì̤˻ý¤Ã¤Æ¤¯¤ë 7 Á÷¤ë ... 8 ¥Ð¡¼¤Ë³ÊǼ 9 ¤¹¤Ù¤Æ¤Î¥ï¡¼¥¯¥¹¥Ú¡¼¥¹¤Çɽ¼¨ $set 17 #Workspace 1 ¥ï¡¼¥¯¥¹¥Ú¡¼¥¹ %d 2 ¥ï¡¼¥¯¥¹¥Ú¡¼¥¹ 3 ¿·µ¬¥ï¡¼¥¯¥¹¥Ú¡¼¥¹ºîÀ® 4 ËöÈø¤Î¥ï¡¼¥¯¥¹¥Ú¡¼¥¹¤òºï½ü $set 18 #fbsetroot 1 Error: ¼¡¤ÎÃæ¤«¤é°ì¤Ä¤òÁªÂò¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó: -solid, -mod, -gradient\n 3 -display »ØÄê¥Ç¥£¥¹¥×¥ì¥¤¤ËÀܳ\n\ -mod ³Ê»Ò¤Î¥Ñ¥¿¡¼¥ó´Ö³Ö\n\ -foreground, -fg ³Ê»ÒÌÏÍͤÎÁ°·Ê¿§\n\ -background, -bg ³Ê»ÒÌÏÍͤÎÇØ·Ê¿§\n\n\ -gradient ¥°¥é¥Ç¡¼¥·¥ç¥ó¡Ê¥Æ¥¯¥¹¥Á¥ã¡Ë\n\ -from ¥°¥é¥Ç¡¼¥·¥ç¥ó¤Î³«»Ï¿§\n\ -to ¥°¥é¥Ç¡¼¥·¥ç¥ó¤Î½ªÎ»¿§\n\n\ -solid ñ¿§\n\n\ -help ¤³¤Î¥Ø¥ë¥×¤òɽ¼¨¤·¤Æ½ªÎ»\n $set 19 #main 1 error: '-display' ¥ª¥×¥·¥ç¥ó¤Ï°ú¿ô¤òɬÍפȤ·¤Þ¤¹ 11 error: '-rc' ¥ª¥×¥·¥ç¥ó¤Ï°ú¿ô¤òɬÍפȤ·¤Þ¤¹ 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\t »ØÄê¥Ç¥£¥¹¥×¥ì¥¤¤ËÀܳ.\n\ -rc \t\t\t Âå¤ï¤ê¤Î¥ê¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ò»ÈÍÑ.\n\ -version\t\t\t ¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɽ¼¨¤·¤Æ½ªÎ».\n\ -info\t\t\t\tdisplay some useful information.\n\ -log \t\t\tlog output to file.\n\ -help\t\t\t\t ¤³¤Î¥Ø¥ë¥×¤òɽ¼¨¤·¤Æ½ªÎ».\n\n fluxbox-1.3.5/nls/ja_JP/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020507 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749875.183812469 30 ctime=1360750008.883811613 fluxbox-1.3.5/nls/ja_JP/Translation.m0000644000175000017500000000436512106662425016546 0ustar00mgmg00000000000000$ codeset=eucJP $set 1 #Align 1 ²¼Â¦-Ãæ±û 2 ²¼Â¦-º¸ 3 ²¼Â¦-±¦ 4 ¿åÊ¿(H) 6 º¸Â¦-²¼ 7 º¸Â¦-Ãæ±û 8 º¸Â¦-¾å 11 ±¦Â¦-²¼ 12 ±¦Â¦-Ãæ±û 13 ±¦Â¦-¾å 14 ¾å¦-Ãæ±û 15 ¾å¦-º¸ 16 ¾å¦-±¦ 17 ¿âľ(V) $set 2 #BaseDisplay $set 3 #Common 2 ¼«Æ°Åª¤Ë±£¤¹ $set 4 #Configmenu 1 ¥¢¥ó¥Á¥¨¥¤¥ê¥¢¥¹ 2 ¥Õ¥©¡¼¥«¥¹¤òÅö¤Æ¤¿¤È¤­¤ËºÇÁ°ÌÌ¤Ë°ÜÆ° 4 ¥¯¥ê¥Ã¥¯¤Ç¥Õ¥©¡¼¥«¥¹ 7 ¥ï¡¼¥¯¥¹¥Ú¡¼¥¹°Üư»þ¤ËºÇ¸å¤Î¥¦¥£¥ó¥É¥¦¤Ë¥Õ¥©¡¼¥«¥¹ 8 ¥Õ¥©¡¼¥«¥¹¥â¥Ç¥ë 9 ¿·µ¬¥¦¥£¥ó¥É¥¦¤Ë¥Õ¥©¡¼¥«¥¹ 10 ´°Á´ºÇÂç²½(¥¿¥¹¥¯¥Ð¡¼Ìµ»ë) 11 ²èÁü¥Ç¥£¥¶ 12 ¥¦¥£¥ó¥É¥¦¤ÎÆâÍÆ¤òɽ¼¨¤·¤¿¤Þ¤Þ°Üư 13 ¥«¡¼¥½¥ë¥ª¡¼¥Ð¡¼¤Ç¥Õ¥©¡¼¥«¥¹(SemiSloppy) 14 ¥«¡¼¥½¥ë¥ª¡¼¥Ð¡¼¤Ç¥Õ¥©¡¼¥«¥¹ 15 ¥¦¥£¥ó¥É¥¦¥É¥é¥Ã¥°¤Ç¥ï¡¼¥¯¥¹¥Ú¡¼¥¹¤ò°Üư $set 5 #Ewmh $set 6 #FbTkError $set 7 #Fluxbox $set 8 #Gnome $set 9 #Keys $set 10 #Menu 3 ½ªÎ» 4 ¥¢¥¤¥³¥ó 7 ÇÛÃÖ 9 ºÆµ¯Æ° $set 11 #Remember $set 12 #Screen 2 Éý: %4d x ¹â: %4d 4 Éý: %04d x ¹â: %04d $set 13 #Slit 4 Slit ¤ÎÊý¸þ 7 Slit ¤ÎÇÛÃÖ 8 Slit $set 14 #Toolbar 1 ¸½ºß¤Î¥ï¡¼¥¯¥¹¥Ú¡¼¥¹Ì¾¤òÊÔ½¸ 10 ¥Ä¡¼¥ë¥Ð¡¼¤ÎÇÛÃÖ 11 ¥Ä¡¼¥ë¥Ð¡¼ $set 15 #Window 1 ̾Á°¤Ê¤· $set 16 #Windowmenu 1 ÊĤ¸¤ë 2 ¥¢¥¤¥³¥ó²½¡Ê¥¿¥¤¥È¥ë¥Ð¡¼¤Ë³ÊǼ¡Ë 4 ºÇÇØÌ̤˻ý¤Ã¤Æ¤¤¤¯ 5 ºÇÂç²½ 6 ºÇÁ°Ì̤˻ý¤Ã¤Æ¤¯¤ë 7 Á÷¤ë ... 8 ¥Ð¡¼¤Ë³ÊǼ 9 ¤¹¤Ù¤Æ¤Î¥ï¡¼¥¯¥¹¥Ú¡¼¥¹¤Çɽ¼¨ $set 17 #Workspace 1 ¥ï¡¼¥¯¥¹¥Ú¡¼¥¹ %d 2 ¥ï¡¼¥¯¥¹¥Ú¡¼¥¹ 3 ¿·µ¬¥ï¡¼¥¯¥¹¥Ú¡¼¥¹ºîÀ® 4 ËöÈø¤Î¥ï¡¼¥¯¥¹¥Ú¡¼¥¹¤òºï½ü $set 18 #fbsetroot 1 Error: ¼¡¤ÎÃæ¤«¤é°ì¤Ä¤òÁªÂò¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó: -solid, -mod, -gradient\n 3 -display »ØÄê¥Ç¥£¥¹¥×¥ì¥¤¤ËÀܳ\n\ -mod ³Ê»Ò¤Î¥Ñ¥¿¡¼¥ó´Ö³Ö\n\ -foreground, -fg ³Ê»ÒÌÏÍͤÎÁ°·Ê¿§\n\ -background, -bg ³Ê»ÒÌÏÍͤÎÇØ·Ê¿§\n\n\ -gradient ¥°¥é¥Ç¡¼¥·¥ç¥ó¡Ê¥Æ¥¯¥¹¥Á¥ã¡Ë\n\ -from ¥°¥é¥Ç¡¼¥·¥ç¥ó¤Î³«»Ï¿§\n\ -to ¥°¥é¥Ç¡¼¥·¥ç¥ó¤Î½ªÎ»¿§\n\n\ -solid ñ¿§\n\n\ -help ¤³¤Î¥Ø¥ë¥×¤òɽ¼¨¤·¤Æ½ªÎ»\n $set 19 #main 1 error: '-display' ¥ª¥×¥·¥ç¥ó¤Ï°ú¿ô¤òɬÍפȤ·¤Þ¤¹ 11 error: '-rc' ¥ª¥×¥·¥ç¥ó¤Ï°ú¿ô¤òɬÍפȤ·¤Þ¤¹ 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\t »ØÄê¥Ç¥£¥¹¥×¥ì¥¤¤ËÀܳ.\n\ -rc \t\t\t Âå¤ï¤ê¤Î¥ê¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤ò»ÈÍÑ.\n\ -version\t\t\t ¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤òɽ¼¨¤·¤Æ½ªÎ».\n\ -info\t\t\t\tdisplay some useful information.\n\ -log \t\t\tlog output to file.\n\ -help\t\t\t\t ¤³¤Î¥Ø¥ë¥×¤òɽ¼¨¤·¤Æ½ªÎ».\n\n fluxbox-1.3.5/nls/ja_JP/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662604020077 xustar000000000000000030 mtime=1360749956.067811951 30 atime=1360750003.771811646 30 ctime=1360750008.883811613 fluxbox-1.3.5/nls/ja_JP/Makefile.in0000644000175000017500000002714212106662604016134 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/ja_JP/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/ja_JP DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = ja_JP SRC_CODESET = eucJP DEST_CODESETS = eucJP UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/ja_JP/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/ja_JP/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/ja_JP/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020067 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749853.919812605 30 ctime=1360750008.883811613 fluxbox-1.3.5/nls/ja_JP/Makefile.am0000644000175000017500000000277612106662425016132 0ustar00mgmg00000000000000# nls/ja_JP/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = ja_JP SRC_CODESET = eucJP DEST_CODESETS = eucJP UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/bg_BG0000644000175000017500000000013212106662665015741 xustar000000000000000030 mtime=1360750005.991811632 30 atime=1360750008.883811613 30 ctime=1360750008.883811613 fluxbox-1.3.5/nls/bg_BG/0000755000175000017500000000000012106662665014045 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/bg_BG/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662463020727 xustar000000000000000030 mtime=1360749875.147812469 30 atime=1360749875.163812469 30 ctime=1360750008.887811613 fluxbox-1.3.5/nls/bg_BG/generated-UTF-8.m0000644000175000017500000000542312106662463016762 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Äîëó â Ñðåäàòà 2 Äîëó â Ëÿâî 3 Äîëó â Äÿñíî 4 Õîðèçîíòàëíî 6 Äîëó â Ëÿâî 7 Ëÿâî â Ñðåäàòà 8 Ãîðå â Ëÿâî 11 Äîëó â Äÿñíî 12 Äÿñíî â Ñðåäàòà 13 Ãîðå â Äÿñíî 14 Ãîðå â Ñðåäàòà 15 Ãîðå â Ëÿâî 16 Ãîðå â Äÿñíî 17 Âåðòêàëíî $set 2 #BaseDisplay $set 3 #Common 2 Àâòîìàòè÷íî ñêðèâàíå $set 4 #Configmenu 2 Àâòîìàòè÷íî Ãîâäèãàíå 4 Êëèêíè çà Ôîêóñ 7 Ôîêóñèðàé Ãðîçîðåö ïðè ñìÿíà íà Ãàáîòíèòå Ìåñòà 8 Òèï ôîêóñ 9 Ôîêóñèðàé Ãîâèòå Ãðîçîðöè 10 Ãúëíî Óâåëè÷àâàíå 11 Image Dithering 12 Ãåïðîçðà÷íî ìåñòåíå íà ïðîçîðöèòå 13 Ãîëó Sloppy Ôîêóñ 14 Sloppy Ôîêóñ 15 Workspace Warping $set 5 #Ewmh $set 6 #FbTkError $set 7 #Fluxbox $set 8 #Gnome $set 9 #Keys $set 10 #Menu 3 Èçõîä 4 Èêîíè 7 Ãàçïîëîæåíèå 9 Ãåñòàðòèðàíå $set 11 #Remember $set 12 #Screen 2 W: %4d x H: %4d 4 W: %04d x H: %04d $set 13 #Slit 4 Posoka na Slit -a 7 Ãàçïîëîæåíèå íà Slit -à 8 Slit $set 14 #Toolbar 1 Ãåäàêòèðàé èìåòî íà òåêóùîòî Ãàáîòíî Ìÿñòî 10 Ãàçïîëîæåíèå íà Toolbar -à 11 Toolbar $set 15 #Window 1 Ãåçèìå $set 16 #Windowmenu 1 Çàòâîðè 2 Èêîíèçèðàé 4 Ñíèøè 5 Óâåëè÷è 6 Ãîâäèãíè 7 Ãðàòè íà ... 8 Çàñåí÷è 9 Çàáîäè $set 17 #Workspace 1 Ãàáîòíî Ìÿñòî %d 2 Ãàáîòíè Ìåñòà 3 Ãîâî Ãàáîòíî Ìÿñòî 4 Ìàõíè Ãîñëåäíîòî $set 18 #fbsetroot 1 error: must specify one of: -solid, -mod, -gradient\n 3 -display display connection\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient gradient texture\n\ -from gradient start color\n\ -to gradient end color\n\n\ -solid solid color\n\n\ -help print this help text and exit\n $set 19 #main 1 ãðåøêà: '-display' èçèñêâà àðãóìåíò 11 ãðåøêà: '-rc' èçèñêâà àðãóìåíò 13 Fluxkbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tuse display connection.\n\ -rc \t\t\tïîëçâàé çàìåñòâàù ðåñóðñåí ôàéë.\n\ -version\t\t\tïîêàæè âåðñèÿòà è èçëåç.\n\ -info\t\t\t\tdisplay some useful information.\n\ -log \t\t\tlog output to file.\n\ -help\t\t\t\tïîêàæè òîçè ïîìîùåí òåêñò è èçëåç.\n\n fluxbox-1.3.5/nls/bg_BG/PaxHeaders.25974/generated-ISO-8859-1.m0000644000175000017500000000013212106662463021327 xustar000000000000000030 mtime=1360749875.143812469 30 atime=1360749875.163812469 30 ctime=1360750008.887811613 fluxbox-1.3.5/nls/bg_BG/generated-ISO-8859-1.m0000644000175000017500000000417512106662463017365 0ustar00mgmg00000000000000$ codeset=ISO-8859-1 $set 1 #Align 1 Äîëó â Ñðåäàòà 2 Äîëó â Ëÿâî 3 Äîëó â Äÿñíî 4 Õîðèçîíòàëíî 6 Äîëó â Ëÿâî 7 Ëÿâî â Ñðåäàòà 8 Ãîðå â Ëÿâî 11 Äîëó â Äÿñíî 12 Äÿñíî â Ñðåäàòà 13 Ãîðå â Äÿñíî 14 Ãîðå â Ñðåäàòà 15 Ãîðå â Ëÿâî 16 Ãîðå â Äÿñíî 17 Âåðòêàëíî $set 2 #BaseDisplay $set 3 #Common 2 Àâòîìàòè÷íî ñêðèâàíå $set 4 #Configmenu 2 Àâòîìàòè÷íî Ïîâäèãàíå 4 Êëèêíè çà Ôîêóñ 7 Ôîêóñèðàé Ïðîçîðåö ïðè ñìÿíà íà Ðàáîòíèòå Ìåñòà 8 Òèï ôîêóñ 9 Ôîêóñèðàé Íîâèòå Ïðîçîðöè 10 Ïúëíî Óâåëè÷àâàíå 11 Image Dithering 12 Íåïðîçðà÷íî ìåñòåíå íà ïðîçîðöèòå 13 Ïîëó Sloppy Ôîêóñ 14 Sloppy Ôîêóñ 15 Workspace Warping $set 5 #Ewmh $set 6 #FbTkError $set 7 #Fluxbox $set 8 #Gnome $set 9 #Keys $set 10 #Menu 3 Èçõîä 4 Èêîíè 7 Ðàçïîëîæåíèå 9 Ðåñòàðòèðàíå $set 11 #Remember $set 12 #Screen 2 W: %4d x H: %4d 4 W: %04d x H: %04d $set 13 #Slit 4 Posoka na Slit -a 7 Ðàçïîëîæåíèå íà Slit -à 8 Slit $set 14 #Toolbar 1 Ðåäàêòèðàé èìåòî íà òåêóùîòî Ðàáîòíî Ìÿñòî 10 Ðàçïîëîæåíèå íà Toolbar -à 11 Toolbar $set 15 #Window 1 Áåçèìå $set 16 #Windowmenu 1 Çàòâîðè 2 Èêîíèçèðàé 4 Ñíèøè 5 Óâåëè÷è 6 Ïîâäèãíè 7 Ïðàòè íà ... 8 Çàñåí÷è 9 Çàáîäè $set 17 #Workspace 1 Ðàáîòíî Ìÿñòî %d 2 Ðàáîòíè Ìåñòà 3 Íîâî Ðàáîòíî Ìÿñòî 4 Ìàõíè Ïîñëåäíîòî $set 18 #fbsetroot 1 error: must specify one of: -solid, -mod, -gradient\n 3 -display display connection\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient gradient texture\n\ -from gradient start color\n\ -to gradient end color\n\n\ -solid solid color\n\n\ -help print this help text and exit\n $set 19 #main 1 ãðåøêà: '-display' èçèñêâà àðãóìåíò 11 ãðåøêà: '-rc' èçèñêâà àðãóìåíò 13 Fluxkbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tuse display connection.\n\ -rc \t\t\tïîëçâàé çàìåñòâàù ðåñóðñåí ôàéë.\n\ -version\t\t\tïîêàæè âåðñèÿòà è èçëåç.\n\ -info\t\t\t\tdisplay some useful information.\n\ -log \t\t\tlog output to file.\n\ -help\t\t\t\tïîêàæè òîçè ïîìîùåí òåêñò è èçëåç.\n\n fluxbox-1.3.5/nls/bg_BG/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020464 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749875.143812469 30 ctime=1360750008.887811613 fluxbox-1.3.5/nls/bg_BG/Translation.m0000644000175000017500000000417512106662425016522 0ustar00mgmg00000000000000$ codeset=ISO-8859-1 $set 1 #Align 1 Äîëó â Ñðåäàòà 2 Äîëó â Ëÿâî 3 Äîëó â Äÿñíî 4 Õîðèçîíòàëíî 6 Äîëó â Ëÿâî 7 Ëÿâî â Ñðåäàòà 8 Ãîðå â Ëÿâî 11 Äîëó â Äÿñíî 12 Äÿñíî â Ñðåäàòà 13 Ãîðå â Äÿñíî 14 Ãîðå â Ñðåäàòà 15 Ãîðå â Ëÿâî 16 Ãîðå â Äÿñíî 17 Âåðòêàëíî $set 2 #BaseDisplay $set 3 #Common 2 Àâòîìàòè÷íî ñêðèâàíå $set 4 #Configmenu 2 Àâòîìàòè÷íî Ïîâäèãàíå 4 Êëèêíè çà Ôîêóñ 7 Ôîêóñèðàé Ïðîçîðåö ïðè ñìÿíà íà Ðàáîòíèòå Ìåñòà 8 Òèï ôîêóñ 9 Ôîêóñèðàé Íîâèòå Ïðîçîðöè 10 Ïúëíî Óâåëè÷àâàíå 11 Image Dithering 12 Íåïðîçðà÷íî ìåñòåíå íà ïðîçîðöèòå 13 Ïîëó Sloppy Ôîêóñ 14 Sloppy Ôîêóñ 15 Workspace Warping $set 5 #Ewmh $set 6 #FbTkError $set 7 #Fluxbox $set 8 #Gnome $set 9 #Keys $set 10 #Menu 3 Èçõîä 4 Èêîíè 7 Ðàçïîëîæåíèå 9 Ðåñòàðòèðàíå $set 11 #Remember $set 12 #Screen 2 W: %4d x H: %4d 4 W: %04d x H: %04d $set 13 #Slit 4 Posoka na Slit -a 7 Ðàçïîëîæåíèå íà Slit -à 8 Slit $set 14 #Toolbar 1 Ðåäàêòèðàé èìåòî íà òåêóùîòî Ðàáîòíî Ìÿñòî 10 Ðàçïîëîæåíèå íà Toolbar -à 11 Toolbar $set 15 #Window 1 Áåçèìå $set 16 #Windowmenu 1 Çàòâîðè 2 Èêîíèçèðàé 4 Ñíèøè 5 Óâåëè÷è 6 Ïîâäèãíè 7 Ïðàòè íà ... 8 Çàñåí÷è 9 Çàáîäè $set 17 #Workspace 1 Ðàáîòíî Ìÿñòî %d 2 Ðàáîòíè Ìåñòà 3 Íîâî Ðàáîòíî Ìÿñòî 4 Ìàõíè Ïîñëåäíîòî $set 18 #fbsetroot 1 error: must specify one of: -solid, -mod, -gradient\n 3 -display display connection\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient gradient texture\n\ -from gradient start color\n\ -to gradient end color\n\n\ -solid solid color\n\n\ -help print this help text and exit\n $set 19 #main 1 ãðåøêà: '-display' èçèñêâà àðãóìåíò 11 ãðåøêà: '-rc' èçèñêâà àðãóìåíò 13 Fluxkbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tuse display connection.\n\ -rc \t\t\tïîëçâàé çàìåñòâàù ðåñóðñåí ôàéë.\n\ -version\t\t\tïîêàæè âåðñèÿòà è èçëåç.\n\ -info\t\t\t\tdisplay some useful information.\n\ -log \t\t\tlog output to file.\n\ -help\t\t\t\tïîêàæè òîçè ïîìîùåí òåêñò è èçëåç.\n\n fluxbox-1.3.5/nls/bg_BG/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603020053 xustar000000000000000030 mtime=1360749955.695811954 30 atime=1360750003.471811648 30 ctime=1360750008.887811613 fluxbox-1.3.5/nls/bg_BG/Makefile.in0000644000175000017500000002715412106662603016113 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/bg_BG/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/bg_BG DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = bg_BG SRC_CODESET = ISO-8859-1 DEST_CODESETS = ISO-8859-1 UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/bg_BG/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/bg_BG/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/bg_BG/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020044 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749853.547812607 30 ctime=1360750008.891811613 fluxbox-1.3.5/nls/bg_BG/Makefile.am0000644000175000017500000000301012106662425016065 0ustar00mgmg00000000000000# nls/bg_BG/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = bg_BG SRC_CODESET = ISO-8859-1 DEST_CODESETS = ISO-8859-1 UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/pt_PT0000644000175000017500000000013212106662665016027 xustar000000000000000030 mtime=1360750005.959811632 30 atime=1360750008.891811613 30 ctime=1360750008.891811613 fluxbox-1.3.5/nls/pt_PT/0000755000175000017500000000000012106662665014133 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/pt_PT/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662463021015 xustar000000000000000030 mtime=1360749875.107812469 30 atime=1360749875.123812469 30 ctime=1360750008.891811613 fluxbox-1.3.5/nls/pt_PT/generated-UTF-8.m0000644000175000017500000001474212106662463017054 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Em Baixo no Centro 2 Em Baixo à Esquerda 3 Em Baixo à Direita 4 Horizontal 5 Esquerda 6 À Esquerda em Baixo 7 À Esquerda no Centro 8 À Esquerda em Cima 9 Relativo 10 Direita 11 À Direita em Baixo 12 À Direita no Centro 13 À Direita em Cima 14 Em Cima no Centro 15 Em Cima à Esquerda 16 Em Cima à Direita 17 Vertical $set 2 #BaseDisplay 1 Interrompendo... criando core\n 2 Desligando\n 3 %s: sinal %d recebido\n $set 3 #Common 1 Transparência 2 Esconder Automaticamente 3 Compilado 4 Opções de Compilação 5 Compilador 6 Versão do Compilador 7 init 8 keys 9 nls 10 menu 11 style 12 Por Omissão 13 desactivado 14 Erro 15 Versão do Fluxbox 16 Maximizar Sobre 17 Revisão GIT 18 Visível 19 Não existe opção de Fundo neste tema.\nConsulte o manual ou as FAQ. $set 4 #Configmenu 1 AntiAlias 2 Sobrepor Janela Quando Activa 3 Clicar Sobrepõe Janela 4 Foco na Janela Quando Clicada 5 Decoração em Janelas Temporárias 6 Roda do Rato muda Ãrea de Trabalho 7 Foco na Última Janela Da Ãrea de Trabalho 8 Modelo de Foco 9 Foco em Novas Janelas 10 Maximização Total 11 Simulação de Cores em Imagens 12 Movimento Opaco de Janelas 14 Foco na Janela Quando Apontada 15 Ãreas de Trabalho Contínuas 16 Forçar Pseudo-Transparência 17 Transparência do Menu 18 Transparência 19 Transparência de Janelas com Foco 20 Transparência de Janelas sem Foco 21 Opções de Abas 22 Abas na Barra de Título 23 Dimensão de Abas Externas 24 Foco na Aba Quando Apontada 25 Foco na Aba Quando Clicada $set 5 #Ewmh 1 Fatal: Falta de memória, não é possível alocar lista de clientes para EWMH $set 6 #FbTkError 1 Aviso! Altura > 3200, definindo Altura = 3200 2 Aviso! Largura > 3200, definindo Largura = 3200 3 Aviso: não foi possível abrir fonte de recurso 4 Erro de alocação. 5 Erro na criação de pixmap 6 Não é possível criar XImage 7 Falha de leitura 8 Aviso: Não foi possível encontrar um formato válido para transparência. 9 Aviso: Não foi possível criar uma imagem transparente. 10 Aviso: Não foi possível criar um pixmap transparente. 11 Não foi possível encontrar o formato do ecrã(%d) 12 Sem memória 13 Sem memória ao alocar buffer de azul. 14 Sem memória ao alocar buffer de verde. 15 Sem memória ao alocar buffer de vermelho. 16 Falha de leitura de item de tema 17 visual não suportado 18 Definindo valor por defeito $set 7 #Fluxbox 1 Ficheiro de configuração é inválido! 2 Não foi possível abrir ficheiro de grupos 3 Não foi possível abrir a base de dados 4 Tentar de novo com 5 Aviso! Não foi encontrado um ecrã onde mapear a janela! 6 Não é possível criar directoria %s 7 Não foram encontrados ecrãs para gerir.\nAssegure-se de que não tem outro gestor de janelas activo. 8 Erro no tratamento de expressão regular 9 Fatal! Só é possível haver uma instância da classe fluxbox. 10 Não é possível ligar ao servidor X.\nAssegure-se de que inicia o X antes do Fluxbox. 11 Aviso: Servidor X não suporta traduções 12 Aviso: Não é possível definir modificadores localizados $set 8 #Gnome 1 Fatal: Sem memória, não é possível alocar lista de clientes para GNOME $set 9 #Keys 1 Teclas: Erro na linha 2 Teclas: Falha ao fundir àrvore de atalhos de teclas! 3 Teclas: Tecla/Modificador inválido na linha $set 10 #Menu 1 Configuração 2 Menu por Defeito do Fluxbox 3 Sair 4 Janelas Minimizadas 5 Camada... 6 No Monitor... 7 Posicionamento 8 Recarregar Configurações 9 Reiniciar 10 Aviso: definição [encondig] não-balanceada $set 11 #Remember 1 Decorações 2 Dimensões 3 Ir para Ãrea de Trabalho 4 Camada 5 Lembrar... 6 Posição 7 Gravar ao sair 8 Enrolado 9 Sempre Visível 10 Item de Aplicação Desconhecido 11 Ãrea de Trabalho 12 Monitor 13 Transparência $set 12 #Screen 1 BScreen::BScreen: ocorreu um erro ao interrogar o servidor X.\n outro gestor de janelas está a correr 2 L: %4d x A: %4d 3 BScreen::BScreen: gerindo ecrã %d usando visual 0x%lx, profundidade %d\n 4 L: %04d x A: %04d $set 13 #Slit 1 Clientes 2 Rodar para Baixo 3 Rodar para Cima 4 Direcção 5 Camada 6 Monitor 7 Posicionamento 8 Slit 9 Gravar Slitlist $set 14 #Toolbar 1 Editar o nome da Ãrea de Trabalho 2 Modo da Barra de Janelas 3 Todas as Janelas 4 Apenas Janelas Minimizadas 5 Nenhuma 6 Ãrea de Trabalho 7 Apenas Janelas Minimizadas da Ãrea de Trabalho 8 Camada da Barra de Ferramentas 9 Barra de Ferramentas no Monitor 10 Posicionamento 11 Barra de Ferramentas 12 Dimensão em percentagem 13 Relógio: 24h 14 Relógio: 12h 15 Editar Formato do Relógio 16 Mostrar Imagens 17 Todas Excepto Janelas Minimizadas 18 Sem Janelas Minimizadas da Ãrea de Trabalho $set 15 #Window 1 Sem Nome $set 16 #Windowmenu 1 Fechar 2 Minimizar 3 Camada 4 Desfocalizar 5 Maximizar 6 Focalizar 7 Enviar Para ... 8 Enrolar 9 Sempre Visível 10 Forçar Terminar 11 Usar Valores Padrão $set 17 #Workspace 1 Ãrea de Trabalho %d 2 Ãreas de Trabalho 3 Nova Ãrea de Trabalho 4 Remover Última Ãrea de Trabalho $set 18 #fbsetroot 1 Erro: é necessário especificar um dos seguintes argumentos: -solid, -mod, -gradient\n 2 Não foi possível criar átomos de pixmaps, desistindo! 3 -display ligação com display\n\ -mod altera padrão\n\ -foreground, -fg altera cor de primeiro plano\n\ -background, -bg altera cor de fundo\n\n\ -gradient textura do gradiente\n\ -from cor de início do gradiente\n\ -to cor do fim do gradiente\n\n\ -solid cor sólida\n\n\ -help mostra esta ajuda e sai\n $set 19 #main 1 Erro: '-display' requer um argumento 2 Erro de Alocação 3 Erro de Conversão 4 Fora dos Limites 5 Erro de Execução 6 Excepção Standard 7 Erro desconhecido 8 Erro: '-log' necessita um argumento 9 Ficheiro de Registo 10 Guardando Registo em 11 Erro: '-rc' necessita de um argumento 12 Erro: '-screen' necessita de um argumento 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ Website: http://www.fluxbox.org/\n\n\ -display \t\tusar ligação com o display.\n\ -screen \tcorrer nos ecrãs especificados apenas.\n\ -rc \t\t\tusar arquivo alternativo de recursos.\n\ -version\t\t\tmostrar versão e sair.\n\ -info\t\t\t\tmostrar alguma informação útil.\n\ -log \t\t\tguarda registos para um ficheiro.\n\ -help\t\t\t\tmostrar esta ajuda e sair.\n\n 14 aviso: não foi possível definir a variável de ambiente 'DISPLAY' $set 20 #layers 1 Acima de Doca 2 Em Baixo 3 Desktop 4 Doca 5 Normal 6 Topo fluxbox-1.3.5/nls/pt_PT/PaxHeaders.25974/generated-ISO-8859-1.m0000644000175000017500000000013212106662463021415 xustar000000000000000030 mtime=1360749875.103812469 30 atime=1360749875.123812469 30 ctime=1360750008.891811613 fluxbox-1.3.5/nls/pt_PT/generated-ISO-8859-1.m0000644000175000017500000001446712106662463017460 0ustar00mgmg00000000000000$ codeset=ISO-8859-1 $set 1 #Align 1 Em Baixo no Centro 2 Em Baixo à Esquerda 3 Em Baixo à Direita 4 Horizontal 5 Esquerda 6 À Esquerda em Baixo 7 À Esquerda no Centro 8 À Esquerda em Cima 9 Relativo 10 Direita 11 À Direita em Baixo 12 À Direita no Centro 13 À Direita em Cima 14 Em Cima no Centro 15 Em Cima à Esquerda 16 Em Cima à Direita 17 Vertical $set 2 #BaseDisplay 1 Interrompendo... criando core\n 2 Desligando\n 3 %s: sinal %d recebido\n $set 3 #Common 1 Transparência 2 Esconder Automaticamente 3 Compilado 4 Opções de Compilação 5 Compilador 6 Versão do Compilador 7 init 8 keys 9 nls 10 menu 11 style 12 Por Omissão 13 desactivado 14 Erro 15 Versão do Fluxbox 16 Maximizar Sobre 17 Revisão GIT 18 Visível 19 Não existe opção de Fundo neste tema.\nConsulte o manual ou as FAQ. $set 4 #Configmenu 1 AntiAlias 2 Sobrepor Janela Quando Activa 3 Clicar Sobrepõe Janela 4 Foco na Janela Quando Clicada 5 Decoração em Janelas Temporárias 6 Roda do Rato muda Área de Trabalho 7 Foco na Última Janela Da Área de Trabalho 8 Modelo de Foco 9 Foco em Novas Janelas 10 Maximização Total 11 Simulação de Cores em Imagens 12 Movimento Opaco de Janelas 14 Foco na Janela Quando Apontada 15 Áreas de Trabalho Contínuas 16 Forçar Pseudo-Transparência 17 Transparência do Menu 18 Transparência 19 Transparência de Janelas com Foco 20 Transparência de Janelas sem Foco 21 Opções de Abas 22 Abas na Barra de Título 23 Dimensão de Abas Externas 24 Foco na Aba Quando Apontada 25 Foco na Aba Quando Clicada $set 5 #Ewmh 1 Fatal: Falta de memória, não é possível alocar lista de clientes para EWMH $set 6 #FbTkError 1 Aviso! Altura > 3200, definindo Altura = 3200 2 Aviso! Largura > 3200, definindo Largura = 3200 3 Aviso: não foi possível abrir fonte de recurso 4 Erro de alocação. 5 Erro na criação de pixmap 6 Não é possível criar XImage 7 Falha de leitura 8 Aviso: Não foi possível encontrar um formato válido para transparência. 9 Aviso: Não foi possível criar uma imagem transparente. 10 Aviso: Não foi possível criar um pixmap transparente. 11 Não foi possível encontrar o formato do ecrã(%d) 12 Sem memória 13 Sem memória ao alocar buffer de azul. 14 Sem memória ao alocar buffer de verde. 15 Sem memória ao alocar buffer de vermelho. 16 Falha de leitura de item de tema 17 visual não suportado 18 Definindo valor por defeito $set 7 #Fluxbox 1 Ficheiro de configuração é inválido! 2 Não foi possível abrir ficheiro de grupos 3 Não foi possível abrir a base de dados 4 Tentar de novo com 5 Aviso! Não foi encontrado um ecrã onde mapear a janela! 6 Não é possível criar directoria %s 7 Não foram encontrados ecrãs para gerir.\nAssegure-se de que não tem outro gestor de janelas activo. 8 Erro no tratamento de expressão regular 9 Fatal! Só é possível haver uma instância da classe fluxbox. 10 Não é possível ligar ao servidor X.\nAssegure-se de que inicia o X antes do Fluxbox. 11 Aviso: Servidor X não suporta traduções 12 Aviso: Não é possível definir modificadores localizados $set 8 #Gnome 1 Fatal: Sem memória, não é possível alocar lista de clientes para GNOME $set 9 #Keys 1 Teclas: Erro na linha 2 Teclas: Falha ao fundir àrvore de atalhos de teclas! 3 Teclas: Tecla/Modificador inválido na linha $set 10 #Menu 1 Configuração 2 Menu por Defeito do Fluxbox 3 Sair 4 Janelas Minimizadas 5 Camada... 6 No Monitor... 7 Posicionamento 8 Recarregar Configurações 9 Reiniciar 10 Aviso: definição [encondig] não-balanceada $set 11 #Remember 1 Decorações 2 Dimensões 3 Ir para Área de Trabalho 4 Camada 5 Lembrar... 6 Posição 7 Gravar ao sair 8 Enrolado 9 Sempre Visível 10 Item de Aplicação Desconhecido 11 Área de Trabalho 12 Monitor 13 Transparência $set 12 #Screen 1 BScreen::BScreen: ocorreu um erro ao interrogar o servidor X.\n outro gestor de janelas está a correr 2 L: %4d x A: %4d 3 BScreen::BScreen: gerindo ecrã %d usando visual 0x%lx, profundidade %d\n 4 L: %04d x A: %04d $set 13 #Slit 1 Clientes 2 Rodar para Baixo 3 Rodar para Cima 4 Direcção 5 Camada 6 Monitor 7 Posicionamento 8 Slit 9 Gravar Slitlist $set 14 #Toolbar 1 Editar o nome da Área de Trabalho 2 Modo da Barra de Janelas 3 Todas as Janelas 4 Apenas Janelas Minimizadas 5 Nenhuma 6 Área de Trabalho 7 Apenas Janelas Minimizadas da Área de Trabalho 8 Camada da Barra de Ferramentas 9 Barra de Ferramentas no Monitor 10 Posicionamento 11 Barra de Ferramentas 12 Dimensão em percentagem 13 Relógio: 24h 14 Relógio: 12h 15 Editar Formato do Relógio 16 Mostrar Imagens 17 Todas Excepto Janelas Minimizadas 18 Sem Janelas Minimizadas da Área de Trabalho $set 15 #Window 1 Sem Nome $set 16 #Windowmenu 1 Fechar 2 Minimizar 3 Camada 4 Desfocalizar 5 Maximizar 6 Focalizar 7 Enviar Para ... 8 Enrolar 9 Sempre Visível 10 Forçar Terminar 11 Usar Valores Padrão $set 17 #Workspace 1 Área de Trabalho %d 2 Áreas de Trabalho 3 Nova Área de Trabalho 4 Remover Última Área de Trabalho $set 18 #fbsetroot 1 Erro: é necessário especificar um dos seguintes argumentos: -solid, -mod, -gradient\n 2 Não foi possível criar átomos de pixmaps, desistindo! 3 -display ligação com display\n\ -mod altera padrão\n\ -foreground, -fg altera cor de primeiro plano\n\ -background, -bg altera cor de fundo\n\n\ -gradient textura do gradiente\n\ -from cor de início do gradiente\n\ -to cor do fim do gradiente\n\n\ -solid cor sólida\n\n\ -help mostra esta ajuda e sai\n $set 19 #main 1 Erro: '-display' requer um argumento 2 Erro de Alocação 3 Erro de Conversão 4 Fora dos Limites 5 Erro de Execução 6 Excepção Standard 7 Erro desconhecido 8 Erro: '-log' necessita um argumento 9 Ficheiro de Registo 10 Guardando Registo em 11 Erro: '-rc' necessita de um argumento 12 Erro: '-screen' necessita de um argumento 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ Website: http://www.fluxbox.org/\n\n\ -display \t\tusar ligação com o display.\n\ -screen \tcorrer nos ecrãs especificados apenas.\n\ -rc \t\t\tusar arquivo alternativo de recursos.\n\ -version\t\t\tmostrar versão e sair.\n\ -info\t\t\t\tmostrar alguma informação útil.\n\ -log \t\t\tguarda registos para um ficheiro.\n\ -help\t\t\t\tmostrar esta ajuda e sair.\n\n 14 aviso: não foi possível definir a variável de ambiente 'DISPLAY' $set 20 #layers 1 Acima de Doca 2 Em Baixo 3 Desktop 4 Doca 5 Normal 6 Topo fluxbox-1.3.5/nls/pt_PT/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020552 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749875.103812469 30 ctime=1360750008.895811613 fluxbox-1.3.5/nls/pt_PT/Translation.m0000644000175000017500000001446712106662425016615 0ustar00mgmg00000000000000$ codeset=ISO-8859-1 $set 1 #Align 1 Em Baixo no Centro 2 Em Baixo à Esquerda 3 Em Baixo à Direita 4 Horizontal 5 Esquerda 6 À Esquerda em Baixo 7 À Esquerda no Centro 8 À Esquerda em Cima 9 Relativo 10 Direita 11 À Direita em Baixo 12 À Direita no Centro 13 À Direita em Cima 14 Em Cima no Centro 15 Em Cima à Esquerda 16 Em Cima à Direita 17 Vertical $set 2 #BaseDisplay 1 Interrompendo... criando core\n 2 Desligando\n 3 %s: sinal %d recebido\n $set 3 #Common 1 Transparência 2 Esconder Automaticamente 3 Compilado 4 Opções de Compilação 5 Compilador 6 Versão do Compilador 7 init 8 keys 9 nls 10 menu 11 style 12 Por Omissão 13 desactivado 14 Erro 15 Versão do Fluxbox 16 Maximizar Sobre 17 Revisão GIT 18 Visível 19 Não existe opção de Fundo neste tema.\nConsulte o manual ou as FAQ. $set 4 #Configmenu 1 AntiAlias 2 Sobrepor Janela Quando Activa 3 Clicar Sobrepõe Janela 4 Foco na Janela Quando Clicada 5 Decoração em Janelas Temporárias 6 Roda do Rato muda Área de Trabalho 7 Foco na Última Janela Da Área de Trabalho 8 Modelo de Foco 9 Foco em Novas Janelas 10 Maximização Total 11 Simulação de Cores em Imagens 12 Movimento Opaco de Janelas 14 Foco na Janela Quando Apontada 15 Áreas de Trabalho Contínuas 16 Forçar Pseudo-Transparência 17 Transparência do Menu 18 Transparência 19 Transparência de Janelas com Foco 20 Transparência de Janelas sem Foco 21 Opções de Abas 22 Abas na Barra de Título 23 Dimensão de Abas Externas 24 Foco na Aba Quando Apontada 25 Foco na Aba Quando Clicada $set 5 #Ewmh 1 Fatal: Falta de memória, não é possível alocar lista de clientes para EWMH $set 6 #FbTkError 1 Aviso! Altura > 3200, definindo Altura = 3200 2 Aviso! Largura > 3200, definindo Largura = 3200 3 Aviso: não foi possível abrir fonte de recurso 4 Erro de alocação. 5 Erro na criação de pixmap 6 Não é possível criar XImage 7 Falha de leitura 8 Aviso: Não foi possível encontrar um formato válido para transparência. 9 Aviso: Não foi possível criar uma imagem transparente. 10 Aviso: Não foi possível criar um pixmap transparente. 11 Não foi possível encontrar o formato do ecrã(%d) 12 Sem memória 13 Sem memória ao alocar buffer de azul. 14 Sem memória ao alocar buffer de verde. 15 Sem memória ao alocar buffer de vermelho. 16 Falha de leitura de item de tema 17 visual não suportado 18 Definindo valor por defeito $set 7 #Fluxbox 1 Ficheiro de configuração é inválido! 2 Não foi possível abrir ficheiro de grupos 3 Não foi possível abrir a base de dados 4 Tentar de novo com 5 Aviso! Não foi encontrado um ecrã onde mapear a janela! 6 Não é possível criar directoria %s 7 Não foram encontrados ecrãs para gerir.\nAssegure-se de que não tem outro gestor de janelas activo. 8 Erro no tratamento de expressão regular 9 Fatal! Só é possível haver uma instância da classe fluxbox. 10 Não é possível ligar ao servidor X.\nAssegure-se de que inicia o X antes do Fluxbox. 11 Aviso: Servidor X não suporta traduções 12 Aviso: Não é possível definir modificadores localizados $set 8 #Gnome 1 Fatal: Sem memória, não é possível alocar lista de clientes para GNOME $set 9 #Keys 1 Teclas: Erro na linha 2 Teclas: Falha ao fundir àrvore de atalhos de teclas! 3 Teclas: Tecla/Modificador inválido na linha $set 10 #Menu 1 Configuração 2 Menu por Defeito do Fluxbox 3 Sair 4 Janelas Minimizadas 5 Camada... 6 No Monitor... 7 Posicionamento 8 Recarregar Configurações 9 Reiniciar 10 Aviso: definição [encondig] não-balanceada $set 11 #Remember 1 Decorações 2 Dimensões 3 Ir para Área de Trabalho 4 Camada 5 Lembrar... 6 Posição 7 Gravar ao sair 8 Enrolado 9 Sempre Visível 10 Item de Aplicação Desconhecido 11 Área de Trabalho 12 Monitor 13 Transparência $set 12 #Screen 1 BScreen::BScreen: ocorreu um erro ao interrogar o servidor X.\n outro gestor de janelas está a correr 2 L: %4d x A: %4d 3 BScreen::BScreen: gerindo ecrã %d usando visual 0x%lx, profundidade %d\n 4 L: %04d x A: %04d $set 13 #Slit 1 Clientes 2 Rodar para Baixo 3 Rodar para Cima 4 Direcção 5 Camada 6 Monitor 7 Posicionamento 8 Slit 9 Gravar Slitlist $set 14 #Toolbar 1 Editar o nome da Área de Trabalho 2 Modo da Barra de Janelas 3 Todas as Janelas 4 Apenas Janelas Minimizadas 5 Nenhuma 6 Área de Trabalho 7 Apenas Janelas Minimizadas da Área de Trabalho 8 Camada da Barra de Ferramentas 9 Barra de Ferramentas no Monitor 10 Posicionamento 11 Barra de Ferramentas 12 Dimensão em percentagem 13 Relógio: 24h 14 Relógio: 12h 15 Editar Formato do Relógio 16 Mostrar Imagens 17 Todas Excepto Janelas Minimizadas 18 Sem Janelas Minimizadas da Área de Trabalho $set 15 #Window 1 Sem Nome $set 16 #Windowmenu 1 Fechar 2 Minimizar 3 Camada 4 Desfocalizar 5 Maximizar 6 Focalizar 7 Enviar Para ... 8 Enrolar 9 Sempre Visível 10 Forçar Terminar 11 Usar Valores Padrão $set 17 #Workspace 1 Área de Trabalho %d 2 Áreas de Trabalho 3 Nova Área de Trabalho 4 Remover Última Área de Trabalho $set 18 #fbsetroot 1 Erro: é necessário especificar um dos seguintes argumentos: -solid, -mod, -gradient\n 2 Não foi possível criar átomos de pixmaps, desistindo! 3 -display ligação com display\n\ -mod altera padrão\n\ -foreground, -fg altera cor de primeiro plano\n\ -background, -bg altera cor de fundo\n\n\ -gradient textura do gradiente\n\ -from cor de início do gradiente\n\ -to cor do fim do gradiente\n\n\ -solid cor sólida\n\n\ -help mostra esta ajuda e sai\n $set 19 #main 1 Erro: '-display' requer um argumento 2 Erro de Alocação 3 Erro de Conversão 4 Fora dos Limites 5 Erro de Execução 6 Excepção Standard 7 Erro desconhecido 8 Erro: '-log' necessita um argumento 9 Ficheiro de Registo 10 Guardando Registo em 11 Erro: '-rc' necessita de um argumento 12 Erro: '-screen' necessita de um argumento 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ Website: http://www.fluxbox.org/\n\n\ -display \t\tusar ligação com o display.\n\ -screen \tcorrer nos ecrãs especificados apenas.\n\ -rc \t\t\tusar arquivo alternativo de recursos.\n\ -version\t\t\tmostrar versão e sair.\n\ -info\t\t\t\tmostrar alguma informação útil.\n\ -log \t\t\tguarda registos para um ficheiro.\n\ -help\t\t\t\tmostrar esta ajuda e sair.\n\n 14 aviso: não foi possível definir a variável de ambiente 'DISPLAY' $set 20 #layers 1 Acima de Doca 2 Em Baixo 3 Desktop 4 Doca 5 Normal 6 Topo fluxbox-1.3.5/nls/pt_PT/PaxHeaders.25974/Makefile.in0000644000175000017500000000013112106662604020141 xustar000000000000000029 mtime=1360749956.26781195 30 atime=1360750003.931811645 30 ctime=1360750008.895811613 fluxbox-1.3.5/nls/pt_PT/Makefile.in0000644000175000017500000002715412106662604016202 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/pt_PT/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/pt_PT DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = pt_PT SRC_CODESET = ISO-8859-1 DEST_CODESETS = ISO-8859-1 UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/pt_PT/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/pt_PT/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/pt_PT/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020132 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749854.115812604 30 ctime=1360750008.895811613 fluxbox-1.3.5/nls/pt_PT/Makefile.am0000644000175000017500000000301012106662425016153 0ustar00mgmg00000000000000# nls/pt_PT/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = pt_PT SRC_CODESET = ISO-8859-1 DEST_CODESETS = ISO-8859-1 UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/it_IT0000644000175000017500000000013212106662665016011 xustar000000000000000030 mtime=1360750005.923811632 30 atime=1360750008.895811613 30 ctime=1360750008.895811613 fluxbox-1.3.5/nls/it_IT/0000755000175000017500000000000012106662665014115 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/it_IT/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013112106662463020776 xustar000000000000000029 mtime=1360749875.06781247 30 atime=1360749875.083812469 30 ctime=1360750008.895811613 fluxbox-1.3.5/nls/it_IT/generated-UTF-8.m0000644000175000017500000001507012106662463017031 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 In basso al centro 2 In basso a sinistra 3 In basso a destra 6 A sinistra in basso 7 A sinistra al centro 8 A sinistra in alto 11 A destra in basso 12 A destra al centro 13 A destra in alto 14 In alto al centro 15 In alto a sinistra 16 In alto a destra $set 2 #BaseDisplay 1 Interruzione... core dump\n 2 Arresto\n 3 %s: ricevuto segnale %d\n $set 3 #Common 1 Canale alfa 2 Nascondi automaticamente 3 Compilato 4 Opzioni compilate 5 Compilatore 6 Versione del compilatore 7 init 8 keys 9 nls 10 menu 11 style 12 Predefiniti 13 disabilitata 14 Errore 15 Versione di Fluxbox 16 Ingrandisci sopra tutto 17 Revisione GIT 18 Visibile 19 In questo tema non è specificata un'opzione background.\nConsultare il manuale o leggere le FAQ. $set 4 #Configmenu 2 In primo piano automaticamente 3 In primo piano al click 4 Clicca per avere il focus 8 Tipo di focus 9 Dai il focus alle nuove finestre 10 Massimo ingrandimento 12 Mostra il contenuto spostando le finestre 13 Focus al passaggio del mouse (modalità Strict) 14 Focus al passaggio del mouse 15 Cambia area di lavoro trascinando le finestre 16 Forza pseudo trasparenza 17 Canale alfa del menù 18 Trasparenza 19 Canale alfa della finestra focalizzata 20 Canale alfa della finestra non focalizzata 21 Opzioni tab 22 Tab nella barra del titolo 23 Larghezza del tab esterno 24 Clicca sul tab per avere il focus 25 Focus al passaggio del mouse sul tab 26 Opzioni ingrandimento 27 Ignora incremento di ridimensionamento 28 Disabilita movimento 29 Disabilita ridimensionamento $set 6 #FbTkError 1 Attenzione! Altezza maggiore di 3200, sto impostando l'altezza a 3200 2 Attenzione! Larghezza maggiore di 3200, sto impostando la larghezza a 3200 3 Attenzione: impossibile caricare il carattere di riserva 4 Errore di allocazione. 5 Errore durante la creazione pixmap 6 Impossibile creare XImage 7 Impossibile leggere 8 Attenzione: impossibile trovare un formato valido per il canale alfa. 9 Attenzione: impossibile creare l'immagine con canale alfa. 10 Attenzione: impossibile creare la pixmap con canale alfa. 11 Impossibile trovare un formato per lo schermo(%d) 12 Memoria esaurita 13 Memoria esaurita durante l'allocazione del buffer blu. 14 Memoria esaurita durante l'allocazione del buffer verde. 15 Memoria esaurita durante l'allocazione del buffer rosso. 16 Impossibile leggere l'elemento del tema 17 visuale non supportata 18 Impostazione valore predefinito $set 7 #Fluxbox 1 Il nome del rc non è valido! 3 Impossibile caricare il database 4 Nuovo tentativo con 5 Attenzione! Impossibile trovare lo schermo su cui disegnare una finestra! 6 Impossibile creare la directory %s 7 Impossibile trovare schermi da gestire.\nAssicurarsi di non avere un altro window manager in esecuzione. 8 Errore nell'analisi dell'espressione regolare 9 Errore fatale! Può esserci solo un'istanza di una classe fluxbox. 10 Impossibile connettersi al server X.\nAssicurarsi di aver avviato X prima di Fluxbox. 11 Attenzione: il server X non gestisce la localizzazione 12 Attenzione: impossibile impostare i modificatori di localizzazione $set 9 #Keys 1 Keys: errore alla linea 3 Keys: chiave o modificatore non valido alla linea $set 10 #Menu 1 Configurazione 2 Menù di Fluxbox predefinito 3 Uscita 4 Icone 5 Livello... 6 Sul monitor... 7 Posizionamento 8 Ricarica configurazione 9 Riavvio 10 Attenzione: tag [encoding] non bilanciati $set 11 #Remember 1 Decorazioni 2 Dimensioni 3 Passa ad area di lavoro 4 Livello 5 Ricorda... 6 Posizione 7 Salva alla chiusura 8 Ridotta a barra 9 Su tutte le aree di lavoro 11 Area di lavoro 12 Monitor 13 Trasparenza 14 Ridotta 15 Ingrandita 16 A pieno schermo $set 12 #Screen 1 BScreen::BScreen: si è verificato un errore interrogando il server X.\n sul display è già in esecuzione un altro window manager 2 W: %4d x H: %4d 3 BScreen::BScreen: gestione dello schermo %d usando visuale 0x%lx, profondità %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Client 2 Sposta in basso 3 Sposta in alto 4 Direzione dello slit: 5 Livello dello slit 6 Slit sul monitor 7 Posizionamento dello slit 8 Slit 9 Salva la lista dello slit $set 14 #Toolbar 1 Cambia nome a quest'area di lavoro 2 Modalità delle icone della barra 3 Tutte le finestre 4 Icone 5 Nessuna 6 Area di lavoro 7 Icone dell'area di lavoro 8 Livello della barra degli strumenti 9 Barra degli strumenti sul monitor 10 Posizionamento della barra degli strumenti 11 Barra degli strumenti 12 Percentuale della larghezza della barra degli strumenti 13 Orologio: 24h 14 Orologio: 12h 15 Modifica il formato dell'orologio 16 Mostra le immagini 17 Nessuna icona 18 Nessuna icona per l'area di lavoro $set 15 #Window 1 Senza nome $set 16 #Windowmenu 1 Chiudi 2 Riduci a icona 3 Livello 4 Sullo sfondo 5 Ingrandisci 6 In primo piano 7 Invia a ... 8 Riduci a barra 9 Su tutte le aree di lavoro 12 Imposta il titolo della finestra $set 17 #Workspace 1 Area di lavoro %d 2 Aree di lavoro 3 Crea una nuova 4 Elimina l'ultima $set 18 #fbsetroot 1 errore: specificare una delle opzioni : -solid, -mod, -gradient\n 2 Impossibile creare atomi pixmap, abbandono! 3 -display connessione al display\n\ -mod schema\n\ -foreground, -fg colore di primo piano nello schema\n\ -background, -bg colore di sfondo nello schema\n\n\ -gradient tipo di gradazione\n\ -from colore di partenza della gradazione\n\ -to colore finale della gradazione\n\n\ -solid colore pieno\n\n\ -help mostra questo messaggio ed esce\n $set 19 #main 1 errore: '-display' richiede un argomento 2 Bad Alloc 3 Bad cast 4 Fuori campo 5 Errore di runtime 6 Eccezione standard 7 Errore sconosciuto 8 errore: '-log' richiede un argomento 9 File di log 10 Registrazione su 11 errore: '-rc' richiede un argomento 12 errore: '-screen' richiede un argomento 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ Sito web: http://www.fluxbox.org/\n\n\ -display \t\tusa la connessione al display.\n\ -screen \tesegue solo sugli schermi specificati.\n\ -rc \t\t\tusa un file di configurazione alternativo.\n\ -version\t\t\tmostra la versione ed esce.\n\ -info\t\t\t\tmostra alcune informazioni utili.\n\ -list-commands\t\t\telenca tutti i comandi validi.\n\ -sync\t\t\t\tsincronizza con il server X per scopi di debug.\n\ -log \t\t\tregistra l'output su file.\n\ -help\t\t\t\tmostra questo messaggio di aiuto ed esce.\n\n 14 attenzione: impossibile impostare la variabile d'ambiente 'DISPLAY' $set 20 #layers 1 Sopra il dock 2 Sotto tutto 3 Desktop 4 Dock 5 Normale 6 Sopra tutto fluxbox-1.3.5/nls/it_IT/PaxHeaders.25974/generated-ISO-8859-1.m0000644000175000017500000000013112106662463021376 xustar000000000000000029 mtime=1360749875.06381247 30 atime=1360749875.079812469 30 ctime=1360750008.899811613 fluxbox-1.3.5/nls/it_IT/generated-ISO-8859-1.m0000644000175000017500000001506212106662463017432 0ustar00mgmg00000000000000$ codeset=ISO-8859-1 $set 1 #Align 1 In basso al centro 2 In basso a sinistra 3 In basso a destra 6 A sinistra in basso 7 A sinistra al centro 8 A sinistra in alto 11 A destra in basso 12 A destra al centro 13 A destra in alto 14 In alto al centro 15 In alto a sinistra 16 In alto a destra $set 2 #BaseDisplay 1 Interruzione... core dump\n 2 Arresto\n 3 %s: ricevuto segnale %d\n $set 3 #Common 1 Canale alfa 2 Nascondi automaticamente 3 Compilato 4 Opzioni compilate 5 Compilatore 6 Versione del compilatore 7 init 8 keys 9 nls 10 menu 11 style 12 Predefiniti 13 disabilitata 14 Errore 15 Versione di Fluxbox 16 Ingrandisci sopra tutto 17 Revisione GIT 18 Visibile 19 In questo tema non è specificata un'opzione background.\nConsultare il manuale o leggere le FAQ. $set 4 #Configmenu 2 In primo piano automaticamente 3 In primo piano al click 4 Clicca per avere il focus 8 Tipo di focus 9 Dai il focus alle nuove finestre 10 Massimo ingrandimento 12 Mostra il contenuto spostando le finestre 13 Focus al passaggio del mouse (modalità Strict) 14 Focus al passaggio del mouse 15 Cambia area di lavoro trascinando le finestre 16 Forza pseudo trasparenza 17 Canale alfa del menù 18 Trasparenza 19 Canale alfa della finestra focalizzata 20 Canale alfa della finestra non focalizzata 21 Opzioni tab 22 Tab nella barra del titolo 23 Larghezza del tab esterno 24 Clicca sul tab per avere il focus 25 Focus al passaggio del mouse sul tab 26 Opzioni ingrandimento 27 Ignora incremento di ridimensionamento 28 Disabilita movimento 29 Disabilita ridimensionamento $set 6 #FbTkError 1 Attenzione! Altezza maggiore di 3200, sto impostando l'altezza a 3200 2 Attenzione! Larghezza maggiore di 3200, sto impostando la larghezza a 3200 3 Attenzione: impossibile caricare il carattere di riserva 4 Errore di allocazione. 5 Errore durante la creazione pixmap 6 Impossibile creare XImage 7 Impossibile leggere 8 Attenzione: impossibile trovare un formato valido per il canale alfa. 9 Attenzione: impossibile creare l'immagine con canale alfa. 10 Attenzione: impossibile creare la pixmap con canale alfa. 11 Impossibile trovare un formato per lo schermo(%d) 12 Memoria esaurita 13 Memoria esaurita durante l'allocazione del buffer blu. 14 Memoria esaurita durante l'allocazione del buffer verde. 15 Memoria esaurita durante l'allocazione del buffer rosso. 16 Impossibile leggere l'elemento del tema 17 visuale non supportata 18 Impostazione valore predefinito $set 7 #Fluxbox 1 Il nome del rc non è valido! 3 Impossibile caricare il database 4 Nuovo tentativo con 5 Attenzione! Impossibile trovare lo schermo su cui disegnare una finestra! 6 Impossibile creare la directory %s 7 Impossibile trovare schermi da gestire.\nAssicurarsi di non avere un altro window manager in esecuzione. 8 Errore nell'analisi dell'espressione regolare 9 Errore fatale! Può esserci solo un'istanza di una classe fluxbox. 10 Impossibile connettersi al server X.\nAssicurarsi di aver avviato X prima di Fluxbox. 11 Attenzione: il server X non gestisce la localizzazione 12 Attenzione: impossibile impostare i modificatori di localizzazione $set 9 #Keys 1 Keys: errore alla linea 3 Keys: chiave o modificatore non valido alla linea $set 10 #Menu 1 Configurazione 2 Menù di Fluxbox predefinito 3 Uscita 4 Icone 5 Livello... 6 Sul monitor... 7 Posizionamento 8 Ricarica configurazione 9 Riavvio 10 Attenzione: tag [encoding] non bilanciati $set 11 #Remember 1 Decorazioni 2 Dimensioni 3 Passa ad area di lavoro 4 Livello 5 Ricorda... 6 Posizione 7 Salva alla chiusura 8 Ridotta a barra 9 Su tutte le aree di lavoro 11 Area di lavoro 12 Monitor 13 Trasparenza 14 Ridotta 15 Ingrandita 16 A pieno schermo $set 12 #Screen 1 BScreen::BScreen: si è verificato un errore interrogando il server X.\n sul display è già in esecuzione un altro window manager 2 W: %4d x H: %4d 3 BScreen::BScreen: gestione dello schermo %d usando visuale 0x%lx, profondità %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Client 2 Sposta in basso 3 Sposta in alto 4 Direzione dello slit: 5 Livello dello slit 6 Slit sul monitor 7 Posizionamento dello slit 8 Slit 9 Salva la lista dello slit $set 14 #Toolbar 1 Cambia nome a quest'area di lavoro 2 Modalità delle icone della barra 3 Tutte le finestre 4 Icone 5 Nessuna 6 Area di lavoro 7 Icone dell'area di lavoro 8 Livello della barra degli strumenti 9 Barra degli strumenti sul monitor 10 Posizionamento della barra degli strumenti 11 Barra degli strumenti 12 Percentuale della larghezza della barra degli strumenti 13 Orologio: 24h 14 Orologio: 12h 15 Modifica il formato dell'orologio 16 Mostra le immagini 17 Nessuna icona 18 Nessuna icona per l'area di lavoro $set 15 #Window 1 Senza nome $set 16 #Windowmenu 1 Chiudi 2 Riduci a icona 3 Livello 4 Sullo sfondo 5 Ingrandisci 6 In primo piano 7 Invia a ... 8 Riduci a barra 9 Su tutte le aree di lavoro 12 Imposta il titolo della finestra $set 17 #Workspace 1 Area di lavoro %d 2 Aree di lavoro 3 Crea una nuova 4 Elimina l'ultima $set 18 #fbsetroot 1 errore: specificare una delle opzioni : -solid, -mod, -gradient\n 2 Impossibile creare atomi pixmap, abbandono! 3 -display connessione al display\n\ -mod schema\n\ -foreground, -fg colore di primo piano nello schema\n\ -background, -bg colore di sfondo nello schema\n\n\ -gradient tipo di gradazione\n\ -from colore di partenza della gradazione\n\ -to colore finale della gradazione\n\n\ -solid colore pieno\n\n\ -help mostra questo messaggio ed esce\n $set 19 #main 1 errore: '-display' richiede un argomento 2 Bad Alloc 3 Bad cast 4 Fuori campo 5 Errore di runtime 6 Eccezione standard 7 Errore sconosciuto 8 errore: '-log' richiede un argomento 9 File di log 10 Registrazione su 11 errore: '-rc' richiede un argomento 12 errore: '-screen' richiede un argomento 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ Sito web: http://www.fluxbox.org/\n\n\ -display \t\tusa la connessione al display.\n\ -screen \tesegue solo sugli schermi specificati.\n\ -rc \t\t\tusa un file di configurazione alternativo.\n\ -version\t\t\tmostra la versione ed esce.\n\ -info\t\t\t\tmostra alcune informazioni utili.\n\ -list-commands\t\t\telenca tutti i comandi validi.\n\ -sync\t\t\t\tsincronizza con il server X per scopi di debug.\n\ -log \t\t\tregistra l'output su file.\n\ -help\t\t\t\tmostra questo messaggio di aiuto ed esce.\n\n 14 attenzione: impossibile impostare la variabile d'ambiente 'DISPLAY' $set 20 #layers 1 Sopra il dock 2 Sotto tutto 3 Desktop 4 Dock 5 Normale 6 Sopra tutto fluxbox-1.3.5/nls/it_IT/PaxHeaders.25974/Translation.m0000644000175000017500000000013112106662425020533 xustar000000000000000030 mtime=1360749845.883812656 29 atime=1360749875.06381247 30 ctime=1360750008.899811613 fluxbox-1.3.5/nls/it_IT/Translation.m0000644000175000017500000001506212106662425016567 0ustar00mgmg00000000000000$ codeset=ISO-8859-1 $set 1 #Align 1 In basso al centro 2 In basso a sinistra 3 In basso a destra 6 A sinistra in basso 7 A sinistra al centro 8 A sinistra in alto 11 A destra in basso 12 A destra al centro 13 A destra in alto 14 In alto al centro 15 In alto a sinistra 16 In alto a destra $set 2 #BaseDisplay 1 Interruzione... core dump\n 2 Arresto\n 3 %s: ricevuto segnale %d\n $set 3 #Common 1 Canale alfa 2 Nascondi automaticamente 3 Compilato 4 Opzioni compilate 5 Compilatore 6 Versione del compilatore 7 init 8 keys 9 nls 10 menu 11 style 12 Predefiniti 13 disabilitata 14 Errore 15 Versione di Fluxbox 16 Ingrandisci sopra tutto 17 Revisione GIT 18 Visibile 19 In questo tema non è specificata un'opzione background.\nConsultare il manuale o leggere le FAQ. $set 4 #Configmenu 2 In primo piano automaticamente 3 In primo piano al click 4 Clicca per avere il focus 8 Tipo di focus 9 Dai il focus alle nuove finestre 10 Massimo ingrandimento 12 Mostra il contenuto spostando le finestre 13 Focus al passaggio del mouse (modalità Strict) 14 Focus al passaggio del mouse 15 Cambia area di lavoro trascinando le finestre 16 Forza pseudo trasparenza 17 Canale alfa del menù 18 Trasparenza 19 Canale alfa della finestra focalizzata 20 Canale alfa della finestra non focalizzata 21 Opzioni tab 22 Tab nella barra del titolo 23 Larghezza del tab esterno 24 Clicca sul tab per avere il focus 25 Focus al passaggio del mouse sul tab 26 Opzioni ingrandimento 27 Ignora incremento di ridimensionamento 28 Disabilita movimento 29 Disabilita ridimensionamento $set 6 #FbTkError 1 Attenzione! Altezza maggiore di 3200, sto impostando l'altezza a 3200 2 Attenzione! Larghezza maggiore di 3200, sto impostando la larghezza a 3200 3 Attenzione: impossibile caricare il carattere di riserva 4 Errore di allocazione. 5 Errore durante la creazione pixmap 6 Impossibile creare XImage 7 Impossibile leggere 8 Attenzione: impossibile trovare un formato valido per il canale alfa. 9 Attenzione: impossibile creare l'immagine con canale alfa. 10 Attenzione: impossibile creare la pixmap con canale alfa. 11 Impossibile trovare un formato per lo schermo(%d) 12 Memoria esaurita 13 Memoria esaurita durante l'allocazione del buffer blu. 14 Memoria esaurita durante l'allocazione del buffer verde. 15 Memoria esaurita durante l'allocazione del buffer rosso. 16 Impossibile leggere l'elemento del tema 17 visuale non supportata 18 Impostazione valore predefinito $set 7 #Fluxbox 1 Il nome del rc non è valido! 3 Impossibile caricare il database 4 Nuovo tentativo con 5 Attenzione! Impossibile trovare lo schermo su cui disegnare una finestra! 6 Impossibile creare la directory %s 7 Impossibile trovare schermi da gestire.\nAssicurarsi di non avere un altro window manager in esecuzione. 8 Errore nell'analisi dell'espressione regolare 9 Errore fatale! Può esserci solo un'istanza di una classe fluxbox. 10 Impossibile connettersi al server X.\nAssicurarsi di aver avviato X prima di Fluxbox. 11 Attenzione: il server X non gestisce la localizzazione 12 Attenzione: impossibile impostare i modificatori di localizzazione $set 9 #Keys 1 Keys: errore alla linea 3 Keys: chiave o modificatore non valido alla linea $set 10 #Menu 1 Configurazione 2 Menù di Fluxbox predefinito 3 Uscita 4 Icone 5 Livello... 6 Sul monitor... 7 Posizionamento 8 Ricarica configurazione 9 Riavvio 10 Attenzione: tag [encoding] non bilanciati $set 11 #Remember 1 Decorazioni 2 Dimensioni 3 Passa ad area di lavoro 4 Livello 5 Ricorda... 6 Posizione 7 Salva alla chiusura 8 Ridotta a barra 9 Su tutte le aree di lavoro 11 Area di lavoro 12 Monitor 13 Trasparenza 14 Ridotta 15 Ingrandita 16 A pieno schermo $set 12 #Screen 1 BScreen::BScreen: si è verificato un errore interrogando il server X.\n sul display è già in esecuzione un altro window manager 2 W: %4d x H: %4d 3 BScreen::BScreen: gestione dello schermo %d usando visuale 0x%lx, profondità %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Client 2 Sposta in basso 3 Sposta in alto 4 Direzione dello slit: 5 Livello dello slit 6 Slit sul monitor 7 Posizionamento dello slit 8 Slit 9 Salva la lista dello slit $set 14 #Toolbar 1 Cambia nome a quest'area di lavoro 2 Modalità delle icone della barra 3 Tutte le finestre 4 Icone 5 Nessuna 6 Area di lavoro 7 Icone dell'area di lavoro 8 Livello della barra degli strumenti 9 Barra degli strumenti sul monitor 10 Posizionamento della barra degli strumenti 11 Barra degli strumenti 12 Percentuale della larghezza della barra degli strumenti 13 Orologio: 24h 14 Orologio: 12h 15 Modifica il formato dell'orologio 16 Mostra le immagini 17 Nessuna icona 18 Nessuna icona per l'area di lavoro $set 15 #Window 1 Senza nome $set 16 #Windowmenu 1 Chiudi 2 Riduci a icona 3 Livello 4 Sullo sfondo 5 Ingrandisci 6 In primo piano 7 Invia a ... 8 Riduci a barra 9 Su tutte le aree di lavoro 12 Imposta il titolo della finestra $set 17 #Workspace 1 Area di lavoro %d 2 Aree di lavoro 3 Crea una nuova 4 Elimina l'ultima $set 18 #fbsetroot 1 errore: specificare una delle opzioni : -solid, -mod, -gradient\n 2 Impossibile creare atomi pixmap, abbandono! 3 -display connessione al display\n\ -mod schema\n\ -foreground, -fg colore di primo piano nello schema\n\ -background, -bg colore di sfondo nello schema\n\n\ -gradient tipo di gradazione\n\ -from colore di partenza della gradazione\n\ -to colore finale della gradazione\n\n\ -solid colore pieno\n\n\ -help mostra questo messaggio ed esce\n $set 19 #main 1 errore: '-display' richiede un argomento 2 Bad Alloc 3 Bad cast 4 Fuori campo 5 Errore di runtime 6 Eccezione standard 7 Errore sconosciuto 8 errore: '-log' richiede un argomento 9 File di log 10 Registrazione su 11 errore: '-rc' richiede un argomento 12 errore: '-screen' richiede un argomento 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ Sito web: http://www.fluxbox.org/\n\n\ -display \t\tusa la connessione al display.\n\ -screen \tesegue solo sugli schermi specificati.\n\ -rc \t\t\tusa un file di configurazione alternativo.\n\ -version\t\t\tmostra la versione ed esce.\n\ -info\t\t\t\tmostra alcune informazioni utili.\n\ -list-commands\t\t\telenca tutti i comandi validi.\n\ -sync\t\t\t\tsincronizza con il server X per scopi di debug.\n\ -log \t\t\tregistra l'output su file.\n\ -help\t\t\t\tmostra questo messaggio di aiuto ed esce.\n\n 14 attenzione: impossibile impostare la variabile d'ambiente 'DISPLAY' $set 20 #layers 1 Sopra il dock 2 Sotto tutto 3 Desktop 4 Dock 5 Normale 6 Sopra tutto fluxbox-1.3.5/nls/it_IT/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662604020124 xustar000000000000000030 mtime=1360749956.043811951 30 atime=1360750003.755811646 30 ctime=1360750008.899811613 fluxbox-1.3.5/nls/it_IT/Makefile.in0000644000175000017500000002715412106662604016164 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/it_IT/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/it_IT DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = it_IT SRC_CODESET = ISO-8859-1 DEST_CODESETS = ISO-8859-1 UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/it_IT/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/it_IT/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/it_IT/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020114 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749853.895812605 30 ctime=1360750008.899811613 fluxbox-1.3.5/nls/it_IT/Makefile.am0000644000175000017500000000301012106662425016135 0ustar00mgmg00000000000000# nls/it_IT/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = it_IT SRC_CODESET = ISO-8859-1 DEST_CODESETS = ISO-8859-1 UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/tr_TR0000644000175000017500000000013212106662665016033 xustar000000000000000030 mtime=1360750005.887811632 30 atime=1360750008.903811613 30 ctime=1360750008.903811613 fluxbox-1.3.5/nls/tr_TR/0000755000175000017500000000000012106662665014137 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/tr_TR/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013012106662463021017 xustar000000000000000029 mtime=1360749875.02381247 29 atime=1360749875.03981247 30 ctime=1360750008.903811613 fluxbox-1.3.5/nls/tr_TR/generated-UTF-8.m0000644000175000017500000001515612106662463017060 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Alt Orta 2 Alt Sol 3 Alt SaÄŸ 4 Yatay 5 Sol 6 Sol Alt 7 Sol Orta 8 Sol Üst 9 BaÄŸlı 10 SaÄŸ 11 SaÄŸ Alt 12 SaÄŸ Orta 13 SaÄŸ üst 14 Üst Orta 15 Üst Sol 16 Üst SaÄŸ 17 Dikey 18 Orta 19 Üst 20 Alt $set 2 #BaseDisplay 1 İptal Ediliyor... çekirdek dökümü alınıyor\n 2 Kapatılıyor\n 3 %s: %d sinyali alındı\n $set 3 #Common 1 Alfa 2 Otomatik Gizle 3 DerlenmiÅŸ 4 DerlenmiÅŸ ayarlar 5 Derleyici 6 Derleyici versiyonu 7 baÅŸlat 8 tuÅŸlar 9 nls 10 menü 11 stil 12 Varsayılanlar 13 Devre Dışı 14 Hata 15 Fluxbox versiyonu 16 En üst seviyeye çıkart 17 GIT Revizyonu 18 Görünür 19 Bu stil için arkaplan seçeneÄŸi yok.\nLütfen kılavuzu ya da SSS'yi okuyun. $set 4 #Configmenu 1 Kenar DüzleÅŸtirme 2 Otomatik Büyütme 3 Tıklayarak Büyütme 4 Odaklamak için Tıklayın 5 Geçici Pencereleri Süsler 6 Masaüstleri Arası Fare TekerleÄŸi ile GeçiÅŸ 7 Çalışma Alanı DeÄŸiÅŸtiÄŸinde Pencereye Odaklan 8 Kalıba Odakla 9 Yeni Pencereye Odakla 10 Tamamen büyütme 11 Resim titretme 12 Opak Pencere Taşıma 14 Fare Odağı 15 Çalışma Alanı Sapması 16 Sahte Transparanlık için Zorla 17 Alfa Menü 18 Transparanlık 19 Odaklaılmamış Alfa Pencere 20 Odaklanılmamış Alfa Pencere 21 Sekme ÖzellikleriTab Options 22 BaÅŸlık ÇubuÄŸunda Sekmeler 23 Harici Sekme GeniÅŸliÄŸi 24 Tıklama Sekmesi Odağı 25 Fare Sekmesi Odağı 26 Ayarları En Üst Düzeye Getir 27 Yeniden Boyutlandırma Arttırmasını Görmezden Gel 28 Taşımayı Devre Dışı Bırak 29 Yeniden Boyutlandırmayı Devre Dışı Bırak $set 5 #Ewmh 1 Ölümcül: Bellek Yetersiz, EWMH istemci listesi için ayrılamıyor $set 6 #FbTkError 1 Uyarı! Boy > 3200, Boy 3200 olarak ayarlanıyor 2 Uyarı! En > 3200, En 3200 olarak ayarlanıyor 3 Uyarı! Son çare fontu yüklenemiyor 4 Ayırma Hatası 5 Pixmap oluÅŸtururken Hata 6 XImage oluÅŸturulamıyor 7 Okunamıyor 8 Uyarı: Alfa için uygun biçim bulunamadı. 9 Uyarı: Alfa resmi oluÅŸturulamadı. 10 Uyarı: Alfa pixmap'ı oluÅŸturulamadı. 11 (%d) ekranı için biçim bulunamadı 12 Bellek yetersiz 13 Mavi tampon için bellek ayrılırken bellek yetersiz. 14 YeÅŸil tampon için bellek yarılırken bellek yetersiz. 15 Kırmızı tampon için bellek ayrılırken bellek yetersiz. 16 Tema öğesi okunamadı 17 Desteklenmeyen görsel 18 Varsayılan deÄŸer ayarlanıyor $set 7 #Fluxbox 1 rc dosya adı geçersiz! 2 group dosyası yüklenemedi 3 Veritabanı yüklenemedi 4 Tekrar deneniyor: 5 Uyarı! Pencereleri eÅŸleyecek ekran bulunamıyor! 6 %s dizini oluÅŸturulamıyor 7 Düzenlenecek pencereler bulunamıyor.\nBaÅŸka bir penceere yöneticisinin çalışmadığından emin olun. 8 Düzenli ifadeler (regular expression) ayrıştırılırken hata 9 Ölümcül! Fluxbox sınıflarından sadece bir örnek olabilir. 10 X sunucusuna baÄŸlanılamıyor.\nFluxbox'u baÅŸlatmadan önce X'i baÅŸlattığınızdan emin olun. 11 Uyarı: X sunucusu yerelleÅŸtirmeyi desteklemiyor 12 Uyarı: YerelleÅŸtirme tanımlayıcıları ayarlanamıyor $set 8 #Gnome 1 Ölümcül: Bellek yetersiz, GNOME istemci listesi için yer ayrılamıyor $set 9 #Keys 1 TuÅŸlar: Satırda hata 2 TuÅŸlar: TuÅŸ aÄŸacı birleÅŸtirilirken hata! 3 TuÅŸlar: Satırda geçersiz tuÅŸ/tanımlayıcı $set 10 #Menu 1 Yapılandırma 2 Fluxbox varsayılan menü 3 Çıkış 4 Simgeler 5 Katman... 6 En baÅŸta... 7 YerleÅŸtirme 8 Ayarları yeniden yükle 9 Yeniden baÅŸlat 10 Uyarı: dengesiz [çözme] imler $set 11 #Remember 1 Süslemeler 2 Boyutlar 3 Çalışma alanına atlanıyor 4 Katman 5 Hatırla... 6 Pozisyon 7 Çıkışta kaydet 8 GölgelenmiÅŸ 9 Yapışkan 10 Bilinmeyen uygulama tuÅŸu 11 Çalışma Alanı 12 BaÅŸ 13 Transparanlık $set 12 #Screen 1 BScreen::BScreen: X sunucusu sorgulanırken hata oluÅŸtu.\n ÅŸu an ekranda diÄŸer pencere yöneticisi çalışıyor 2 E: %4d x B: %4d 3 BScreen::BScreen: %d ekranı düzenleniyor 0x%lx görseli, %d derinliÄŸi kullanılıyor\n 4 E: %04d x B: %04d $set 13 #Slit 1 İstemciler 2 Devir aÅŸağı 3 Devir yukarı 4 Kesit Yönü: 5 Kesit Katmanı 6 Kesit tepede 7 Kesit YerleÅŸimi 8 Kesit 9 Kesit listesini kaydet $set 14 #Toolbar 1 Åžu anki çalışma alanını yeniden adlandır 2 Simge çubuÄŸu modu 3 Bütün pencelerler 4 İkonlar 5 Hiç (None) 6 Çalışma alanı 7 Çalışma alanı simgeleri 8 Araç çubuÄŸu Katmanı 9 Araç çubuÄŸu en üstte 10 Araç çubuÄŸu yerleÅŸtirmesi 11 Araç çubuÄŸu 12 Araç çubuÄŸu geniÅŸlik yüzdesi 13 Saat: 24s 14 Saat: 12s 15 Saat Biçimini Düzenle 16 Resimleri Göster 17 Simge Yok 18 Çalışma alanı simgesi yok $set 15 #Window 1 İsimsiz $set 16 #Windowmenu 1 Kapat 2 Simge boyutuna küçült 3 Katman 4 Düşür 5 En büyük boya yetir 6 Büyüt 7 ...'a gönder 8 Gölge 9 Yapışkan 10 Öldür 11 Varsayılanları kullan 12 Pencere baÅŸlığını ayarla $set 17 #Workspace 1 Çalışma alanı %d 2 Çalışma Alanları 3 Yeni çalışma alanı 4 Sonuncuyu sil $set 18 #fbsetroot 1 Hata: Bunlardan en az birini belirtmelisiniz: -solid, -mod, -gradient\n 2 pixmap atomları oluÅŸturulamıyor, bırakılıyor! 3 -display baÄŸlantıyı görünltüler\n\ -mod kalıbı ayarlar\n\ -foreground, -fg önplan rengini ayarlar\n\ -background, -bg arkaplan rengini ayarlar\n\n\ -gradient doku eÄŸimi\n\ -from baÅŸlangıç renk eÄŸimi\n\ -to bitiÅŸ renk eÄŸimi\n\n\ -solid rengi katılaÅŸtırır\n\n\ -help bu yardım ekranını görüntüler ve çıkar\n $set 19 #main 1 hata: '-display' bir parametre ile birlikte kullanılıyor 2 Kötü ayırma 3 Kötü biçim 4 Aralık dışı 5 Çalışma zamanı hatası 6 Standart İstisna 7 Bilinmeyen hata 8 hata: '-log' bir parametre ile birlikte kullanılıyor 9 Günlük dosyası 10 Günlük tutuluyor: 11 hata: '-rc' bir parametre ile birlikte kullanılıyor 12 hata: '-screen' bir parametre ile birlikte kullanılıyor 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ Web sitesi: http://www.fluxbox.org/\n\n\ -display \t\tekran baÄŸlantısını kullan.\n\ -screen \tsadece belirlenen ekranlarda çalış.\n\ -rc \t\t\tulternatif kaynak dosyasını kullan.\n\ -version\t\t\tversiyonu görüntüle ve çık.\n\ -info\t\t\t\tyararlı bilgi görüntüler.\n\ -list-commands\t\t\tbütün geçerli tuÅŸ komutlarını listeler.\n\ -sync\t\t\t\tHata ayıklama için X sunucusu ile eÅŸzamanlar.\n\ -log \t\t\tgünlük çıktısını dosyaya yaz..\n\ -help\t\t\t\tbu yardım ekranını gösterir ve çıkar.\n\n 14 warning: çevre deÄŸiÅŸkeni 'DISPLAY' ayarlanamıyor $set 20 #layers 1 Dok'un üstü 2 Alt 3 Masaüstü 4 Dok 5 Normal 6 Üst fluxbox-1.3.5/nls/tr_TR/PaxHeaders.25974/generated-ISO-8859-9.m0000644000175000017500000000013012106662463021427 xustar000000000000000029 mtime=1360749875.02381247 29 atime=1360749875.03981247 30 ctime=1360750008.903811613 fluxbox-1.3.5/nls/tr_TR/generated-ISO-8859-9.m0000644000175000017500000001416612106662463017470 0ustar00mgmg00000000000000$ codeset=ISO-8859-9 $set 1 #Align 1 Alt Orta 2 Alt Sol 3 Alt Sað 4 Yatay 5 Sol 6 Sol Alt 7 Sol Orta 8 Sol Üst 9 Baðlý 10 Sað 11 Sað Alt 12 Sað Orta 13 Sað üst 14 Üst Orta 15 Üst Sol 16 Üst Sað 17 Dikey 18 Orta 19 Üst 20 Alt $set 2 #BaseDisplay 1 Ýptal Ediliyor... çekirdek dökümü alýnýyor\n 2 Kapatýlýyor\n 3 %s: %d sinyali alýndý\n $set 3 #Common 1 Alfa 2 Otomatik Gizle 3 Derlenmiþ 4 Derlenmiþ ayarlar 5 Derleyici 6 Derleyici versiyonu 7 baþlat 8 tuþlar 9 nls 10 menü 11 stil 12 Varsayýlanlar 13 Devre Dýþý 14 Hata 15 Fluxbox versiyonu 16 En üst seviyeye çýkart 17 GIT Revizyonu 18 Görünür 19 Bu stil için arkaplan seçeneði yok.\nLütfen kýlavuzu ya da SSS'yi okuyun. $set 4 #Configmenu 1 Kenar Düzleþtirme 2 Otomatik Büyütme 3 Týklayarak Büyütme 4 Odaklamak için Týklayýn 5 Geçici Pencereleri Süsler 6 Masaüstleri Arasý Fare Tekerleði ile Geçiþ 7 Çalýþma Alaný Deðiþtiðinde Pencereye Odaklan 8 Kalýba Odakla 9 Yeni Pencereye Odakla 10 Tamamen büyütme 11 Resim titretme 12 Opak Pencere Taþýma 14 Fare Odaðý 15 Çalýþma Alaný Sapmasý 16 Sahte Transparanlýk için Zorla 17 Alfa Menü 18 Transparanlýk 19 Odaklaýlmamýþ Alfa Pencere 20 Odaklanýlmamýþ Alfa Pencere 21 Sekme ÖzellikleriTab Options 22 Baþlýk Çubuðunda Sekmeler 23 Harici Sekme Geniþliði 24 Týklama Sekmesi Odaðý 25 Fare Sekmesi Odaðý 26 Ayarlarý En Üst Düzeye Getir 27 Yeniden Boyutlandýrma Arttýrmasýný Görmezden Gel 28 Taþýmayý Devre Dýþý Býrak 29 Yeniden Boyutlandýrmayý Devre Dýþý Býrak $set 5 #Ewmh 1 Ölümcül: Bellek Yetersiz, EWMH istemci listesi için ayrýlamýyor $set 6 #FbTkError 1 Uyarý! Boy > 3200, Boy 3200 olarak ayarlanýyor 2 Uyarý! En > 3200, En 3200 olarak ayarlanýyor 3 Uyarý! Son çare fontu yüklenemiyor 4 Ayýrma Hatasý 5 Pixmap oluþtururken Hata 6 XImage oluþturulamýyor 7 Okunamýyor 8 Uyarý: Alfa için uygun biçim bulunamadý. 9 Uyarý: Alfa resmi oluþturulamadý. 10 Uyarý: Alfa pixmap'ý oluþturulamadý. 11 (%d) ekraný için biçim bulunamadý 12 Bellek yetersiz 13 Mavi tampon için bellek ayrýlýrken bellek yetersiz. 14 Yeþil tampon için bellek yarýlýrken bellek yetersiz. 15 Kýrmýzý tampon için bellek ayrýlýrken bellek yetersiz. 16 Tema öðesi okunamadý 17 Desteklenmeyen görsel 18 Varsayýlan deðer ayarlanýyor $set 7 #Fluxbox 1 rc dosya adý geçersiz! 2 group dosyasý yüklenemedi 3 Veritabaný yüklenemedi 4 Tekrar deneniyor: 5 Uyarý! Pencereleri eþleyecek ekran bulunamýyor! 6 %s dizini oluþturulamýyor 7 Düzenlenecek pencereler bulunamýyor.\nBaþka bir penceere yöneticisinin çalýþmadýðýndan emin olun. 8 Düzenli ifadeler (regular expression) ayrýþtýrýlýrken hata 9 Ölümcül! Fluxbox sýnýflarýndan sadece bir örnek olabilir. 10 X sunucusuna baðlanýlamýyor.\nFluxbox'u baþlatmadan önce X'i baþlattýðýnýzdan emin olun. 11 Uyarý: X sunucusu yerelleþtirmeyi desteklemiyor 12 Uyarý: Yerelleþtirme tanýmlayýcýlarý ayarlanamýyor $set 8 #Gnome 1 Ölümcül: Bellek yetersiz, GNOME istemci listesi için yer ayrýlamýyor $set 9 #Keys 1 Tuþlar: Satýrda hata 2 Tuþlar: Tuþ aðacý birleþtirilirken hata! 3 Tuþlar: Satýrda geçersiz tuþ/tanýmlayýcý $set 10 #Menu 1 Yapýlandýrma 2 Fluxbox varsayýlan menü 3 Çýkýþ 4 Simgeler 5 Katman... 6 En baþta... 7 Yerleþtirme 8 Ayarlarý yeniden yükle 9 Yeniden baþlat 10 Uyarý: dengesiz [çözme] imler $set 11 #Remember 1 Süslemeler 2 Boyutlar 3 Çalýþma alanýna atlanýyor 4 Katman 5 Hatýrla... 6 Pozisyon 7 Çýkýþta kaydet 8 Gölgelenmiþ 9 Yapýþkan 10 Bilinmeyen uygulama tuþu 11 Çalýþma Alaný 12 Baþ 13 Transparanlýk $set 12 #Screen 1 BScreen::BScreen: X sunucusu sorgulanýrken hata oluþtu.\n þu an ekranda diðer pencere yöneticisi çalýþýyor 2 E: %4d x B: %4d 3 BScreen::BScreen: %d ekraný düzenleniyor 0x%lx görseli, %d derinliði kullanýlýyor\n 4 E: %04d x B: %04d $set 13 #Slit 1 Ýstemciler 2 Devir aþaðý 3 Devir yukarý 4 Kesit Yönü: 5 Kesit Katmaný 6 Kesit tepede 7 Kesit Yerleþimi 8 Kesit 9 Kesit listesini kaydet $set 14 #Toolbar 1 Þu anki çalýþma alanýný yeniden adlandýr 2 Simge çubuðu modu 3 Bütün pencelerler 4 Ýkonlar 5 Hiç (None) 6 Çalýþma alaný 7 Çalýþma alaný simgeleri 8 Araç çubuðu Katmaný 9 Araç çubuðu en üstte 10 Araç çubuðu yerleþtirmesi 11 Araç çubuðu 12 Araç çubuðu geniþlik yüzdesi 13 Saat: 24s 14 Saat: 12s 15 Saat Biçimini Düzenle 16 Resimleri Göster 17 Simge Yok 18 Çalýþma alaný simgesi yok $set 15 #Window 1 Ýsimsiz $set 16 #Windowmenu 1 Kapat 2 Simge boyutuna küçült 3 Katman 4 Düþür 5 En büyük boya yetir 6 Büyüt 7 ...'a gönder 8 Gölge 9 Yapýþkan 10 Öldür 11 Varsayýlanlarý kullan 12 Pencere baþlýðýný ayarla $set 17 #Workspace 1 Çalýþma alaný %d 2 Çalýþma Alanlarý 3 Yeni çalýþma alaný 4 Sonuncuyu sil $set 18 #fbsetroot 1 Hata: Bunlardan en az birini belirtmelisiniz: -solid, -mod, -gradient\n 2 pixmap atomlarý oluþturulamýyor, býrakýlýyor! 3 -display baðlantýyý görünltüler\n\ -mod kalýbý ayarlar\n\ -foreground, -fg önplan rengini ayarlar\n\ -background, -bg arkaplan rengini ayarlar\n\n\ -gradient doku eðimi\n\ -from baþlangýç renk eðimi\n\ -to bitiþ renk eðimi\n\n\ -solid rengi katýlaþtýrýr\n\n\ -help bu yardým ekranýný görüntüler ve çýkar\n $set 19 #main 1 hata: '-display' bir parametre ile birlikte kullanýlýyor 2 Kötü ayýrma 3 Kötü biçim 4 Aralýk dýþý 5 Çalýþma zamaný hatasý 6 Standart Ýstisna 7 Bilinmeyen hata 8 hata: '-log' bir parametre ile birlikte kullanýlýyor 9 Günlük dosyasý 10 Günlük tutuluyor: 11 hata: '-rc' bir parametre ile birlikte kullanýlýyor 12 hata: '-screen' bir parametre ile birlikte kullanýlýyor 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ Web sitesi: http://www.fluxbox.org/\n\n\ -display \t\tekran baðlantýsýný kullan.\n\ -screen \tsadece belirlenen ekranlarda çalýþ.\n\ -rc \t\t\tulternatif kaynak dosyasýný kullan.\n\ -version\t\t\tversiyonu görüntüle ve çýk.\n\ -info\t\t\t\tyararlý bilgi görüntüler.\n\ -list-commands\t\t\tbütün geçerli tuþ komutlarýný listeler.\n\ -sync\t\t\t\tHata ayýklama için X sunucusu ile eþzamanlar.\n\ -log \t\t\tgünlük çýktýsýný dosyaya yaz..\n\ -help\t\t\t\tbu yardým ekranýný gösterir ve çýkar.\n\n 14 warning: çevre deðiþkeni 'DISPLAY' ayarlanamýyor $set 20 #layers 1 Dok'un üstü 2 Alt 3 Masaüstü 4 Dok 5 Normal 6 Üst fluxbox-1.3.5/nls/tr_TR/PaxHeaders.25974/Translation.m0000644000175000017500000000013112106662425020555 xustar000000000000000030 mtime=1360749845.887812656 29 atime=1360749875.01981247 30 ctime=1360750008.903811613 fluxbox-1.3.5/nls/tr_TR/Translation.m0000644000175000017500000001515612106662425016615 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Alt Orta 2 Alt Sol 3 Alt SaÄŸ 4 Yatay 5 Sol 6 Sol Alt 7 Sol Orta 8 Sol Üst 9 BaÄŸlı 10 SaÄŸ 11 SaÄŸ Alt 12 SaÄŸ Orta 13 SaÄŸ üst 14 Üst Orta 15 Üst Sol 16 Üst SaÄŸ 17 Dikey 18 Orta 19 Üst 20 Alt $set 2 #BaseDisplay 1 İptal Ediliyor... çekirdek dökümü alınıyor\n 2 Kapatılıyor\n 3 %s: %d sinyali alındı\n $set 3 #Common 1 Alfa 2 Otomatik Gizle 3 DerlenmiÅŸ 4 DerlenmiÅŸ ayarlar 5 Derleyici 6 Derleyici versiyonu 7 baÅŸlat 8 tuÅŸlar 9 nls 10 menü 11 stil 12 Varsayılanlar 13 Devre Dışı 14 Hata 15 Fluxbox versiyonu 16 En üst seviyeye çıkart 17 GIT Revizyonu 18 Görünür 19 Bu stil için arkaplan seçeneÄŸi yok.\nLütfen kılavuzu ya da SSS'yi okuyun. $set 4 #Configmenu 1 Kenar DüzleÅŸtirme 2 Otomatik Büyütme 3 Tıklayarak Büyütme 4 Odaklamak için Tıklayın 5 Geçici Pencereleri Süsler 6 Masaüstleri Arası Fare TekerleÄŸi ile GeçiÅŸ 7 Çalışma Alanı DeÄŸiÅŸtiÄŸinde Pencereye Odaklan 8 Kalıba Odakla 9 Yeni Pencereye Odakla 10 Tamamen büyütme 11 Resim titretme 12 Opak Pencere Taşıma 14 Fare Odağı 15 Çalışma Alanı Sapması 16 Sahte Transparanlık için Zorla 17 Alfa Menü 18 Transparanlık 19 Odaklaılmamış Alfa Pencere 20 Odaklanılmamış Alfa Pencere 21 Sekme ÖzellikleriTab Options 22 BaÅŸlık ÇubuÄŸunda Sekmeler 23 Harici Sekme GeniÅŸliÄŸi 24 Tıklama Sekmesi Odağı 25 Fare Sekmesi Odağı 26 Ayarları En Üst Düzeye Getir 27 Yeniden Boyutlandırma Arttırmasını Görmezden Gel 28 Taşımayı Devre Dışı Bırak 29 Yeniden Boyutlandırmayı Devre Dışı Bırak $set 5 #Ewmh 1 Ölümcül: Bellek Yetersiz, EWMH istemci listesi için ayrılamıyor $set 6 #FbTkError 1 Uyarı! Boy > 3200, Boy 3200 olarak ayarlanıyor 2 Uyarı! En > 3200, En 3200 olarak ayarlanıyor 3 Uyarı! Son çare fontu yüklenemiyor 4 Ayırma Hatası 5 Pixmap oluÅŸtururken Hata 6 XImage oluÅŸturulamıyor 7 Okunamıyor 8 Uyarı: Alfa için uygun biçim bulunamadı. 9 Uyarı: Alfa resmi oluÅŸturulamadı. 10 Uyarı: Alfa pixmap'ı oluÅŸturulamadı. 11 (%d) ekranı için biçim bulunamadı 12 Bellek yetersiz 13 Mavi tampon için bellek ayrılırken bellek yetersiz. 14 YeÅŸil tampon için bellek yarılırken bellek yetersiz. 15 Kırmızı tampon için bellek ayrılırken bellek yetersiz. 16 Tema öğesi okunamadı 17 Desteklenmeyen görsel 18 Varsayılan deÄŸer ayarlanıyor $set 7 #Fluxbox 1 rc dosya adı geçersiz! 2 group dosyası yüklenemedi 3 Veritabanı yüklenemedi 4 Tekrar deneniyor: 5 Uyarı! Pencereleri eÅŸleyecek ekran bulunamıyor! 6 %s dizini oluÅŸturulamıyor 7 Düzenlenecek pencereler bulunamıyor.\nBaÅŸka bir penceere yöneticisinin çalışmadığından emin olun. 8 Düzenli ifadeler (regular expression) ayrıştırılırken hata 9 Ölümcül! Fluxbox sınıflarından sadece bir örnek olabilir. 10 X sunucusuna baÄŸlanılamıyor.\nFluxbox'u baÅŸlatmadan önce X'i baÅŸlattığınızdan emin olun. 11 Uyarı: X sunucusu yerelleÅŸtirmeyi desteklemiyor 12 Uyarı: YerelleÅŸtirme tanımlayıcıları ayarlanamıyor $set 8 #Gnome 1 Ölümcül: Bellek yetersiz, GNOME istemci listesi için yer ayrılamıyor $set 9 #Keys 1 TuÅŸlar: Satırda hata 2 TuÅŸlar: TuÅŸ aÄŸacı birleÅŸtirilirken hata! 3 TuÅŸlar: Satırda geçersiz tuÅŸ/tanımlayıcı $set 10 #Menu 1 Yapılandırma 2 Fluxbox varsayılan menü 3 Çıkış 4 Simgeler 5 Katman... 6 En baÅŸta... 7 YerleÅŸtirme 8 Ayarları yeniden yükle 9 Yeniden baÅŸlat 10 Uyarı: dengesiz [çözme] imler $set 11 #Remember 1 Süslemeler 2 Boyutlar 3 Çalışma alanına atlanıyor 4 Katman 5 Hatırla... 6 Pozisyon 7 Çıkışta kaydet 8 GölgelenmiÅŸ 9 Yapışkan 10 Bilinmeyen uygulama tuÅŸu 11 Çalışma Alanı 12 BaÅŸ 13 Transparanlık $set 12 #Screen 1 BScreen::BScreen: X sunucusu sorgulanırken hata oluÅŸtu.\n ÅŸu an ekranda diÄŸer pencere yöneticisi çalışıyor 2 E: %4d x B: %4d 3 BScreen::BScreen: %d ekranı düzenleniyor 0x%lx görseli, %d derinliÄŸi kullanılıyor\n 4 E: %04d x B: %04d $set 13 #Slit 1 İstemciler 2 Devir aÅŸağı 3 Devir yukarı 4 Kesit Yönü: 5 Kesit Katmanı 6 Kesit tepede 7 Kesit YerleÅŸimi 8 Kesit 9 Kesit listesini kaydet $set 14 #Toolbar 1 Åžu anki çalışma alanını yeniden adlandır 2 Simge çubuÄŸu modu 3 Bütün pencelerler 4 İkonlar 5 Hiç (None) 6 Çalışma alanı 7 Çalışma alanı simgeleri 8 Araç çubuÄŸu Katmanı 9 Araç çubuÄŸu en üstte 10 Araç çubuÄŸu yerleÅŸtirmesi 11 Araç çubuÄŸu 12 Araç çubuÄŸu geniÅŸlik yüzdesi 13 Saat: 24s 14 Saat: 12s 15 Saat Biçimini Düzenle 16 Resimleri Göster 17 Simge Yok 18 Çalışma alanı simgesi yok $set 15 #Window 1 İsimsiz $set 16 #Windowmenu 1 Kapat 2 Simge boyutuna küçült 3 Katman 4 Düşür 5 En büyük boya yetir 6 Büyüt 7 ...'a gönder 8 Gölge 9 Yapışkan 10 Öldür 11 Varsayılanları kullan 12 Pencere baÅŸlığını ayarla $set 17 #Workspace 1 Çalışma alanı %d 2 Çalışma Alanları 3 Yeni çalışma alanı 4 Sonuncuyu sil $set 18 #fbsetroot 1 Hata: Bunlardan en az birini belirtmelisiniz: -solid, -mod, -gradient\n 2 pixmap atomları oluÅŸturulamıyor, bırakılıyor! 3 -display baÄŸlantıyı görünltüler\n\ -mod kalıbı ayarlar\n\ -foreground, -fg önplan rengini ayarlar\n\ -background, -bg arkaplan rengini ayarlar\n\n\ -gradient doku eÄŸimi\n\ -from baÅŸlangıç renk eÄŸimi\n\ -to bitiÅŸ renk eÄŸimi\n\n\ -solid rengi katılaÅŸtırır\n\n\ -help bu yardım ekranını görüntüler ve çıkar\n $set 19 #main 1 hata: '-display' bir parametre ile birlikte kullanılıyor 2 Kötü ayırma 3 Kötü biçim 4 Aralık dışı 5 Çalışma zamanı hatası 6 Standart İstisna 7 Bilinmeyen hata 8 hata: '-log' bir parametre ile birlikte kullanılıyor 9 Günlük dosyası 10 Günlük tutuluyor: 11 hata: '-rc' bir parametre ile birlikte kullanılıyor 12 hata: '-screen' bir parametre ile birlikte kullanılıyor 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ Web sitesi: http://www.fluxbox.org/\n\n\ -display \t\tekran baÄŸlantısını kullan.\n\ -screen \tsadece belirlenen ekranlarda çalış.\n\ -rc \t\t\tulternatif kaynak dosyasını kullan.\n\ -version\t\t\tversiyonu görüntüle ve çık.\n\ -info\t\t\t\tyararlı bilgi görüntüler.\n\ -list-commands\t\t\tbütün geçerli tuÅŸ komutlarını listeler.\n\ -sync\t\t\t\tHata ayıklama için X sunucusu ile eÅŸzamanlar.\n\ -log \t\t\tgünlük çıktısını dosyaya yaz..\n\ -help\t\t\t\tbu yardım ekranını gösterir ve çıkar.\n\n 14 warning: çevre deÄŸiÅŸkeni 'DISPLAY' ayarlanamıyor $set 20 #layers 1 Dok'un üstü 2 Alt 3 Masaüstü 4 Dok 5 Normal 6 Üst fluxbox-1.3.5/nls/tr_TR/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662604020146 xustar000000000000000030 mtime=1360749956.375811949 30 atime=1360750004.019811644 30 ctime=1360750008.907811613 fluxbox-1.3.5/nls/tr_TR/Makefile.in0000644000175000017500000002714712106662604016210 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/tr_TR/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/tr_TR DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = tr_TR SRC_CODESET = UTF-8 DEST_CODESETS = ISO-8859-9 UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/tr_TR/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/tr_TR/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/tr_TR/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020136 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749854.223812603 30 ctime=1360750008.907811613 fluxbox-1.3.5/nls/tr_TR/Makefile.am0000644000175000017500000000300312106662425016161 0ustar00mgmg00000000000000# nls/tr_TR/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = tr_TR SRC_CODESET = UTF-8 DEST_CODESETS = ISO-8859-9 UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/sv_SE0000644000175000017500000000013212106662665016020 xustar000000000000000030 mtime=1360750005.855811632 30 atime=1360750008.907811613 30 ctime=1360750008.907811613 fluxbox-1.3.5/nls/sv_SE/0000755000175000017500000000000012106662665014124 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/sv_SE/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013012106662462021003 xustar000000000000000029 mtime=1360749874.98381247 29 atime=1360749874.99981247 30 ctime=1360750008.907811613 fluxbox-1.3.5/nls/sv_SE/generated-UTF-8.m0000644000175000017500000001204612106662462017037 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Nere i mitten 2 Nere till vänster 3 Nere till höger 4 Horisontell 5 Till vänster 6 Till vänster nere 7 Till vänster i mitten 8 Till vänster uppe 9 Relativ 10 Till höger 11 Till höger nere 12 Till höger i mitten 13 Till höger uppe 14 Uppe i mitten 15 Uppe till vänster 16 Uppe till höger 17 Vertikal $set 2 #BaseDisplay 1 Avbryter... dumpar core\n 2 Stänger ner\n 3 %s: signal %d fÃ¥ngad\n $set 3 #Common 1 Alpha 2 Göm automatiskt 3 Kompilerad 4 Kompilerings val 5 Kompilator 6 Kompilator version 13 avstängd 14 Fel 16 Maximera över 18 Synbar 19 Det finns ingen bakgrunds val för detta tema. Var vänlig läs manualen eller läs FAQ. $set 4 #Configmenu 1 Kantutjämning 2 Höj automatiskt 3 Klick höjer fönstret 4 Klicka för fokus 5 Dekorera transienta fönster 7 Fokusera fönster vid skrivbordsbyte 8 Fokusmodell 9 Fokus pÃ¥ nya fönster 10 Full maximering 11 Bilddithering 12 Ogenomskinlig fönsterförflyttning 13 Halv hafsig fokus 14 Hafsig fokus 15 Dra fönster mellan arbetsytor 16 Tvinga pseudo-transparens 17 Meny alpha 18 Transparens 19 Fokuserad fönsters alpha 20 Icke fokuserad fönsters alpha 21 Flikval 22 Flikar i titelraden 23 Externa flikars bredd 24 Klick i flik ger fokus 25 Musfokus i flik $set 5 #Ewmh 1 Slut pÃ¥ minne, kan inte allokera minne för EWMH klientlista. $set 6 #FbTkError 1 Varning! Höjden överskrider 3200, sätter höjd till 3200. 2 Varning! Bredden överskrider 3200, sätter bredden till 3200 3 Varning! Kan inte ladda grundfonten 4 Allokerings fel. 5 Fel vid skapande av pixmap. 6 Kan inte skapa XImage 7 Kunde inte läsa 8 Varning! Kunde inte hitta rätt format för alpha. 9 Varning! Kunde inte skapa alpha bild. 10 Varning! Kunde inte skapa alpha pixmap. 11 Misslyckades att hitta format för skärm(%d) 12 Slut pÃ¥ minne 13 Slut pÃ¥ minne vid allokering av blÃ¥ buffer. 14 Slut pÃ¥ minne vid allokering av grön buffer. 15 Slut pÃ¥ minne vid allokering av röd buffer. 16 Misslyckades att läsa tema objekt 18 Sätter grundvärde $set 7 #Fluxbox 1 rc filnamn är felaktigt! 2 Kunde inte ladda gruppfil 3 Kunde inte ladda databasen 4 Försöker igen med 5 Varning! Kunde inte hitta skärm att placera fönster pÃ¥ 6 kan inte skapa katalog %s 7 Kan inte hitta skärm att hantera.\nSe till att det inte är nÃ¥gon annan fönsterhanterare som körs. 8 Fel vid evalueringen av regular expression 10 Kan inte ansluta till X server.\nStarta X innan du startar Fluxbox. 11 Varning! X server har ingen support för locale 12 Varning! Kan inte sätta locale modifiers $set 8 #Gnome 1 Fatal: Slut pÃ¥ minne. Kan inte allokera GNOME klientlista. $set 9 #Keys 1 Keys: Fel pÃ¥ rad 2 Keys: Misslyckades att slÃ¥ ihop keytree! 3 Keys: Felaktig tangent/modifierare pÃ¥ rad $set 10 #Menu 1 Konfiguration 2 Fluxbox grundmeny 3 Avsluta 4 Ikoner 5 Lager... 6 PÃ¥ huvud... 7 Placering 8 Ladda om konfiguration 9 Starta om 10 Varning: obalanserade [encoding] taggar $set 11 #Remember 1 Dekorationer 2 Dimensioner 3 Hoppa till arbetsyta 4 Lager 5 Kom ihÃ¥g... 6 Position 7 Spara vid stängning 8 Skugga 9 Klibbig 10 Okänd apps tag 11 Arbetsyta 12 Huvud 13 Transparens $set 12 #Screen 1 BScreen::BScreen: Ett fel uppstod med X.\nEn annan fönsterhanterare körs. 2 W: %4d x H: %4d 3 BScreen::BScreen: Hanterare skärm %d med visual 0x%lx, djup %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Klienter 2 Flytta ner 3 Flytta upp 4 Slitriktning 5 Slitlager 6 Slit pÃ¥ huvud 7 Slitplacering 8 Slit 9 Spara slitlistan $set 14 #Toolbar 1 Ändra namn pÃ¥ skrivbordet 2 Ikonradsläge 3 Alla fönster 4 Ikoner 5 Inga 6 Arbetsyta 7 Arbetsytans ikoner 9 Verktygsrads lager 10 Verktygslistens placering 11 Verktygslist 12 Verktygsradens bredd i procent 13 Klocka i 24h format 14 Klocka i 12h format 15 Ändra klockformat 16 Visa bilder 17 Inga ikoner 18 Inga ikoner för arbetsytan $set 15 #Window 1 Inget namn $set 16 #Windowmenu 1 Stäng 2 Ikonifiera 4 Sänk 5 Maximera 6 Höj 7 Skicka till... 8 Skugga 9 Klibbig 10 Döda 11 Använd grundinställningar $set 17 #Workspace 1 Skrivbord %d 2 Skrivbord 3 Nytt skrivbord 4 Ta bort sista $set 18 #fbsetroot 1 fel: mÃ¥ste specifiera en av: -solid, -mod, -gradient\n 3 -display skärmanslutning\n\ -mod modulamönster\n\ -foreground, -fg förgrundsfärg för modulamönster\n\ -background, -bg bakgrundsfärg för modulamönster\n\n\ -gradient texturlutning\n\ -from startfärg\n\ -to slutfärg\n\n\ -solid solid färg\n\n\ -help visa denna hjälptext och avsluta\n $set 19 #main 1 fel: '-display' kräver ett argument 11 fel: '-rc' kräver ett argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tanvänd skärmanslutning.\n\ -rc \t\t\tanvänd alternativ resursfil.\n\ -version\t\t\tvisa version och avsluta.\n\ -info\t\t\t\tVisar nyttig information.\n\ -log \t\t\tloggar utskriften till en fil.\n\ -help\t\t\t\tvisa denna hjälptext och avsluta.\n\n $set 20 #layers 1 Över dock 2 Längst ner 3 Arbetsyta 4 Dock 5 Normal 6 Top fluxbox-1.3.5/nls/sv_SE/PaxHeaders.25974/generated-ISO-8859-1.m0000644000175000017500000000013012106662462021403 xustar000000000000000029 mtime=1360749874.97981247 29 atime=1360749874.99981247 30 ctime=1360750008.907811613 fluxbox-1.3.5/nls/sv_SE/generated-ISO-8859-1.m0000644000175000017500000001166412106662462017444 0ustar00mgmg00000000000000$ codeset=ISO-8859-1 $set 1 #Align 1 Nere i mitten 2 Nere till vänster 3 Nere till höger 4 Horisontell 5 Till vänster 6 Till vänster nere 7 Till vänster i mitten 8 Till vänster uppe 9 Relativ 10 Till höger 11 Till höger nere 12 Till höger i mitten 13 Till höger uppe 14 Uppe i mitten 15 Uppe till vänster 16 Uppe till höger 17 Vertikal $set 2 #BaseDisplay 1 Avbryter... dumpar core\n 2 Stänger ner\n 3 %s: signal %d fångad\n $set 3 #Common 1 Alpha 2 Göm automatiskt 3 Kompilerad 4 Kompilerings val 5 Kompilator 6 Kompilator version 13 avstängd 14 Fel 16 Maximera över 18 Synbar 19 Det finns ingen bakgrunds val för detta tema. Var vänlig läs manualen eller läs FAQ. $set 4 #Configmenu 1 Kantutjämning 2 Höj automatiskt 3 Klick höjer fönstret 4 Klicka för fokus 5 Dekorera transienta fönster 7 Fokusera fönster vid skrivbordsbyte 8 Fokusmodell 9 Fokus på nya fönster 10 Full maximering 11 Bilddithering 12 Ogenomskinlig fönsterförflyttning 13 Halv hafsig fokus 14 Hafsig fokus 15 Dra fönster mellan arbetsytor 16 Tvinga pseudo-transparens 17 Meny alpha 18 Transparens 19 Fokuserad fönsters alpha 20 Icke fokuserad fönsters alpha 21 Flikval 22 Flikar i titelraden 23 Externa flikars bredd 24 Klick i flik ger fokus 25 Musfokus i flik $set 5 #Ewmh 1 Slut på minne, kan inte allokera minne för EWMH klientlista. $set 6 #FbTkError 1 Varning! Höjden överskrider 3200, sätter höjd till 3200. 2 Varning! Bredden överskrider 3200, sätter bredden till 3200 3 Varning! Kan inte ladda grundfonten 4 Allokerings fel. 5 Fel vid skapande av pixmap. 6 Kan inte skapa XImage 7 Kunde inte läsa 8 Varning! Kunde inte hitta rätt format för alpha. 9 Varning! Kunde inte skapa alpha bild. 10 Varning! Kunde inte skapa alpha pixmap. 11 Misslyckades att hitta format för skärm(%d) 12 Slut på minne 13 Slut på minne vid allokering av blå buffer. 14 Slut på minne vid allokering av grön buffer. 15 Slut på minne vid allokering av röd buffer. 16 Misslyckades att läsa tema objekt 18 Sätter grundvärde $set 7 #Fluxbox 1 rc filnamn är felaktigt! 2 Kunde inte ladda gruppfil 3 Kunde inte ladda databasen 4 Försöker igen med 5 Varning! Kunde inte hitta skärm att placera fönster på 6 kan inte skapa katalog %s 7 Kan inte hitta skärm att hantera.\nSe till att det inte är någon annan fönsterhanterare som körs. 8 Fel vid evalueringen av regular expression 10 Kan inte ansluta till X server.\nStarta X innan du startar Fluxbox. 11 Varning! X server har ingen support för locale 12 Varning! Kan inte sätta locale modifiers $set 8 #Gnome 1 Fatal: Slut på minne. Kan inte allokera GNOME klientlista. $set 9 #Keys 1 Keys: Fel på rad 2 Keys: Misslyckades att slå ihop keytree! 3 Keys: Felaktig tangent/modifierare på rad $set 10 #Menu 1 Konfiguration 2 Fluxbox grundmeny 3 Avsluta 4 Ikoner 5 Lager... 6 På huvud... 7 Placering 8 Ladda om konfiguration 9 Starta om 10 Varning: obalanserade [encoding] taggar $set 11 #Remember 1 Dekorationer 2 Dimensioner 3 Hoppa till arbetsyta 4 Lager 5 Kom ihåg... 6 Position 7 Spara vid stängning 8 Skugga 9 Klibbig 10 Okänd apps tag 11 Arbetsyta 12 Huvud 13 Transparens $set 12 #Screen 1 BScreen::BScreen: Ett fel uppstod med X.\nEn annan fönsterhanterare körs. 2 W: %4d x H: %4d 3 BScreen::BScreen: Hanterare skärm %d med visual 0x%lx, djup %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Klienter 2 Flytta ner 3 Flytta upp 4 Slitriktning 5 Slitlager 6 Slit på huvud 7 Slitplacering 8 Slit 9 Spara slitlistan $set 14 #Toolbar 1 Ändra namn på skrivbordet 2 Ikonradsläge 3 Alla fönster 4 Ikoner 5 Inga 6 Arbetsyta 7 Arbetsytans ikoner 9 Verktygsrads lager 10 Verktygslistens placering 11 Verktygslist 12 Verktygsradens bredd i procent 13 Klocka i 24h format 14 Klocka i 12h format 15 Ändra klockformat 16 Visa bilder 17 Inga ikoner 18 Inga ikoner för arbetsytan $set 15 #Window 1 Inget namn $set 16 #Windowmenu 1 Stäng 2 Ikonifiera 4 Sänk 5 Maximera 6 Höj 7 Skicka till... 8 Skugga 9 Klibbig 10 Döda 11 Använd grundinställningar $set 17 #Workspace 1 Skrivbord %d 2 Skrivbord 3 Nytt skrivbord 4 Ta bort sista $set 18 #fbsetroot 1 fel: måste specifiera en av: -solid, -mod, -gradient\n 3 -display skärmanslutning\n\ -mod modulamönster\n\ -foreground, -fg förgrundsfärg för modulamönster\n\ -background, -bg bakgrundsfärg för modulamönster\n\n\ -gradient texturlutning\n\ -from startfärg\n\ -to slutfärg\n\n\ -solid solid färg\n\n\ -help visa denna hjälptext och avsluta\n $set 19 #main 1 fel: '-display' kräver ett argument 11 fel: '-rc' kräver ett argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tanvänd skärmanslutning.\n\ -rc \t\t\tanvänd alternativ resursfil.\n\ -version\t\t\tvisa version och avsluta.\n\ -info\t\t\t\tVisar nyttig information.\n\ -log \t\t\tloggar utskriften till en fil.\n\ -help\t\t\t\tvisa denna hjälptext och avsluta.\n\n $set 20 #layers 1 Över dock 2 Längst ner 3 Arbetsyta 4 Dock 5 Normal 6 Top fluxbox-1.3.5/nls/sv_SE/PaxHeaders.25974/Translation.m0000644000175000017500000000013112106662425020542 xustar000000000000000030 mtime=1360749845.883812656 29 atime=1360749874.97981247 30 ctime=1360750008.911811613 fluxbox-1.3.5/nls/sv_SE/Translation.m0000644000175000017500000001166412106662425016602 0ustar00mgmg00000000000000$ codeset=ISO-8859-1 $set 1 #Align 1 Nere i mitten 2 Nere till vänster 3 Nere till höger 4 Horisontell 5 Till vänster 6 Till vänster nere 7 Till vänster i mitten 8 Till vänster uppe 9 Relativ 10 Till höger 11 Till höger nere 12 Till höger i mitten 13 Till höger uppe 14 Uppe i mitten 15 Uppe till vänster 16 Uppe till höger 17 Vertikal $set 2 #BaseDisplay 1 Avbryter... dumpar core\n 2 Stänger ner\n 3 %s: signal %d fångad\n $set 3 #Common 1 Alpha 2 Göm automatiskt 3 Kompilerad 4 Kompilerings val 5 Kompilator 6 Kompilator version 13 avstängd 14 Fel 16 Maximera över 18 Synbar 19 Det finns ingen bakgrunds val för detta tema. Var vänlig läs manualen eller läs FAQ. $set 4 #Configmenu 1 Kantutjämning 2 Höj automatiskt 3 Klick höjer fönstret 4 Klicka för fokus 5 Dekorera transienta fönster 7 Fokusera fönster vid skrivbordsbyte 8 Fokusmodell 9 Fokus på nya fönster 10 Full maximering 11 Bilddithering 12 Ogenomskinlig fönsterförflyttning 13 Halv hafsig fokus 14 Hafsig fokus 15 Dra fönster mellan arbetsytor 16 Tvinga pseudo-transparens 17 Meny alpha 18 Transparens 19 Fokuserad fönsters alpha 20 Icke fokuserad fönsters alpha 21 Flikval 22 Flikar i titelraden 23 Externa flikars bredd 24 Klick i flik ger fokus 25 Musfokus i flik $set 5 #Ewmh 1 Slut på minne, kan inte allokera minne för EWMH klientlista. $set 6 #FbTkError 1 Varning! Höjden överskrider 3200, sätter höjd till 3200. 2 Varning! Bredden överskrider 3200, sätter bredden till 3200 3 Varning! Kan inte ladda grundfonten 4 Allokerings fel. 5 Fel vid skapande av pixmap. 6 Kan inte skapa XImage 7 Kunde inte läsa 8 Varning! Kunde inte hitta rätt format för alpha. 9 Varning! Kunde inte skapa alpha bild. 10 Varning! Kunde inte skapa alpha pixmap. 11 Misslyckades att hitta format för skärm(%d) 12 Slut på minne 13 Slut på minne vid allokering av blå buffer. 14 Slut på minne vid allokering av grön buffer. 15 Slut på minne vid allokering av röd buffer. 16 Misslyckades att läsa tema objekt 18 Sätter grundvärde $set 7 #Fluxbox 1 rc filnamn är felaktigt! 2 Kunde inte ladda gruppfil 3 Kunde inte ladda databasen 4 Försöker igen med 5 Varning! Kunde inte hitta skärm att placera fönster på 6 kan inte skapa katalog %s 7 Kan inte hitta skärm att hantera.\nSe till att det inte är någon annan fönsterhanterare som körs. 8 Fel vid evalueringen av regular expression 10 Kan inte ansluta till X server.\nStarta X innan du startar Fluxbox. 11 Varning! X server har ingen support för locale 12 Varning! Kan inte sätta locale modifiers $set 8 #Gnome 1 Fatal: Slut på minne. Kan inte allokera GNOME klientlista. $set 9 #Keys 1 Keys: Fel på rad 2 Keys: Misslyckades att slå ihop keytree! 3 Keys: Felaktig tangent/modifierare på rad $set 10 #Menu 1 Konfiguration 2 Fluxbox grundmeny 3 Avsluta 4 Ikoner 5 Lager... 6 På huvud... 7 Placering 8 Ladda om konfiguration 9 Starta om 10 Varning: obalanserade [encoding] taggar $set 11 #Remember 1 Dekorationer 2 Dimensioner 3 Hoppa till arbetsyta 4 Lager 5 Kom ihåg... 6 Position 7 Spara vid stängning 8 Skugga 9 Klibbig 10 Okänd apps tag 11 Arbetsyta 12 Huvud 13 Transparens $set 12 #Screen 1 BScreen::BScreen: Ett fel uppstod med X.\nEn annan fönsterhanterare körs. 2 W: %4d x H: %4d 3 BScreen::BScreen: Hanterare skärm %d med visual 0x%lx, djup %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Klienter 2 Flytta ner 3 Flytta upp 4 Slitriktning 5 Slitlager 6 Slit på huvud 7 Slitplacering 8 Slit 9 Spara slitlistan $set 14 #Toolbar 1 Ändra namn på skrivbordet 2 Ikonradsläge 3 Alla fönster 4 Ikoner 5 Inga 6 Arbetsyta 7 Arbetsytans ikoner 9 Verktygsrads lager 10 Verktygslistens placering 11 Verktygslist 12 Verktygsradens bredd i procent 13 Klocka i 24h format 14 Klocka i 12h format 15 Ändra klockformat 16 Visa bilder 17 Inga ikoner 18 Inga ikoner för arbetsytan $set 15 #Window 1 Inget namn $set 16 #Windowmenu 1 Stäng 2 Ikonifiera 4 Sänk 5 Maximera 6 Höj 7 Skicka till... 8 Skugga 9 Klibbig 10 Döda 11 Använd grundinställningar $set 17 #Workspace 1 Skrivbord %d 2 Skrivbord 3 Nytt skrivbord 4 Ta bort sista $set 18 #fbsetroot 1 fel: måste specifiera en av: -solid, -mod, -gradient\n 3 -display skärmanslutning\n\ -mod modulamönster\n\ -foreground, -fg förgrundsfärg för modulamönster\n\ -background, -bg bakgrundsfärg för modulamönster\n\n\ -gradient texturlutning\n\ -from startfärg\n\ -to slutfärg\n\n\ -solid solid färg\n\n\ -help visa denna hjälptext och avsluta\n $set 19 #main 1 fel: '-display' kräver ett argument 11 fel: '-rc' kräver ett argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tanvänd skärmanslutning.\n\ -rc \t\t\tanvänd alternativ resursfil.\n\ -version\t\t\tvisa version och avsluta.\n\ -info\t\t\t\tVisar nyttig information.\n\ -log \t\t\tloggar utskriften till en fil.\n\ -help\t\t\t\tvisa denna hjälptext och avsluta.\n\n $set 20 #layers 1 Över dock 2 Längst ner 3 Arbetsyta 4 Dock 5 Normal 6 Top fluxbox-1.3.5/nls/sv_SE/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662604020133 xustar000000000000000030 mtime=1360749956.355811949 30 atime=1360750004.003811644 30 ctime=1360750008.911811613 fluxbox-1.3.5/nls/sv_SE/Makefile.in0000644000175000017500000002715412106662604016173 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/sv_SE/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/sv_SE DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = sv_SE SRC_CODESET = ISO-8859-1 DEST_CODESETS = ISO-8859-1 UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/sv_SE/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/sv_SE/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/sv_SE/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020123 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749854.203812603 30 ctime=1360750008.911811613 fluxbox-1.3.5/nls/sv_SE/Makefile.am0000644000175000017500000000301012106662425016144 0ustar00mgmg00000000000000# nls/sv_SE/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = sv_SE SRC_CODESET = ISO-8859-1 DEST_CODESETS = ISO-8859-1 UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/ru_RU0000644000175000017500000000013212106662665016035 xustar000000000000000030 mtime=1360750005.819811633 30 atime=1360750008.911811613 30 ctime=1360750008.911811613 fluxbox-1.3.5/nls/ru_RU/0000755000175000017500000000000012106662665014141 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/ru_RU/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013012106662462021020 xustar000000000000000029 mtime=1360749874.94381247 29 atime=1360749874.95981247 30 ctime=1360750008.915811613 fluxbox-1.3.5/nls/ru_RU/generated-UTF-8.m0000644000175000017500000002411312106662462017052 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Внизу по центру 2 Внизу Ñлева 3 Внизу Ñправа 4 По горизонтали 5 Слева 6 Слева внизу 7 Слева по центру 8 Слева вверху 9 По вÑей ширине 10 Справа 11 Справа внизу 12 Справа по центру 13 Справа вверху 14 Вверху по центру 15 Вверху Ñлева 16 Вверху Ñправа 17 По вертикали $set 2 #BaseDisplay 1 Прервано... Ñоздан дамп памÑти\n 2 Завершение работы\n 3 %s: Ñигнал %d получен\n $set 3 #Common 1 ПрозрачноÑть 2 ÐвтоÑкрытие 3 Скомпилированный 4 Скомпилирован Ñ Ð¾Ð¿Ñ†Ð¸Ñми 5 КомпилÑтор 6 ВерÑÐ¸Ñ ÐºÐ¾Ð¼Ð¿Ð¸Ð»Ñтора 7 Файл реÑурÑов 8 Файл Ñочетаний клавиш 9 Файлы локализации 10 Файл меню 11 Файл Ñо Ñтилем 12 ÐаÑтройки по умолчанию 13 отключена 14 Ошибка 15 ВерÑÐ¸Ñ Fluxbox 16 Под окнами 17 Ðомер ревизии 18 Ð’Ð¸Ð´Ð¸Ð¼Ð°Ñ 19 Ð”Ð»Ñ Ñтого ÑÑ‚Ð¸Ð»Ñ Ð½Ðµ определена Ð¾Ð¿Ñ†Ð¸Ñ 'background'\nПодробную информацию Ñмотрите в man fluxbox или в FAQ. $set 4 #Configmenu 1 ÐнтиалиаÑинг 2 ÐвтовÑплытие 3 Ðа передний план по щелчку 4 Ð¤Ð¾ÐºÑƒÑ Ð¿Ð¾ щелчку 5 Украшать нерезидентные окна 6 Переключение рабочих Ñтолов колеÑом мыши 7 Ð¤Ð¾ÐºÑƒÑ Ð½Ð° поÑледнее окно рабочего Ñтола 8 Модель фокуÑировки 9 Перемещать Ñ„Ð¾ÐºÑƒÑ Ð½Ð° новые окна 10 ÐŸÐ¾Ð»Ð½Ð°Ñ Ð¼Ð°ÐºÑÐ¸Ð¼Ð¸Ð·Ð°Ñ†Ð¸Ñ 11 Сглаживать изображение 12 Перемещение заполненных окон 14 Ð¤Ð¾ÐºÑƒÑ Ð¿Ð¾ перемещению 15 Перемещение окон между рабочими Ñтолами 16 ИÑпользовать пÑевдо-прозрачноÑть 17 Меню 18 ПрозрачноÑть 19 Ðктивное окно 20 Ðеактивное окно 21 Вкладки 22 Размещать внутри заголовка окна 23 Ширина внешних вкладок 24 Переключение по вкладкам Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ клика 25 Переключение по вкладкам при наведении мыши $set 5 #Ewmh 1 Ð¤Ð°Ñ‚Ð°Ð»ÑŒÐ½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°: не удалоÑÑŒ выделить памÑть Ð´Ð»Ñ ÑпиÑка клиентов EWMH $set 6 #FbTkError 1 Внимание! Ð’Ñ‹Ñота > 3200, уÑтановлена Ð’Ñ‹Ñота = 3200 2 Внимание! Ширина > 3200, уÑтановлена Ширина = 3200 3 Внимание: не удалоÑÑŒ загрузить резервный шрифт 4 Ошибка Ð²Ñ‹Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¼Ñти. 5 Ошибка при Ñоздании pixmap 6 Ðевозможно Ñоздать XImage 7 Ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ 8 Внимание: Ðеверное значение alpha. 9 Внимание: Ðе удалоÑÑŒ Ñоздать alpha picture. 10 Внимание: Ðе удалоÑÑŒ Ñоздать alpha pixmap. 11 Ðе удалоÑÑŒ найти формат Ñкрана(%d) 12 Ðехватка памÑти 13 Ðехватка памÑти при выделении буфера Ñинего. 14 Ðехватка памÑти при выделении буфера зеленого. 15 Ðехватка памÑти при выделении буфера краÑного. 16 Ошибка Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ñлемента ÑÑ‚Ð¸Ð»Ñ 17 Ðеподдерживаемый visual 18 УÑтановлено значение по умолчанию $set 7 #Fluxbox 1 Ðеправильное Ð¸Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° реÑурÑов 2 Ðевозможно загрузить файл групп 3 Ðевозможно загрузить базу 4 ÐŸÐ¾Ð²Ñ‚Ð¾Ñ€Ð½Ð°Ñ Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ° Ñ 5 Внимание! Ðе найден Ñкран Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¾ÐºÐ½Ð°! 6 Ðевозможно Ñоздать директорию %s 7 Ðе удалоÑÑŒ найти Ñкран.\nУбедитеÑÑŒ, что не запущен другой WM. 8 Ошибка при разборе регулÑрного Ð²Ñ‹Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ 9 Ð¤Ð°Ñ‚Ð°Ð»ÑŒÐ½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°! ЭкземплÑÑ€ клаÑÑа fluxbox может быть только один. 10 Ðевозможно ÑоединитьÑÑ Ñ X Ñервером.\nУбедитеÑÑŒ, что X Ñервер запущен перед запуÑком Fluxbox. 11 Внимание: X Ñервер не поддерживает локаль 12 Внимание: невозможно уÑтановить модификаторы локали $set 8 #Gnome 1 Ð¤Ð°Ñ‚Ð°Ð»ÑŒÐ½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°: не удалоÑÑŒ выделить памÑть Ð´Ð»Ñ ÑпиÑка клиентов GNOME $set 9 #Keys 1 Keys: Ошибка в Ñтроке 2 Keys: Ðе удалоÑÑŒ Ñоздать дерево ключей 3 Keys: ÐÐµÐ²ÐµÑ€Ð½Ð°Ñ ÐºÐ»Ð°Ð²Ð¸ÑˆÐ°/модификатор в Ñтроке $set 10 #Menu 1 ÐаÑтройки 2 Меню fluxbox 3 Выход 4 Свернутые окна 5 Слой... 6 Ð’ заголовок... 7 РаÑположение 8 Перечитать наÑтройки 9 ПерезапуÑк 10 Внимание: не закрыты Ñ‚Ñги [encoding] $set 11 #Remember 1 Декорации 2 Размеры 3 ПеремеÑтитьÑÑ Ð½Ð° рабочий Ñтол 4 Слой 5 Запомнить... 6 РаÑположение 7 СохранÑть при закрытии 8 Свернуто в заголовок 9 Приклеенный 11 Рабочий Ñтол 12 Заголовок 13 ПрозрачноÑть $set 12 #Screen 1 BScreen::BScreen: произошла ошибка во Ð²Ñ€ÐµÐ¼Ñ Ð¾Ð¿Ñ€Ð¾Ñа X Ñервера.\n запущен другой менеджер окон 2 W: %4d x H: %4d 3 BScreen::BScreen: управлÑем Ñкраном %d иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ visual 0x%lx, depth %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Клиенты 2 Обычный порÑдок 3 Ð’ обратном порÑдке 4 ÐžÑ€Ð¸ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð´Ð¾ÐºÐµÑ€Ð° 7 РаÑположение докера 8 Докер 9 Сохранить ÑпиÑок клиентов $set 14 #Toolbar 1 Редактировать Ð¸Ð¼Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ³Ð¾ рабочего Ñтола 2 Режим Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¾ÐºÐ¾Ð½ 3 Ð’Ñе окна Ñо вÑех рабочих Ñтолов 4 Минимизированные на вÑех рабочих Ñтолах 5 Ðе отображать 6 Ð’Ñе окна 7 Минимизированные 10 РаÑположение панели инÑтрументов 11 Панель инÑтрументов 12 Ширина в процентах 13 Формат времени: 24 чаÑа 14 Формат времени: 12 чаÑов 15 Изменить формат Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð¸ 16 Отображать иконки 17 Ð’Ñе не Ñвернутые Ñо вÑех рабочих Ñтолов 18 Ðе Ñвернутые $set 15 #Window 1 БезымÑнное $set 16 #Windowmenu 1 Закрыть 2 Свернуть на панель инÑтрументов 3 Слой... 4 Ðа задний план 5 МакÑимизировать 6 Ðа передний план 7 Отправить окно на ... 8 Свернуть в заголовок 9 Приклеить 10 Убить 11 ИÑпользовать уÑтановки по умолчанию $set 17 #Workspace 1 Рабочий Ñтол %d 2 Рабочие Ñтолы 3 Ðовый рабочий Ñтол 4 Удалить поÑледний $set 18 #fbsetroot 1 Ошибка: необходимо задать один из Ñледующих ключей: -solid, -mod, -gradient\n 2 Ðе удалоÑÑŒ Ñоздать атомы pixmap, броÑаем Ñто гиблое дело! 3 -display Ñоединение Ñ Ð´Ð¸Ñплеем\n\ -mod макет клетки\n\ -foreground, -fg цвет переднего плана клетки\n\ -background, -bg цвет фона клетки\n\n\ -gradient градиент\n\ -from начальный цвет градиента\n\ -to конечный цвет градиента\n\n\ -solid Ñплошной цвет\n\n\ -help вывеÑти Ñту подÑказку и выйти\n $set 19 #main 1 ошибка: '-display' требует наличие аргумента 2 Ошибка Ð²Ñ‹Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¼Ñти 3 Ошибка Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð¸Ð¿Ð° 4 Вне диапазона 5 Ошибка во Ð²Ñ€ÐµÐ¼Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ 6 Стандартное иÑключение 7 ÐеизвеÑÑ‚Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° 8 ошибка: '-log' требует наличие аргумента 9 Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð° журнала 10 ЗапиÑываетÑÑ Ð² 11 ошибка: '-rc' требует наличие аргумента 12 ошибка: '-screen' требует наличие аргумента 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ Веб-Ñайт: http://www.fluxbox.org/\n\n\ -display \t\tиÑпользовать заданный диÑплей.\n\ -screen \tзапуÑкать только на определенном Ñкране.\n\ -rc \t\t\tиÑпользовать альтернативный файл реÑурÑов.\n\ -version\t\t\tвывеÑти номер верÑии и выйти.\n\ -info\t\t\t\tвывеÑти некоторую полезную информацию и выйти.\n\ -log \t\t\tжурналировать вывод в указанный файл.\n\ -help\t\t\t\tвывеÑти Ñту подÑказку и выйти.\n\n 14 предупреждение: не удалоÑÑŒ уÑтановить переменную Ð¾ÐºÑ€ÑƒÐ¶ÐµÐ½Ð¸Ñ 'DISPLAY' $set 20 #Layer 1 Поверх дока 2 Ðиже 3 Рабочий Ñтол 4 Док 5 Ðормальный 6 Поверх fluxbox-1.3.5/nls/ru_RU/PaxHeaders.25974/generated-KOI8-R.m0000644000175000017500000000013012106662462021126 xustar000000000000000029 mtime=1360749874.93981247 29 atime=1360749874.95581247 30 ctime=1360750008.915811613 fluxbox-1.3.5/nls/ru_RU/generated-KOI8-R.m0000644000175000017500000001431312106662462017161 0ustar00mgmg00000000000000$ codeset=KOI8-R $set 1 #Align 1 ÷ÎÉÚÕ ÐÏ ÃÅÎÔÒÕ 2 ÷ÎÉÚÕ ÓÌÅ×Á 3 ÷ÎÉÚÕ ÓÐÒÁ×Á 4 ðÏ ÇÏÒÉÚÏÎÔÁÌÉ 5 óÌÅ×Á 6 óÌÅ×Á ×ÎÉÚÕ 7 óÌÅ×Á ÐÏ ÃÅÎÔÒÕ 8 óÌÅ×Á ××ÅÒÈÕ 9 ðÏ ×ÓÅÊ ÛÉÒÉÎÅ 10 óÐÒÁ×Á 11 óÐÒÁ×Á ×ÎÉÚÕ 12 óÐÒÁ×Á ÐÏ ÃÅÎÔÒÕ 13 óÐÒÁ×Á ××ÅÒÈÕ 14 ÷×ÅÒÈÕ ÐÏ ÃÅÎÔÒÕ 15 ÷×ÅÒÈÕ ÓÌÅ×Á 16 ÷×ÅÒÈÕ ÓÐÒÁ×Á 17 ðÏ ×ÅÒÔÉËÁÌÉ $set 2 #BaseDisplay 1 ðÒÅÒ×ÁÎÏ... ÓÏÚÄÁÎ ÄÁÍÐ ÐÁÍÑÔÉ\n 2 úÁ×ÅÒÛÅÎÉÅ ÒÁÂÏÔÙ\n 3 %s: ÓÉÇÎÁÌ %d ÐÏÌÕÞÅÎ\n $set 3 #Common 1 ðÒÏÚÒÁÞÎÏÓÔØ 2 á×ÔÏÓËÒÙÔÉÅ 3 óËÏÍÐÉÌÉÒÏ×ÁÎÎÙÊ 4 óËÏÍÐÉÌÉÒÏ×ÁÎ Ó ÏÐÃÉÑÍÉ 5 ëÏÍÐÉÌÑÔÏÒ 6 ÷ÅÒÓÉÑ ËÏÍÐÉÌÑÔÏÒÁ 7 æÁÊÌ ÒÅÓÕÒÓÏ× 8 æÁÊÌ ÓÏÞÅÔÁÎÉÊ ËÌÁ×ÉÛ 9 æÁÊÌÙ ÌÏËÁÌÉÚÁÃÉÉ 10 æÁÊÌ ÍÅÎÀ 11 æÁÊÌ ÓÏ ÓÔÉÌÅÍ 12 îÁÓÔÒÏÊËÉ ÐÏ ÕÍÏÌÞÁÎÉÀ 13 ÏÔËÌÀÞÅÎÁ 14 ïÛÉÂËÁ 15 ÷ÅÒÓÉÑ Fluxbox 16 ðÏÄ ÏËÎÁÍÉ 17 îÏÍÅÒ ÒÅ×ÉÚÉÉ 18 ÷ÉÄÉÍÁÑ 19 äÌÑ ÜÔÏÇÏ ÓÔÉÌÑ ÎÅ ÏÐÒÅÄÅÌÅÎÁ ÏÐÃÉÑ 'background'\nðÏÄÒÏÂÎÕÀ ÉÎÆÏÒÍÁÃÉÀ ÓÍÏÔÒÉÔÅ × man fluxbox ÉÌÉ × FAQ. $set 4 #Configmenu 1 áÎÔÉÁÌÉÁÓÉÎÇ 2 á×ÔÏ×ÓÐÌÙÔÉÅ 3 îÁ ÐÅÒÅÄÎÉÊ ÐÌÁÎ ÐÏ ÝÅÌÞËÕ 4 æÏËÕÓ ÐÏ ÝÅÌÞËÕ 5 õËÒÁÛÁÔØ ÎÅÒÅÚÉÄÅÎÔÎÙÅ ÏËÎÁ 6 ðÅÒÅËÌÀÞÅÎÉÅ ÒÁÂÏÞÉÈ ÓÔÏÌÏ× ËÏÌÅÓÏÍ ÍÙÛÉ 7 æÏËÕÓ ÎÁ ÐÏÓÌÅÄÎÅÅ ÏËÎÏ ÒÁÂÏÞÅÇÏ ÓÔÏÌÁ 8 íÏÄÅÌØ ÆÏËÕÓÉÒÏ×ËÉ 9 ðÅÒÅÍÅÝÁÔØ ÆÏËÕÓ ÎÁ ÎÏ×ÙÅ ÏËÎÁ 10 ðÏÌÎÁÑ ÍÁËÓÉÍÉÚÁÃÉÑ 11 óÇÌÁÖÉ×ÁÔØ ÉÚÏÂÒÁÖÅÎÉÅ 12 ðÅÒÅÍÅÝÅÎÉÅ ÚÁÐÏÌÎÅÎÎÙÈ ÏËÏÎ 14 æÏËÕÓ ÐÏ ÐÅÒÅÍÅÝÅÎÉÀ 15 ðÅÒÅÍÅÝÅÎÉÅ ÏËÏÎ ÍÅÖÄÕ ÒÁÂÏÞÉÍÉ ÓÔÏÌÁÍÉ 16 éÓÐÏÌØÚÏ×ÁÔØ ÐÓÅ×ÄÏ-ÐÒÏÚÒÁÞÎÏÓÔØ 17 íÅÎÀ 18 ðÒÏÚÒÁÞÎÏÓÔØ 19 áËÔÉ×ÎÏÅ ÏËÎÏ 20 îÅÁËÔÉ×ÎÏÅ ÏËÎÏ 21 ÷ËÌÁÄËÉ 22 òÁÚÍÅÝÁÔØ ×ÎÕÔÒÉ ÚÁÇÏÌÏ×ËÁ ÏËÎÁ 23 ûÉÒÉÎÁ ×ÎÅÛÎÉÈ ×ËÌÁÄÏË 24 ðÅÒÅËÌÀÞÅÎÉÅ ÐÏ ×ËÌÁÄËÁÍ Ó ÐÏÍÏÝØÀ ËÌÉËÁ 25 ðÅÒÅËÌÀÞÅÎÉÅ ÐÏ ×ËÌÁÄËÁÍ ÐÒÉ ÎÁ×ÅÄÅÎÉÉ ÍÙÛÉ $set 5 #Ewmh 1 æÁÔÁÌØÎÁÑ ÏÛÉÂËÁ: ÎÅ ÕÄÁÌÏÓØ ×ÙÄÅÌÉÔØ ÐÁÍÑÔØ ÄÌÑ ÓÐÉÓËÁ ËÌÉÅÎÔÏ× EWMH $set 6 #FbTkError 1 ÷ÎÉÍÁÎÉÅ! ÷ÙÓÏÔÁ > 3200, ÕÓÔÁÎÏ×ÌÅÎÁ ÷ÙÓÏÔÁ = 3200 2 ÷ÎÉÍÁÎÉÅ! ûÉÒÉÎÁ > 3200, ÕÓÔÁÎÏ×ÌÅÎÁ ûÉÒÉÎÁ = 3200 3 ÷ÎÉÍÁÎÉÅ: ÎÅ ÕÄÁÌÏÓØ ÚÁÇÒÕÚÉÔØ ÒÅÚÅÒ×ÎÙÊ ÛÒÉÆÔ 4 ïÛÉÂËÁ ×ÙÄÅÌÅÎÉÑ ÐÁÍÑÔÉ. 5 ïÛÉÂËÁ ÐÒÉ ÓÏÚÄÁÎÉÉ pixmap 6 îÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ XImage 7 ïÛÉÂËÁ ÞÔÅÎÉÑ 8 ÷ÎÉÍÁÎÉÅ: îÅ×ÅÒÎÏÅ ÚÎÁÞÅÎÉÅ alpha. 9 ÷ÎÉÍÁÎÉÅ: îÅ ÕÄÁÌÏÓØ ÓÏÚÄÁÔØ alpha picture. 10 ÷ÎÉÍÁÎÉÅ: îÅ ÕÄÁÌÏÓØ ÓÏÚÄÁÔØ alpha pixmap. 11 îÅ ÕÄÁÌÏÓØ ÎÁÊÔÉ ÆÏÒÍÁÔ ÜËÒÁÎÁ(%d) 12 îÅÈ×ÁÔËÁ ÐÁÍÑÔÉ 13 îÅÈ×ÁÔËÁ ÐÁÍÑÔÉ ÐÒÉ ×ÙÄÅÌÅÎÉÉ ÂÕÆÅÒÁ ÓÉÎÅÇÏ. 14 îÅÈ×ÁÔËÁ ÐÁÍÑÔÉ ÐÒÉ ×ÙÄÅÌÅÎÉÉ ÂÕÆÅÒÁ ÚÅÌÅÎÏÇÏ. 15 îÅÈ×ÁÔËÁ ÐÁÍÑÔÉ ÐÒÉ ×ÙÄÅÌÅÎÉÉ ÂÕÆÅÒÁ ËÒÁÓÎÏÇÏ. 16 ïÛÉÂËÁ ÞÔÅÎÉÑ ÜÌÅÍÅÎÔÁ ÓÔÉÌÑ 17 îÅÐÏÄÄÅÒÖÉ×ÁÅÍÙÊ visual 18 õÓÔÁÎÏ×ÌÅÎÏ ÚÎÁÞÅÎÉÅ ÐÏ ÕÍÏÌÞÁÎÉÀ $set 7 #Fluxbox 1 îÅÐÒÁ×ÉÌØÎÏÅ ÉÍÑ ÆÁÊÌÁ ÒÅÓÕÒÓÏ× 2 îÅ×ÏÚÍÏÖÎÏ ÚÁÇÒÕÚÉÔØ ÆÁÊÌ ÇÒÕÐÐ 3 îÅ×ÏÚÍÏÖÎÏ ÚÁÇÒÕÚÉÔØ ÂÁÚÕ 4 ðÏ×ÔÏÒÎÁÑ ÐÏÐÙÔËÁ Ó 5 ÷ÎÉÍÁÎÉÅ! îÅ ÎÁÊÄÅÎ ÜËÒÁÎ ÄÌÑ ÏÔÏÂÒÁÖÅÎÉÑ ÏËÎÁ! 6 îÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ÄÉÒÅËÔÏÒÉÀ %s 7 îÅ ÕÄÁÌÏÓØ ÎÁÊÔÉ ÜËÒÁÎ.\nõÂÅÄÉÔÅÓØ, ÞÔÏ ÎÅ ÚÁÐÕÝÅÎ ÄÒÕÇÏÊ WM. 8 ïÛÉÂËÁ ÐÒÉ ÒÁÚÂÏÒÅ ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ 9 æÁÔÁÌØÎÁÑ ÏÛÉÂËÁ! üËÚÅÍÐÌÑÒ ËÌÁÓÓÁ fluxbox ÍÏÖÅÔ ÂÙÔØ ÔÏÌØËÏ ÏÄÉÎ. 10 îÅ×ÏÚÍÏÖÎÏ ÓÏÅÄÉÎÉÔØÓÑ Ó X ÓÅÒ×ÅÒÏÍ.\nõÂÅÄÉÔÅÓØ, ÞÔÏ X ÓÅÒ×ÅÒ ÚÁÐÕÝÅÎ ÐÅÒÅÄ ÚÁÐÕÓËÏÍ Fluxbox. 11 ÷ÎÉÍÁÎÉÅ: X ÓÅÒ×ÅÒ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÌÏËÁÌØ 12 ÷ÎÉÍÁÎÉÅ: ÎÅ×ÏÚÍÏÖÎÏ ÕÓÔÁÎÏ×ÉÔØ ÍÏÄÉÆÉËÁÔÏÒÙ ÌÏËÁÌÉ $set 8 #Gnome 1 æÁÔÁÌØÎÁÑ ÏÛÉÂËÁ: ÎÅ ÕÄÁÌÏÓØ ×ÙÄÅÌÉÔØ ÐÁÍÑÔØ ÄÌÑ ÓÐÉÓËÁ ËÌÉÅÎÔÏ× GNOME $set 9 #Keys 1 Keys: ïÛÉÂËÁ × ÓÔÒÏËÅ 2 Keys: îÅ ÕÄÁÌÏÓØ ÓÏÚÄÁÔØ ÄÅÒÅ×Ï ËÌÀÞÅÊ 3 Keys: îÅ×ÅÒÎÁÑ ËÌÁ×ÉÛÁ/ÍÏÄÉÆÉËÁÔÏÒ × ÓÔÒÏËÅ $set 10 #Menu 1 îÁÓÔÒÏÊËÉ 2 íÅÎÀ fluxbox 3 ÷ÙÈÏÄ 4 ó×ÅÒÎÕÔÙÅ ÏËÎÁ 5 óÌÏÊ... 6 ÷ ÚÁÇÏÌÏ×ÏË... 7 òÁÓÐÏÌÏÖÅÎÉÅ 8 ðÅÒÅÞÉÔÁÔØ ÎÁÓÔÒÏÊËÉ 9 ðÅÒÅÚÁÐÕÓË 10 ÷ÎÉÍÁÎÉÅ: ÎÅ ÚÁËÒÙÔÙ ÔÜÇÉ [encoding] $set 11 #Remember 1 äÅËÏÒÁÃÉÉ 2 òÁÚÍÅÒÙ 3 ðÅÒÅÍÅÓÔÉÔØÓÑ ÎÁ ÒÁÂÏÞÉÊ ÓÔÏÌ 4 óÌÏÊ 5 úÁÐÏÍÎÉÔØ... 6 òÁÓÐÏÌÏÖÅÎÉÅ 7 óÏÈÒÁÎÑÔØ ÐÒÉ ÚÁËÒÙÔÉÉ 8 ó×ÅÒÎÕÔÏ × ÚÁÇÏÌÏ×ÏË 9 ðÒÉËÌÅÅÎÎÙÊ 11 òÁÂÏÞÉÊ ÓÔÏÌ 12 úÁÇÏÌÏ×ÏË 13 ðÒÏÚÒÁÞÎÏÓÔØ $set 12 #Screen 1 BScreen::BScreen: ÐÒÏÉÚÏÛÌÁ ÏÛÉÂËÁ ×Ï ×ÒÅÍÑ ÏÐÒÏÓÁ X ÓÅÒ×ÅÒÁ.\n ÚÁÐÕÝÅÎ ÄÒÕÇÏÊ ÍÅÎÅÄÖÅÒ ÏËÏÎ 2 W: %4d x H: %4d 3 BScreen::BScreen: ÕÐÒÁ×ÌÑÅÍ ÜËÒÁÎÏÍ %d ÉÓÐÏÌØÚÕÑ visual 0x%lx, depth %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 ëÌÉÅÎÔÙ 2 ïÂÙÞÎÙÊ ÐÏÒÑÄÏË 3 ÷ ÏÂÒÁÔÎÏÍ ÐÏÒÑÄËÅ 4 ïÒÉÅÎÔÁÃÉÑ ÄÏËÅÒÁ 7 òÁÓÐÏÌÏÖÅÎÉÅ ÄÏËÅÒÁ 8 äÏËÅÒ 9 óÏÈÒÁÎÉÔØ ÓÐÉÓÏË ËÌÉÅÎÔÏ× $set 14 #Toolbar 1 òÅÄÁËÔÉÒÏ×ÁÔØ ÉÍÑ ÔÅËÕÝÅÇÏ ÒÁÂÏÞÅÇÏ ÓÔÏÌÁ 2 òÅÖÉÍ ÏÔÏÂÒÁÖÅÎÉÑ ÏËÏÎ 3 ÷ÓÅ ÏËÎÁ ÓÏ ×ÓÅÈ ÒÁÂÏÞÉÈ ÓÔÏÌÏ× 4 íÉÎÉÍÉÚÉÒÏ×ÁÎÎÙÅ ÎÁ ×ÓÅÈ ÒÁÂÏÞÉÈ ÓÔÏÌÁÈ 5 îÅ ÏÔÏÂÒÁÖÁÔØ 6 ÷ÓÅ ÏËÎÁ 7 íÉÎÉÍÉÚÉÒÏ×ÁÎÎÙÅ 10 òÁÓÐÏÌÏÖÅÎÉÅ ÐÁÎÅÌÉ ÉÎÓÔÒÕÍÅÎÔÏ× 11 ðÁÎÅÌØ ÉÎÓÔÒÕÍÅÎÔÏ× 12 ûÉÒÉÎÁ × ÐÒÏÃÅÎÔÁÈ 13 æÏÒÍÁÔ ×ÒÅÍÅÎÉ: 24 ÞÁÓÁ 14 æÏÒÍÁÔ ×ÒÅÍÅÎÉ: 12 ÞÁÓÏ× 15 éÚÍÅÎÉÔØ ÆÏÒÍÁÔ ÏÔÏÂÒÁÖÅÎÉÑ ×ÒÅÍÅÎÉ 16 ïÔÏÂÒÁÖÁÔØ ÉËÏÎËÉ 17 ÷ÓÅ ÎÅ Ó×ÅÒÎÕÔÙÅ ÓÏ ×ÓÅÈ ÒÁÂÏÞÉÈ ÓÔÏÌÏ× 18 îÅ Ó×ÅÒÎÕÔÙÅ $set 15 #Window 1 âÅÚÙÍÑÎÎÏÅ $set 16 #Windowmenu 1 úÁËÒÙÔØ 2 ó×ÅÒÎÕÔØ ÎÁ ÐÁÎÅÌØ ÉÎÓÔÒÕÍÅÎÔÏ× 3 óÌÏÊ... 4 îÁ ÚÁÄÎÉÊ ÐÌÁÎ 5 íÁËÓÉÍÉÚÉÒÏ×ÁÔØ 6 îÁ ÐÅÒÅÄÎÉÊ ÐÌÁÎ 7 ïÔÐÒÁ×ÉÔØ ÏËÎÏ ÎÁ ... 8 ó×ÅÒÎÕÔØ × ÚÁÇÏÌÏ×ÏË 9 ðÒÉËÌÅÉÔØ 10 õÂÉÔØ 11 éÓÐÏÌØÚÏ×ÁÔØ ÕÓÔÁÎÏ×ËÉ ÐÏ ÕÍÏÌÞÁÎÉÀ $set 17 #Workspace 1 òÁÂÏÞÉÊ ÓÔÏÌ %d 2 òÁÂÏÞÉÅ ÓÔÏÌÙ 3 îÏ×ÙÊ ÒÁÂÏÞÉÊ ÓÔÏÌ 4 õÄÁÌÉÔØ ÐÏÓÌÅÄÎÉÊ $set 18 #fbsetroot 1 ïÛÉÂËÁ: ÎÅÏÂÈÏÄÉÍÏ ÚÁÄÁÔØ ÏÄÉÎ ÉÚ ÓÌÅÄÕÀÝÉÈ ËÌÀÞÅÊ: -solid, -mod, -gradient\n 2 îÅ ÕÄÁÌÏÓØ ÓÏÚÄÁÔØ ÁÔÏÍÙ pixmap, ÂÒÏÓÁÅÍ ÜÔÏ ÇÉÂÌÏÅ ÄÅÌÏ! 3 -display ÓÏÅÄÉÎÅÎÉÅ Ó ÄÉÓÐÌÅÅÍ\n\ -mod ÍÁËÅÔ ËÌÅÔËÉ\n\ -foreground, -fg Ã×ÅÔ ÐÅÒÅÄÎÅÇÏ ÐÌÁÎÁ ËÌÅÔËÉ\n\ -background, -bg Ã×ÅÔ ÆÏÎÁ ËÌÅÔËÉ\n\n\ -gradient ÇÒÁÄÉÅÎÔ\n\ -from ÎÁÞÁÌØÎÙÊ Ã×ÅÔ ÇÒÁÄÉÅÎÔÁ\n\ -to ËÏÎÅÞÎÙÊ Ã×ÅÔ ÇÒÁÄÉÅÎÔÁ\n\n\ -solid ÓÐÌÏÛÎÏÊ Ã×ÅÔ\n\n\ -help ×Ù×ÅÓÔÉ ÜÔÕ ÐÏÄÓËÁÚËÕ É ×ÙÊÔÉ\n $set 19 #main 1 ÏÛÉÂËÁ: '-display' ÔÒÅÂÕÅÔ ÎÁÌÉÞÉÅ ÁÒÇÕÍÅÎÔÁ 2 ïÛÉÂËÁ ×ÙÄÅÌÅÎÉÑ ÐÁÍÑÔÉ 3 ïÛÉÂËÁ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ ÔÉÐÁ 4 ÷ÎÅ ÄÉÁÐÁÚÏÎÁ 5 ïÛÉÂËÁ ×Ï ×ÒÅÍÑ ×ÙÐÏÌÎÅÎÉÑ 6 óÔÁÎÄÁÒÔÎÏÅ ÉÓËÌÀÞÅÎÉÅ 7 îÅÉÚ×ÅÓÔÎÁÑ ÏÛÉÂËÁ 8 ÏÛÉÂËÁ: '-log' ÔÒÅÂÕÅÔ ÎÁÌÉÞÉÅ ÁÒÇÕÍÅÎÔÁ 9 éÍÑ ÆÁÊÌÁ ÖÕÒÎÁÌÁ 10 úÁÐÉÓÙ×ÁÅÔÓÑ × 11 ÏÛÉÂËÁ: '-rc' ÔÒÅÂÕÅÔ ÎÁÌÉÞÉÅ ÁÒÇÕÍÅÎÔÁ 12 ÏÛÉÂËÁ: '-screen' ÔÒÅÂÕÅÔ ÎÁÌÉÞÉÅ ÁÒÇÕÍÅÎÔÁ 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ ÷ÅÂ-ÓÁÊÔ: http://www.fluxbox.org/\n\n\ -display \t\tÉÓÐÏÌØÚÏ×ÁÔØ ÚÁÄÁÎÎÙÊ ÄÉÓÐÌÅÊ.\n\ -screen \tÚÁÐÕÓËÁÔØ ÔÏÌØËÏ ÎÁ ÏÐÒÅÄÅÌÅÎÎÏÍ ÜËÒÁÎÅ.\n\ -rc \t\t\tÉÓÐÏÌØÚÏ×ÁÔØ ÁÌØÔÅÒÎÁÔÉ×ÎÙÊ ÆÁÊÌ ÒÅÓÕÒÓÏ×.\n\ -version\t\t\t×Ù×ÅÓÔÉ ÎÏÍÅÒ ×ÅÒÓÉÉ É ×ÙÊÔÉ.\n\ -info\t\t\t\t×Ù×ÅÓÔÉ ÎÅËÏÔÏÒÕÀ ÐÏÌÅÚÎÕÀ ÉÎÆÏÒÍÁÃÉÀ É ×ÙÊÔÉ.\n\ -log \t\t\tÖÕÒÎÁÌÉÒÏ×ÁÔØ ×Ù×ÏÄ × ÕËÁÚÁÎÎÙÊ ÆÁÊÌ.\n\ -help\t\t\t\t×Ù×ÅÓÔÉ ÜÔÕ ÐÏÄÓËÁÚËÕ É ×ÙÊÔÉ.\n\n 14 ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: ÎÅ ÕÄÁÌÏÓØ ÕÓÔÁÎÏ×ÉÔØ ÐÅÒÅÍÅÎÎÕÀ ÏËÒÕÖÅÎÉÑ 'DISPLAY' $set 20 #Layer 1 ðÏ×ÅÒÈ ÄÏËÁ 2 îÉÖÅ 3 òÁÂÏÞÉÊ ÓÔÏÌ 4 äÏË 5 îÏÒÍÁÌØÎÙÊ 6 ðÏ×ÅÒÈ fluxbox-1.3.5/nls/ru_RU/PaxHeaders.25974/Translation.m0000644000175000017500000000013112106662425020557 xustar000000000000000030 mtime=1360749845.883812656 29 atime=1360749874.93981247 30 ctime=1360750008.915811613 fluxbox-1.3.5/nls/ru_RU/Translation.m0000644000175000017500000001431312106662425016611 0ustar00mgmg00000000000000$ codeset=KOI8-R $set 1 #Align 1 ÷ÎÉÚÕ ÐÏ ÃÅÎÔÒÕ 2 ÷ÎÉÚÕ ÓÌÅ×Á 3 ÷ÎÉÚÕ ÓÐÒÁ×Á 4 ðÏ ÇÏÒÉÚÏÎÔÁÌÉ 5 óÌÅ×Á 6 óÌÅ×Á ×ÎÉÚÕ 7 óÌÅ×Á ÐÏ ÃÅÎÔÒÕ 8 óÌÅ×Á ××ÅÒÈÕ 9 ðÏ ×ÓÅÊ ÛÉÒÉÎÅ 10 óÐÒÁ×Á 11 óÐÒÁ×Á ×ÎÉÚÕ 12 óÐÒÁ×Á ÐÏ ÃÅÎÔÒÕ 13 óÐÒÁ×Á ××ÅÒÈÕ 14 ÷×ÅÒÈÕ ÐÏ ÃÅÎÔÒÕ 15 ÷×ÅÒÈÕ ÓÌÅ×Á 16 ÷×ÅÒÈÕ ÓÐÒÁ×Á 17 ðÏ ×ÅÒÔÉËÁÌÉ $set 2 #BaseDisplay 1 ðÒÅÒ×ÁÎÏ... ÓÏÚÄÁÎ ÄÁÍÐ ÐÁÍÑÔÉ\n 2 úÁ×ÅÒÛÅÎÉÅ ÒÁÂÏÔÙ\n 3 %s: ÓÉÇÎÁÌ %d ÐÏÌÕÞÅÎ\n $set 3 #Common 1 ðÒÏÚÒÁÞÎÏÓÔØ 2 á×ÔÏÓËÒÙÔÉÅ 3 óËÏÍÐÉÌÉÒÏ×ÁÎÎÙÊ 4 óËÏÍÐÉÌÉÒÏ×ÁÎ Ó ÏÐÃÉÑÍÉ 5 ëÏÍÐÉÌÑÔÏÒ 6 ÷ÅÒÓÉÑ ËÏÍÐÉÌÑÔÏÒÁ 7 æÁÊÌ ÒÅÓÕÒÓÏ× 8 æÁÊÌ ÓÏÞÅÔÁÎÉÊ ËÌÁ×ÉÛ 9 æÁÊÌÙ ÌÏËÁÌÉÚÁÃÉÉ 10 æÁÊÌ ÍÅÎÀ 11 æÁÊÌ ÓÏ ÓÔÉÌÅÍ 12 îÁÓÔÒÏÊËÉ ÐÏ ÕÍÏÌÞÁÎÉÀ 13 ÏÔËÌÀÞÅÎÁ 14 ïÛÉÂËÁ 15 ÷ÅÒÓÉÑ Fluxbox 16 ðÏÄ ÏËÎÁÍÉ 17 îÏÍÅÒ ÒÅ×ÉÚÉÉ 18 ÷ÉÄÉÍÁÑ 19 äÌÑ ÜÔÏÇÏ ÓÔÉÌÑ ÎÅ ÏÐÒÅÄÅÌÅÎÁ ÏÐÃÉÑ 'background'\nðÏÄÒÏÂÎÕÀ ÉÎÆÏÒÍÁÃÉÀ ÓÍÏÔÒÉÔÅ × man fluxbox ÉÌÉ × FAQ. $set 4 #Configmenu 1 áÎÔÉÁÌÉÁÓÉÎÇ 2 á×ÔÏ×ÓÐÌÙÔÉÅ 3 îÁ ÐÅÒÅÄÎÉÊ ÐÌÁÎ ÐÏ ÝÅÌÞËÕ 4 æÏËÕÓ ÐÏ ÝÅÌÞËÕ 5 õËÒÁÛÁÔØ ÎÅÒÅÚÉÄÅÎÔÎÙÅ ÏËÎÁ 6 ðÅÒÅËÌÀÞÅÎÉÅ ÒÁÂÏÞÉÈ ÓÔÏÌÏ× ËÏÌÅÓÏÍ ÍÙÛÉ 7 æÏËÕÓ ÎÁ ÐÏÓÌÅÄÎÅÅ ÏËÎÏ ÒÁÂÏÞÅÇÏ ÓÔÏÌÁ 8 íÏÄÅÌØ ÆÏËÕÓÉÒÏ×ËÉ 9 ðÅÒÅÍÅÝÁÔØ ÆÏËÕÓ ÎÁ ÎÏ×ÙÅ ÏËÎÁ 10 ðÏÌÎÁÑ ÍÁËÓÉÍÉÚÁÃÉÑ 11 óÇÌÁÖÉ×ÁÔØ ÉÚÏÂÒÁÖÅÎÉÅ 12 ðÅÒÅÍÅÝÅÎÉÅ ÚÁÐÏÌÎÅÎÎÙÈ ÏËÏÎ 14 æÏËÕÓ ÐÏ ÐÅÒÅÍÅÝÅÎÉÀ 15 ðÅÒÅÍÅÝÅÎÉÅ ÏËÏÎ ÍÅÖÄÕ ÒÁÂÏÞÉÍÉ ÓÔÏÌÁÍÉ 16 éÓÐÏÌØÚÏ×ÁÔØ ÐÓÅ×ÄÏ-ÐÒÏÚÒÁÞÎÏÓÔØ 17 íÅÎÀ 18 ðÒÏÚÒÁÞÎÏÓÔØ 19 áËÔÉ×ÎÏÅ ÏËÎÏ 20 îÅÁËÔÉ×ÎÏÅ ÏËÎÏ 21 ÷ËÌÁÄËÉ 22 òÁÚÍÅÝÁÔØ ×ÎÕÔÒÉ ÚÁÇÏÌÏ×ËÁ ÏËÎÁ 23 ûÉÒÉÎÁ ×ÎÅÛÎÉÈ ×ËÌÁÄÏË 24 ðÅÒÅËÌÀÞÅÎÉÅ ÐÏ ×ËÌÁÄËÁÍ Ó ÐÏÍÏÝØÀ ËÌÉËÁ 25 ðÅÒÅËÌÀÞÅÎÉÅ ÐÏ ×ËÌÁÄËÁÍ ÐÒÉ ÎÁ×ÅÄÅÎÉÉ ÍÙÛÉ $set 5 #Ewmh 1 æÁÔÁÌØÎÁÑ ÏÛÉÂËÁ: ÎÅ ÕÄÁÌÏÓØ ×ÙÄÅÌÉÔØ ÐÁÍÑÔØ ÄÌÑ ÓÐÉÓËÁ ËÌÉÅÎÔÏ× EWMH $set 6 #FbTkError 1 ÷ÎÉÍÁÎÉÅ! ÷ÙÓÏÔÁ > 3200, ÕÓÔÁÎÏ×ÌÅÎÁ ÷ÙÓÏÔÁ = 3200 2 ÷ÎÉÍÁÎÉÅ! ûÉÒÉÎÁ > 3200, ÕÓÔÁÎÏ×ÌÅÎÁ ûÉÒÉÎÁ = 3200 3 ÷ÎÉÍÁÎÉÅ: ÎÅ ÕÄÁÌÏÓØ ÚÁÇÒÕÚÉÔØ ÒÅÚÅÒ×ÎÙÊ ÛÒÉÆÔ 4 ïÛÉÂËÁ ×ÙÄÅÌÅÎÉÑ ÐÁÍÑÔÉ. 5 ïÛÉÂËÁ ÐÒÉ ÓÏÚÄÁÎÉÉ pixmap 6 îÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ XImage 7 ïÛÉÂËÁ ÞÔÅÎÉÑ 8 ÷ÎÉÍÁÎÉÅ: îÅ×ÅÒÎÏÅ ÚÎÁÞÅÎÉÅ alpha. 9 ÷ÎÉÍÁÎÉÅ: îÅ ÕÄÁÌÏÓØ ÓÏÚÄÁÔØ alpha picture. 10 ÷ÎÉÍÁÎÉÅ: îÅ ÕÄÁÌÏÓØ ÓÏÚÄÁÔØ alpha pixmap. 11 îÅ ÕÄÁÌÏÓØ ÎÁÊÔÉ ÆÏÒÍÁÔ ÜËÒÁÎÁ(%d) 12 îÅÈ×ÁÔËÁ ÐÁÍÑÔÉ 13 îÅÈ×ÁÔËÁ ÐÁÍÑÔÉ ÐÒÉ ×ÙÄÅÌÅÎÉÉ ÂÕÆÅÒÁ ÓÉÎÅÇÏ. 14 îÅÈ×ÁÔËÁ ÐÁÍÑÔÉ ÐÒÉ ×ÙÄÅÌÅÎÉÉ ÂÕÆÅÒÁ ÚÅÌÅÎÏÇÏ. 15 îÅÈ×ÁÔËÁ ÐÁÍÑÔÉ ÐÒÉ ×ÙÄÅÌÅÎÉÉ ÂÕÆÅÒÁ ËÒÁÓÎÏÇÏ. 16 ïÛÉÂËÁ ÞÔÅÎÉÑ ÜÌÅÍÅÎÔÁ ÓÔÉÌÑ 17 îÅÐÏÄÄÅÒÖÉ×ÁÅÍÙÊ visual 18 õÓÔÁÎÏ×ÌÅÎÏ ÚÎÁÞÅÎÉÅ ÐÏ ÕÍÏÌÞÁÎÉÀ $set 7 #Fluxbox 1 îÅÐÒÁ×ÉÌØÎÏÅ ÉÍÑ ÆÁÊÌÁ ÒÅÓÕÒÓÏ× 2 îÅ×ÏÚÍÏÖÎÏ ÚÁÇÒÕÚÉÔØ ÆÁÊÌ ÇÒÕÐÐ 3 îÅ×ÏÚÍÏÖÎÏ ÚÁÇÒÕÚÉÔØ ÂÁÚÕ 4 ðÏ×ÔÏÒÎÁÑ ÐÏÐÙÔËÁ Ó 5 ÷ÎÉÍÁÎÉÅ! îÅ ÎÁÊÄÅÎ ÜËÒÁÎ ÄÌÑ ÏÔÏÂÒÁÖÅÎÉÑ ÏËÎÁ! 6 îÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ÄÉÒÅËÔÏÒÉÀ %s 7 îÅ ÕÄÁÌÏÓØ ÎÁÊÔÉ ÜËÒÁÎ.\nõÂÅÄÉÔÅÓØ, ÞÔÏ ÎÅ ÚÁÐÕÝÅÎ ÄÒÕÇÏÊ WM. 8 ïÛÉÂËÁ ÐÒÉ ÒÁÚÂÏÒÅ ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ 9 æÁÔÁÌØÎÁÑ ÏÛÉÂËÁ! üËÚÅÍÐÌÑÒ ËÌÁÓÓÁ fluxbox ÍÏÖÅÔ ÂÙÔØ ÔÏÌØËÏ ÏÄÉÎ. 10 îÅ×ÏÚÍÏÖÎÏ ÓÏÅÄÉÎÉÔØÓÑ Ó X ÓÅÒ×ÅÒÏÍ.\nõÂÅÄÉÔÅÓØ, ÞÔÏ X ÓÅÒ×ÅÒ ÚÁÐÕÝÅÎ ÐÅÒÅÄ ÚÁÐÕÓËÏÍ Fluxbox. 11 ÷ÎÉÍÁÎÉÅ: X ÓÅÒ×ÅÒ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÌÏËÁÌØ 12 ÷ÎÉÍÁÎÉÅ: ÎÅ×ÏÚÍÏÖÎÏ ÕÓÔÁÎÏ×ÉÔØ ÍÏÄÉÆÉËÁÔÏÒÙ ÌÏËÁÌÉ $set 8 #Gnome 1 æÁÔÁÌØÎÁÑ ÏÛÉÂËÁ: ÎÅ ÕÄÁÌÏÓØ ×ÙÄÅÌÉÔØ ÐÁÍÑÔØ ÄÌÑ ÓÐÉÓËÁ ËÌÉÅÎÔÏ× GNOME $set 9 #Keys 1 Keys: ïÛÉÂËÁ × ÓÔÒÏËÅ 2 Keys: îÅ ÕÄÁÌÏÓØ ÓÏÚÄÁÔØ ÄÅÒÅ×Ï ËÌÀÞÅÊ 3 Keys: îÅ×ÅÒÎÁÑ ËÌÁ×ÉÛÁ/ÍÏÄÉÆÉËÁÔÏÒ × ÓÔÒÏËÅ $set 10 #Menu 1 îÁÓÔÒÏÊËÉ 2 íÅÎÀ fluxbox 3 ÷ÙÈÏÄ 4 ó×ÅÒÎÕÔÙÅ ÏËÎÁ 5 óÌÏÊ... 6 ÷ ÚÁÇÏÌÏ×ÏË... 7 òÁÓÐÏÌÏÖÅÎÉÅ 8 ðÅÒÅÞÉÔÁÔØ ÎÁÓÔÒÏÊËÉ 9 ðÅÒÅÚÁÐÕÓË 10 ÷ÎÉÍÁÎÉÅ: ÎÅ ÚÁËÒÙÔÙ ÔÜÇÉ [encoding] $set 11 #Remember 1 äÅËÏÒÁÃÉÉ 2 òÁÚÍÅÒÙ 3 ðÅÒÅÍÅÓÔÉÔØÓÑ ÎÁ ÒÁÂÏÞÉÊ ÓÔÏÌ 4 óÌÏÊ 5 úÁÐÏÍÎÉÔØ... 6 òÁÓÐÏÌÏÖÅÎÉÅ 7 óÏÈÒÁÎÑÔØ ÐÒÉ ÚÁËÒÙÔÉÉ 8 ó×ÅÒÎÕÔÏ × ÚÁÇÏÌÏ×ÏË 9 ðÒÉËÌÅÅÎÎÙÊ 11 òÁÂÏÞÉÊ ÓÔÏÌ 12 úÁÇÏÌÏ×ÏË 13 ðÒÏÚÒÁÞÎÏÓÔØ $set 12 #Screen 1 BScreen::BScreen: ÐÒÏÉÚÏÛÌÁ ÏÛÉÂËÁ ×Ï ×ÒÅÍÑ ÏÐÒÏÓÁ X ÓÅÒ×ÅÒÁ.\n ÚÁÐÕÝÅÎ ÄÒÕÇÏÊ ÍÅÎÅÄÖÅÒ ÏËÏÎ 2 W: %4d x H: %4d 3 BScreen::BScreen: ÕÐÒÁ×ÌÑÅÍ ÜËÒÁÎÏÍ %d ÉÓÐÏÌØÚÕÑ visual 0x%lx, depth %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 ëÌÉÅÎÔÙ 2 ïÂÙÞÎÙÊ ÐÏÒÑÄÏË 3 ÷ ÏÂÒÁÔÎÏÍ ÐÏÒÑÄËÅ 4 ïÒÉÅÎÔÁÃÉÑ ÄÏËÅÒÁ 7 òÁÓÐÏÌÏÖÅÎÉÅ ÄÏËÅÒÁ 8 äÏËÅÒ 9 óÏÈÒÁÎÉÔØ ÓÐÉÓÏË ËÌÉÅÎÔÏ× $set 14 #Toolbar 1 òÅÄÁËÔÉÒÏ×ÁÔØ ÉÍÑ ÔÅËÕÝÅÇÏ ÒÁÂÏÞÅÇÏ ÓÔÏÌÁ 2 òÅÖÉÍ ÏÔÏÂÒÁÖÅÎÉÑ ÏËÏÎ 3 ÷ÓÅ ÏËÎÁ ÓÏ ×ÓÅÈ ÒÁÂÏÞÉÈ ÓÔÏÌÏ× 4 íÉÎÉÍÉÚÉÒÏ×ÁÎÎÙÅ ÎÁ ×ÓÅÈ ÒÁÂÏÞÉÈ ÓÔÏÌÁÈ 5 îÅ ÏÔÏÂÒÁÖÁÔØ 6 ÷ÓÅ ÏËÎÁ 7 íÉÎÉÍÉÚÉÒÏ×ÁÎÎÙÅ 10 òÁÓÐÏÌÏÖÅÎÉÅ ÐÁÎÅÌÉ ÉÎÓÔÒÕÍÅÎÔÏ× 11 ðÁÎÅÌØ ÉÎÓÔÒÕÍÅÎÔÏ× 12 ûÉÒÉÎÁ × ÐÒÏÃÅÎÔÁÈ 13 æÏÒÍÁÔ ×ÒÅÍÅÎÉ: 24 ÞÁÓÁ 14 æÏÒÍÁÔ ×ÒÅÍÅÎÉ: 12 ÞÁÓÏ× 15 éÚÍÅÎÉÔØ ÆÏÒÍÁÔ ÏÔÏÂÒÁÖÅÎÉÑ ×ÒÅÍÅÎÉ 16 ïÔÏÂÒÁÖÁÔØ ÉËÏÎËÉ 17 ÷ÓÅ ÎÅ Ó×ÅÒÎÕÔÙÅ ÓÏ ×ÓÅÈ ÒÁÂÏÞÉÈ ÓÔÏÌÏ× 18 îÅ Ó×ÅÒÎÕÔÙÅ $set 15 #Window 1 âÅÚÙÍÑÎÎÏÅ $set 16 #Windowmenu 1 úÁËÒÙÔØ 2 ó×ÅÒÎÕÔØ ÎÁ ÐÁÎÅÌØ ÉÎÓÔÒÕÍÅÎÔÏ× 3 óÌÏÊ... 4 îÁ ÚÁÄÎÉÊ ÐÌÁÎ 5 íÁËÓÉÍÉÚÉÒÏ×ÁÔØ 6 îÁ ÐÅÒÅÄÎÉÊ ÐÌÁÎ 7 ïÔÐÒÁ×ÉÔØ ÏËÎÏ ÎÁ ... 8 ó×ÅÒÎÕÔØ × ÚÁÇÏÌÏ×ÏË 9 ðÒÉËÌÅÉÔØ 10 õÂÉÔØ 11 éÓÐÏÌØÚÏ×ÁÔØ ÕÓÔÁÎÏ×ËÉ ÐÏ ÕÍÏÌÞÁÎÉÀ $set 17 #Workspace 1 òÁÂÏÞÉÊ ÓÔÏÌ %d 2 òÁÂÏÞÉÅ ÓÔÏÌÙ 3 îÏ×ÙÊ ÒÁÂÏÞÉÊ ÓÔÏÌ 4 õÄÁÌÉÔØ ÐÏÓÌÅÄÎÉÊ $set 18 #fbsetroot 1 ïÛÉÂËÁ: ÎÅÏÂÈÏÄÉÍÏ ÚÁÄÁÔØ ÏÄÉÎ ÉÚ ÓÌÅÄÕÀÝÉÈ ËÌÀÞÅÊ: -solid, -mod, -gradient\n 2 îÅ ÕÄÁÌÏÓØ ÓÏÚÄÁÔØ ÁÔÏÍÙ pixmap, ÂÒÏÓÁÅÍ ÜÔÏ ÇÉÂÌÏÅ ÄÅÌÏ! 3 -display ÓÏÅÄÉÎÅÎÉÅ Ó ÄÉÓÐÌÅÅÍ\n\ -mod ÍÁËÅÔ ËÌÅÔËÉ\n\ -foreground, -fg Ã×ÅÔ ÐÅÒÅÄÎÅÇÏ ÐÌÁÎÁ ËÌÅÔËÉ\n\ -background, -bg Ã×ÅÔ ÆÏÎÁ ËÌÅÔËÉ\n\n\ -gradient ÇÒÁÄÉÅÎÔ\n\ -from ÎÁÞÁÌØÎÙÊ Ã×ÅÔ ÇÒÁÄÉÅÎÔÁ\n\ -to ËÏÎÅÞÎÙÊ Ã×ÅÔ ÇÒÁÄÉÅÎÔÁ\n\n\ -solid ÓÐÌÏÛÎÏÊ Ã×ÅÔ\n\n\ -help ×Ù×ÅÓÔÉ ÜÔÕ ÐÏÄÓËÁÚËÕ É ×ÙÊÔÉ\n $set 19 #main 1 ÏÛÉÂËÁ: '-display' ÔÒÅÂÕÅÔ ÎÁÌÉÞÉÅ ÁÒÇÕÍÅÎÔÁ 2 ïÛÉÂËÁ ×ÙÄÅÌÅÎÉÑ ÐÁÍÑÔÉ 3 ïÛÉÂËÁ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ ÔÉÐÁ 4 ÷ÎÅ ÄÉÁÐÁÚÏÎÁ 5 ïÛÉÂËÁ ×Ï ×ÒÅÍÑ ×ÙÐÏÌÎÅÎÉÑ 6 óÔÁÎÄÁÒÔÎÏÅ ÉÓËÌÀÞÅÎÉÅ 7 îÅÉÚ×ÅÓÔÎÁÑ ÏÛÉÂËÁ 8 ÏÛÉÂËÁ: '-log' ÔÒÅÂÕÅÔ ÎÁÌÉÞÉÅ ÁÒÇÕÍÅÎÔÁ 9 éÍÑ ÆÁÊÌÁ ÖÕÒÎÁÌÁ 10 úÁÐÉÓÙ×ÁÅÔÓÑ × 11 ÏÛÉÂËÁ: '-rc' ÔÒÅÂÕÅÔ ÎÁÌÉÞÉÅ ÁÒÇÕÍÅÎÔÁ 12 ÏÛÉÂËÁ: '-screen' ÔÒÅÂÕÅÔ ÎÁÌÉÞÉÅ ÁÒÇÕÍÅÎÔÁ 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ ÷ÅÂ-ÓÁÊÔ: http://www.fluxbox.org/\n\n\ -display \t\tÉÓÐÏÌØÚÏ×ÁÔØ ÚÁÄÁÎÎÙÊ ÄÉÓÐÌÅÊ.\n\ -screen \tÚÁÐÕÓËÁÔØ ÔÏÌØËÏ ÎÁ ÏÐÒÅÄÅÌÅÎÎÏÍ ÜËÒÁÎÅ.\n\ -rc \t\t\tÉÓÐÏÌØÚÏ×ÁÔØ ÁÌØÔÅÒÎÁÔÉ×ÎÙÊ ÆÁÊÌ ÒÅÓÕÒÓÏ×.\n\ -version\t\t\t×Ù×ÅÓÔÉ ÎÏÍÅÒ ×ÅÒÓÉÉ É ×ÙÊÔÉ.\n\ -info\t\t\t\t×Ù×ÅÓÔÉ ÎÅËÏÔÏÒÕÀ ÐÏÌÅÚÎÕÀ ÉÎÆÏÒÍÁÃÉÀ É ×ÙÊÔÉ.\n\ -log \t\t\tÖÕÒÎÁÌÉÒÏ×ÁÔØ ×Ù×ÏÄ × ÕËÁÚÁÎÎÙÊ ÆÁÊÌ.\n\ -help\t\t\t\t×Ù×ÅÓÔÉ ÜÔÕ ÐÏÄÓËÁÚËÕ É ×ÙÊÔÉ.\n\n 14 ÐÒÅÄÕÐÒÅÖÄÅÎÉÅ: ÎÅ ÕÄÁÌÏÓØ ÕÓÔÁÎÏ×ÉÔØ ÐÅÒÅÍÅÎÎÕÀ ÏËÒÕÖÅÎÉÑ 'DISPLAY' $set 20 #Layer 1 ðÏ×ÅÒÈ ÄÏËÁ 2 îÉÖÅ 3 òÁÂÏÞÉÊ ÓÔÏÌ 4 äÏË 5 îÏÒÍÁÌØÎÙÊ 6 ðÏ×ÅÒÈ fluxbox-1.3.5/nls/ru_RU/PaxHeaders.25974/Makefile.in0000644000175000017500000000013112106662604020147 xustar000000000000000029 mtime=1360749956.28781195 30 atime=1360750003.951811645 30 ctime=1360750008.915811613 fluxbox-1.3.5/nls/ru_RU/Makefile.in0000644000175000017500000002714412106662604016207 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/ru_RU/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/ru_RU DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = ru_RU SRC_CODESET = KOI8-R DEST_CODESETS = KOI8-R UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/ru_RU/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/ru_RU/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/ru_RU/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020140 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749854.135812604 30 ctime=1360750008.919811613 fluxbox-1.3.5/nls/ru_RU/Makefile.am0000644000175000017500000000300012106662425016160 0ustar00mgmg00000000000000# nls/ru_RU/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = ru_RU SRC_CODESET = KOI8-R DEST_CODESETS = KOI8-R UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/pt_BR0000644000175000017500000000013212106662665016007 xustar000000000000000030 mtime=1360750005.787811633 30 atime=1360750008.919811613 30 ctime=1360750008.919811613 fluxbox-1.3.5/nls/pt_BR/0000755000175000017500000000000012106662665014113 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/pt_BR/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662462020774 xustar000000000000000030 mtime=1360749874.903812471 30 atime=1360749874.915812471 30 ctime=1360750008.919811613 fluxbox-1.3.5/nls/pt_BR/generated-UTF-8.m0000644000175000017500000001543712106662462017035 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Embaixo no centro 2 Embaixo à esquerda 3 Embaixo à direita 4 Horizontal 5 À esquerda 6 À esquerda embaixo 7 À esquerda no centro 8 À esquerda em cima 9 Relativo 10 À direita 11 À direita embaixo 12 À direita no centro 13 À direita em cima 14 Em cima no centro 15 Em cima à esquerda 16 Em cima à direita 17 Vertical 18 No centro 19 Em cima 20 Embaixo $set 2 #BaseDisplay 1 Abortando... despejando o núcleo\n 2 Desligando\n 3 %s: sinal %d recebido\n $set 3 #Common 1 Alfa 2 Auto-ocultar 3 Compilado 4 Opções de compilação 5 Compilador 6 Versão do compilador 7 init 8 keys 9 nls 10 menu 11 style 12 Padrões 13 desativado 14 Erro 15 Versão do Fluxbox 16 Maximizar sobre 17 Revisão do GIT 18 Visível 19 Não há uma opção de fundo especificada neste tema.\nPor favor, consulte o manual ou leia o FAQ. $set 4 #Configmenu 1 Antialias 2 Por cima automaticamente 3 Clicar põe por cima 4 Clicar para focar 5 Decorar janelas transitórias 6 Roda do mouse sobre o desktop muda espaço de trabalho 7 Focar a janela ao mudar espaço de trabalho 8 Modelo de foco 9 Focar novas janelas 10 Maximização total 11 Ditherização de imagens 12 Movimentação opaca de janelas 14 Foco com o mouse 15 Espaços de trabalho contínuos 16 Forçar pseudotransparência 17 Alfa do Menu 18 Transparência 19 Alfa da janela com foco 20 Alfa da janela sem foco 21 Opções de abas 22 Abas na barra de título 23 Largura da aba externa 24 Clicar foca a aba 25 Mouse foca a aba 26 Opções de maximização 27 Ignorar incremento do redimensionamento 28 Desabilitar a movimentação 29 Desabilitar o redimensionamento $set 5 #Ewmh 1 Fatal: memória insuficiente, não é possível alocar memória para a lista de clientes EWMH $set 6 #FbTkError 1 Atenção! Altura > 3200, definindo Altura = 3200 2 Atenção! Largura > 3200, definindo Largura = 3200 3 Aviso: não é possível carregar a fonte de reserva 4 Erro de alocação. 5 Erro na criação de pixmap 6 Não é possível criar XImage 7 Falha na leitura 8 Aviso: não foi possível encontrar um formato válido para o alfa. 9 Aviso: não foi possível criar uma imagem alfa. 10 Aviso: não foi possível criar um pixmap alfa. 11 Não foi possível encontrar um formato para a tela(%d) 12 Memória insuficiente 13 Memória insuficiente ao alocar o buffer do azul. 14 Memória insuficiente ao alocar o buffer do verde. 15 Memória insuficiente ao alocar o buffer do vermelho. 16 Falha na leitura de item do tema 17 visual não suportado 18 Definindo pelo valor padrão $set 7 #Fluxbox 1 O nome do arquivo rc é inválido! 2 Não foi possível carregar o arquivo de grupos 3 Não foi possível carregar a base de dados 4 Tentando novamente com 5 Atenção! Não foi encontrada uma tela para onde mapear a janela! 6 Não é possível criar diretorio %s 7 Não foram encontradas telas para gerenciar.\nAssegure-se de que não há outro gerenciador de janelas ativo. 8 Erro ao analisar expressão regular 9 Fatal! Só é possível haver uma instância da classe fluxbox. 10 Não é possível conectar-se ao servidor X.\nAssegure-se de que o X foi iniciado antes do Fluxbox. 11 Aviso: o servidor X não suporta o locale 12 Aviso: não é possível estabelecer modificadores de locale $set 8 #Gnome 1 Fatal: memória insuficiente, não é possível alocar memória para a lista de clientes do GNOME $set 9 #Keys 1 Keys: erro na linha 2 Keys: não foi possível fundir a árvore de teclas! 3 Keys: tecla/modificador inválido na linha $set 10 #Menu 1 Configuração 2 Menu padrão do Fluxbox 3 Sair 4 Janelas minimizadas 5 Camada... 6 No monitor... 7 Posicionamento 8 Recarregar a configuração 9 Reiniciar 10 Aviso: etiquetas [codificação] desbalanceadas $set 11 #Remember 1 Decorações 2 Dimensões 3 Ir para o espaço de trabalho 4 Camada 5 Memorizar... 6 Posição 7 Salvar ao sair 8 Enrolada 9 Pregada 10 Chave apps desconhecida 11 Espaço de trabalho 12 Monitor 13 Transparência $set 12 #Screen 1 BScreen::BScreen: ocorreu um erro ao interrogar o servidor X.\n outro gerenciador de janelas está ativo 2 L: %4d x A: %4d 3 BScreen::BScreen: gerenciando tela %d usando visual 0x%lx, com profundidade %d\n 4 L: %04d x A: %04d $set 13 #Slit 1 Clientes 2 Circular para baixo 3 Circular para cima 4 Direção do Slit: 5 Camada do Slit 6 Slit no monitor 7 Posicionamento do Slit 8 Slit 9 Salvar lista do Slit $set 14 #Toolbar 1 Renomear o espaço de trabalho atual 2 Modo da barra de janelas 3 Todas as janelas 4 Minimizadas 5 Nenhuma 6 Espaço de trabalho 7 Minimizadas no espaço de trabalho 8 Camada da barra de tarefas 9 Barra de tarefas no monitor 10 Posicionamento da barra de tarefas 11 Barra de tarefas 12 Largura da barra em porcentagem 13 Relógio: 24h 14 Relógio: 12h 15 Editar o formato do relógio 16 Exibir imagens 17 Não minimizadas 18 Não minimizadas no espaço de trabalho $set 15 #Window 1 Sem nome $set 16 #Windowmenu 1 Fechar 2 Minimizar 3 Camada 4 Por baixo 5 Maximizar 6 Por cima 7 Enviar para... 8 Enrolar 9 Pregar 10 Matar 11 Usar valores padrão 12 Definir o título da janela $set 17 #Workspace 1 Espaço de trabalho %d 2 Espaços de trabalho 3 Novo espaço de trabalho 4 Remover o último $set 18 #fbsetroot 1 Erro: é necessário especificar um entre: -solid, -mod, -gradient\n 2 Não foi possível criar átomos de pixmap, desistindo! 3 -display conexão com monitor\n\ -mod padrão modula\n\ -foreground, -fg cor de primeiro plano modula\n\ -background, -bg cor de fundo modula\n\n\ -gradient textura do gradiente\n\ -from cor de início do gradiente\n\ -to cor de término do gradiente\n\n\ -solid cor sólida\n\n\ -help exibir esta ajuda e sair\n $set 19 #main 1 erro: '-display' requer um argumento 2 Alocação inválida 3 Conversão inválida 4 Fora dos limites 5 Erro de execução 6 Exceção padrão 7 Erro desconhecido 8 erro: '-log' requer um argumento 9 Arquivo de log 10 Registrando o log em 11 erro: '-rc' requer um argumento 12 erro: '-screen' requer um argumento 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ Site: http://www.fluxbox.org/\n\n\ -display \t\tusar conexão com o monitor.\n\ -screen \texecutar apenas nas telas especificadas.\n\ -rc \t\t\tusar arquivo de configuração alternativo.\n\ -version\t\t\texibir a versão e finalizar.\n\ -info\t\t\t\texibir algumas informações úteis.\n\ -list-commands\t\t\tlistar todos os comandos de teclas válidos.\n\ -sync\t\t\t\tsincronizar com o servidor X para depuração.\n\ -log \t\t\tlogar a saída no arquivo.\n\ -help\t\t\t\texibir esta ajuda e sair.\n\n 14 aviso: não foi possível definir a variável de ambiente 'DISPLAY' $set 20 #layers 1 Acima do dock 2 Embaixo 3 Desktop 4 Dock 5 Normal 6 Em cima fluxbox-1.3.5/nls/pt_BR/PaxHeaders.25974/generated-ISO-8859-1.m0000644000175000017500000000013212106662462021374 xustar000000000000000030 mtime=1360749874.899812471 30 atime=1360749874.915812471 30 ctime=1360750008.919811613 fluxbox-1.3.5/nls/pt_BR/generated-ISO-8859-1.m0000644000175000017500000001515112106662462017426 0ustar00mgmg00000000000000$ codeset=ISO-8859-1 $set 1 #Align 1 Embaixo no centro 2 Embaixo à esquerda 3 Embaixo à direita 4 Horizontal 5 À esquerda 6 À esquerda embaixo 7 À esquerda no centro 8 À esquerda em cima 9 Relativo 10 À direita 11 À direita embaixo 12 À direita no centro 13 À direita em cima 14 Em cima no centro 15 Em cima à esquerda 16 Em cima à direita 17 Vertical 18 No centro 19 Em cima 20 Embaixo $set 2 #BaseDisplay 1 Abortando... despejando o núcleo\n 2 Desligando\n 3 %s: sinal %d recebido\n $set 3 #Common 1 Alfa 2 Auto-ocultar 3 Compilado 4 Opções de compilação 5 Compilador 6 Versão do compilador 7 init 8 keys 9 nls 10 menu 11 style 12 Padrões 13 desativado 14 Erro 15 Versão do Fluxbox 16 Maximizar sobre 17 Revisão do GIT 18 Visível 19 Não há uma opção de fundo especificada neste tema.\nPor favor, consulte o manual ou leia o FAQ. $set 4 #Configmenu 1 Antialias 2 Por cima automaticamente 3 Clicar põe por cima 4 Clicar para focar 5 Decorar janelas transitórias 6 Roda do mouse sobre o desktop muda espaço de trabalho 7 Focar a janela ao mudar espaço de trabalho 8 Modelo de foco 9 Focar novas janelas 10 Maximização total 11 Ditherização de imagens 12 Movimentação opaca de janelas 14 Foco com o mouse 15 Espaços de trabalho contínuos 16 Forçar pseudotransparência 17 Alfa do Menu 18 Transparência 19 Alfa da janela com foco 20 Alfa da janela sem foco 21 Opções de abas 22 Abas na barra de título 23 Largura da aba externa 24 Clicar foca a aba 25 Mouse foca a aba 26 Opções de maximização 27 Ignorar incremento do redimensionamento 28 Desabilitar a movimentação 29 Desabilitar o redimensionamento $set 5 #Ewmh 1 Fatal: memória insuficiente, não é possível alocar memória para a lista de clientes EWMH $set 6 #FbTkError 1 Atenção! Altura > 3200, definindo Altura = 3200 2 Atenção! Largura > 3200, definindo Largura = 3200 3 Aviso: não é possível carregar a fonte de reserva 4 Erro de alocação. 5 Erro na criação de pixmap 6 Não é possível criar XImage 7 Falha na leitura 8 Aviso: não foi possível encontrar um formato válido para o alfa. 9 Aviso: não foi possível criar uma imagem alfa. 10 Aviso: não foi possível criar um pixmap alfa. 11 Não foi possível encontrar um formato para a tela(%d) 12 Memória insuficiente 13 Memória insuficiente ao alocar o buffer do azul. 14 Memória insuficiente ao alocar o buffer do verde. 15 Memória insuficiente ao alocar o buffer do vermelho. 16 Falha na leitura de item do tema 17 visual não suportado 18 Definindo pelo valor padrão $set 7 #Fluxbox 1 O nome do arquivo rc é inválido! 2 Não foi possível carregar o arquivo de grupos 3 Não foi possível carregar a base de dados 4 Tentando novamente com 5 Atenção! Não foi encontrada uma tela para onde mapear a janela! 6 Não é possível criar diretorio %s 7 Não foram encontradas telas para gerenciar.\nAssegure-se de que não há outro gerenciador de janelas ativo. 8 Erro ao analisar expressão regular 9 Fatal! Só é possível haver uma instância da classe fluxbox. 10 Não é possível conectar-se ao servidor X.\nAssegure-se de que o X foi iniciado antes do Fluxbox. 11 Aviso: o servidor X não suporta o locale 12 Aviso: não é possível estabelecer modificadores de locale $set 8 #Gnome 1 Fatal: memória insuficiente, não é possível alocar memória para a lista de clientes do GNOME $set 9 #Keys 1 Keys: erro na linha 2 Keys: não foi possível fundir a árvore de teclas! 3 Keys: tecla/modificador inválido na linha $set 10 #Menu 1 Configuração 2 Menu padrão do Fluxbox 3 Sair 4 Janelas minimizadas 5 Camada... 6 No monitor... 7 Posicionamento 8 Recarregar a configuração 9 Reiniciar 10 Aviso: etiquetas [codificação] desbalanceadas $set 11 #Remember 1 Decorações 2 Dimensões 3 Ir para o espaço de trabalho 4 Camada 5 Memorizar... 6 Posição 7 Salvar ao sair 8 Enrolada 9 Pregada 10 Chave apps desconhecida 11 Espaço de trabalho 12 Monitor 13 Transparência $set 12 #Screen 1 BScreen::BScreen: ocorreu um erro ao interrogar o servidor X.\n outro gerenciador de janelas está ativo 2 L: %4d x A: %4d 3 BScreen::BScreen: gerenciando tela %d usando visual 0x%lx, com profundidade %d\n 4 L: %04d x A: %04d $set 13 #Slit 1 Clientes 2 Circular para baixo 3 Circular para cima 4 Direção do Slit: 5 Camada do Slit 6 Slit no monitor 7 Posicionamento do Slit 8 Slit 9 Salvar lista do Slit $set 14 #Toolbar 1 Renomear o espaço de trabalho atual 2 Modo da barra de janelas 3 Todas as janelas 4 Minimizadas 5 Nenhuma 6 Espaço de trabalho 7 Minimizadas no espaço de trabalho 8 Camada da barra de tarefas 9 Barra de tarefas no monitor 10 Posicionamento da barra de tarefas 11 Barra de tarefas 12 Largura da barra em porcentagem 13 Relógio: 24h 14 Relógio: 12h 15 Editar o formato do relógio 16 Exibir imagens 17 Não minimizadas 18 Não minimizadas no espaço de trabalho $set 15 #Window 1 Sem nome $set 16 #Windowmenu 1 Fechar 2 Minimizar 3 Camada 4 Por baixo 5 Maximizar 6 Por cima 7 Enviar para... 8 Enrolar 9 Pregar 10 Matar 11 Usar valores padrão 12 Definir o título da janela $set 17 #Workspace 1 Espaço de trabalho %d 2 Espaços de trabalho 3 Novo espaço de trabalho 4 Remover o último $set 18 #fbsetroot 1 Erro: é necessário especificar um entre: -solid, -mod, -gradient\n 2 Não foi possível criar átomos de pixmap, desistindo! 3 -display conexão com monitor\n\ -mod padrão modula\n\ -foreground, -fg cor de primeiro plano modula\n\ -background, -bg cor de fundo modula\n\n\ -gradient textura do gradiente\n\ -from cor de início do gradiente\n\ -to cor de término do gradiente\n\n\ -solid cor sólida\n\n\ -help exibir esta ajuda e sair\n $set 19 #main 1 erro: '-display' requer um argumento 2 Alocação inválida 3 Conversão inválida 4 Fora dos limites 5 Erro de execução 6 Exceção padrão 7 Erro desconhecido 8 erro: '-log' requer um argumento 9 Arquivo de log 10 Registrando o log em 11 erro: '-rc' requer um argumento 12 erro: '-screen' requer um argumento 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ Site: http://www.fluxbox.org/\n\n\ -display \t\tusar conexão com o monitor.\n\ -screen \texecutar apenas nas telas especificadas.\n\ -rc \t\t\tusar arquivo de configuração alternativo.\n\ -version\t\t\texibir a versão e finalizar.\n\ -info\t\t\t\texibir algumas informações úteis.\n\ -list-commands\t\t\tlistar todos os comandos de teclas válidos.\n\ -sync\t\t\t\tsincronizar com o servidor X para depuração.\n\ -log \t\t\tlogar a saída no arquivo.\n\ -help\t\t\t\texibir esta ajuda e sair.\n\n 14 aviso: não foi possível definir a variável de ambiente 'DISPLAY' $set 20 #layers 1 Acima do dock 2 Embaixo 3 Desktop 4 Dock 5 Normal 6 Em cima fluxbox-1.3.5/nls/pt_BR/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020532 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749874.899812471 30 ctime=1360750008.919811613 fluxbox-1.3.5/nls/pt_BR/Translation.m0000644000175000017500000001543712106662425016573 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Embaixo no centro 2 Embaixo à esquerda 3 Embaixo à direita 4 Horizontal 5 À esquerda 6 À esquerda embaixo 7 À esquerda no centro 8 À esquerda em cima 9 Relativo 10 À direita 11 À direita embaixo 12 À direita no centro 13 À direita em cima 14 Em cima no centro 15 Em cima à esquerda 16 Em cima à direita 17 Vertical 18 No centro 19 Em cima 20 Embaixo $set 2 #BaseDisplay 1 Abortando... despejando o núcleo\n 2 Desligando\n 3 %s: sinal %d recebido\n $set 3 #Common 1 Alfa 2 Auto-ocultar 3 Compilado 4 Opções de compilação 5 Compilador 6 Versão do compilador 7 init 8 keys 9 nls 10 menu 11 style 12 Padrões 13 desativado 14 Erro 15 Versão do Fluxbox 16 Maximizar sobre 17 Revisão do GIT 18 Visível 19 Não há uma opção de fundo especificada neste tema.\nPor favor, consulte o manual ou leia o FAQ. $set 4 #Configmenu 1 Antialias 2 Por cima automaticamente 3 Clicar põe por cima 4 Clicar para focar 5 Decorar janelas transitórias 6 Roda do mouse sobre o desktop muda espaço de trabalho 7 Focar a janela ao mudar espaço de trabalho 8 Modelo de foco 9 Focar novas janelas 10 Maximização total 11 Ditherização de imagens 12 Movimentação opaca de janelas 14 Foco com o mouse 15 Espaços de trabalho contínuos 16 Forçar pseudotransparência 17 Alfa do Menu 18 Transparência 19 Alfa da janela com foco 20 Alfa da janela sem foco 21 Opções de abas 22 Abas na barra de título 23 Largura da aba externa 24 Clicar foca a aba 25 Mouse foca a aba 26 Opções de maximização 27 Ignorar incremento do redimensionamento 28 Desabilitar a movimentação 29 Desabilitar o redimensionamento $set 5 #Ewmh 1 Fatal: memória insuficiente, não é possível alocar memória para a lista de clientes EWMH $set 6 #FbTkError 1 Atenção! Altura > 3200, definindo Altura = 3200 2 Atenção! Largura > 3200, definindo Largura = 3200 3 Aviso: não é possível carregar a fonte de reserva 4 Erro de alocação. 5 Erro na criação de pixmap 6 Não é possível criar XImage 7 Falha na leitura 8 Aviso: não foi possível encontrar um formato válido para o alfa. 9 Aviso: não foi possível criar uma imagem alfa. 10 Aviso: não foi possível criar um pixmap alfa. 11 Não foi possível encontrar um formato para a tela(%d) 12 Memória insuficiente 13 Memória insuficiente ao alocar o buffer do azul. 14 Memória insuficiente ao alocar o buffer do verde. 15 Memória insuficiente ao alocar o buffer do vermelho. 16 Falha na leitura de item do tema 17 visual não suportado 18 Definindo pelo valor padrão $set 7 #Fluxbox 1 O nome do arquivo rc é inválido! 2 Não foi possível carregar o arquivo de grupos 3 Não foi possível carregar a base de dados 4 Tentando novamente com 5 Atenção! Não foi encontrada uma tela para onde mapear a janela! 6 Não é possível criar diretorio %s 7 Não foram encontradas telas para gerenciar.\nAssegure-se de que não há outro gerenciador de janelas ativo. 8 Erro ao analisar expressão regular 9 Fatal! Só é possível haver uma instância da classe fluxbox. 10 Não é possível conectar-se ao servidor X.\nAssegure-se de que o X foi iniciado antes do Fluxbox. 11 Aviso: o servidor X não suporta o locale 12 Aviso: não é possível estabelecer modificadores de locale $set 8 #Gnome 1 Fatal: memória insuficiente, não é possível alocar memória para a lista de clientes do GNOME $set 9 #Keys 1 Keys: erro na linha 2 Keys: não foi possível fundir a árvore de teclas! 3 Keys: tecla/modificador inválido na linha $set 10 #Menu 1 Configuração 2 Menu padrão do Fluxbox 3 Sair 4 Janelas minimizadas 5 Camada... 6 No monitor... 7 Posicionamento 8 Recarregar a configuração 9 Reiniciar 10 Aviso: etiquetas [codificação] desbalanceadas $set 11 #Remember 1 Decorações 2 Dimensões 3 Ir para o espaço de trabalho 4 Camada 5 Memorizar... 6 Posição 7 Salvar ao sair 8 Enrolada 9 Pregada 10 Chave apps desconhecida 11 Espaço de trabalho 12 Monitor 13 Transparência $set 12 #Screen 1 BScreen::BScreen: ocorreu um erro ao interrogar o servidor X.\n outro gerenciador de janelas está ativo 2 L: %4d x A: %4d 3 BScreen::BScreen: gerenciando tela %d usando visual 0x%lx, com profundidade %d\n 4 L: %04d x A: %04d $set 13 #Slit 1 Clientes 2 Circular para baixo 3 Circular para cima 4 Direção do Slit: 5 Camada do Slit 6 Slit no monitor 7 Posicionamento do Slit 8 Slit 9 Salvar lista do Slit $set 14 #Toolbar 1 Renomear o espaço de trabalho atual 2 Modo da barra de janelas 3 Todas as janelas 4 Minimizadas 5 Nenhuma 6 Espaço de trabalho 7 Minimizadas no espaço de trabalho 8 Camada da barra de tarefas 9 Barra de tarefas no monitor 10 Posicionamento da barra de tarefas 11 Barra de tarefas 12 Largura da barra em porcentagem 13 Relógio: 24h 14 Relógio: 12h 15 Editar o formato do relógio 16 Exibir imagens 17 Não minimizadas 18 Não minimizadas no espaço de trabalho $set 15 #Window 1 Sem nome $set 16 #Windowmenu 1 Fechar 2 Minimizar 3 Camada 4 Por baixo 5 Maximizar 6 Por cima 7 Enviar para... 8 Enrolar 9 Pregar 10 Matar 11 Usar valores padrão 12 Definir o título da janela $set 17 #Workspace 1 Espaço de trabalho %d 2 Espaços de trabalho 3 Novo espaço de trabalho 4 Remover o último $set 18 #fbsetroot 1 Erro: é necessário especificar um entre: -solid, -mod, -gradient\n 2 Não foi possível criar átomos de pixmap, desistindo! 3 -display conexão com monitor\n\ -mod padrão modula\n\ -foreground, -fg cor de primeiro plano modula\n\ -background, -bg cor de fundo modula\n\n\ -gradient textura do gradiente\n\ -from cor de início do gradiente\n\ -to cor de término do gradiente\n\n\ -solid cor sólida\n\n\ -help exibir esta ajuda e sair\n $set 19 #main 1 erro: '-display' requer um argumento 2 Alocação inválida 3 Conversão inválida 4 Fora dos limites 5 Erro de execução 6 Exceção padrão 7 Erro desconhecido 8 erro: '-log' requer um argumento 9 Arquivo de log 10 Registrando o log em 11 erro: '-rc' requer um argumento 12 erro: '-screen' requer um argumento 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ Site: http://www.fluxbox.org/\n\n\ -display \t\tusar conexão com o monitor.\n\ -screen \texecutar apenas nas telas especificadas.\n\ -rc \t\t\tusar arquivo de configuração alternativo.\n\ -version\t\t\texibir a versão e finalizar.\n\ -info\t\t\t\texibir algumas informações úteis.\n\ -list-commands\t\t\tlistar todos os comandos de teclas válidos.\n\ -sync\t\t\t\tsincronizar com o servidor X para depuração.\n\ -log \t\t\tlogar a saída no arquivo.\n\ -help\t\t\t\texibir esta ajuda e sair.\n\n 14 aviso: não foi possível definir a variável de ambiente 'DISPLAY' $set 20 #layers 1 Acima do dock 2 Embaixo 3 Desktop 4 Dock 5 Normal 6 Em cima fluxbox-1.3.5/nls/pt_BR/PaxHeaders.25974/Makefile.in0000644000175000017500000000013112106662604020121 xustar000000000000000029 mtime=1360749956.24381195 30 atime=1360750003.915811645 30 ctime=1360750008.923811613 fluxbox-1.3.5/nls/pt_BR/Makefile.in0000644000175000017500000002714712106662604016164 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/pt_BR/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/pt_BR DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = pt_BR SRC_CODESET = UTF-8 DEST_CODESETS = ISO-8859-1 UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/pt_BR/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/pt_BR/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/pt_BR/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020112 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749854.091812604 30 ctime=1360750008.923811613 fluxbox-1.3.5/nls/pt_BR/Makefile.am0000644000175000017500000000300312106662425016135 0ustar00mgmg00000000000000# nls/pt_BR/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = pt_BR SRC_CODESET = UTF-8 DEST_CODESETS = ISO-8859-1 UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/fr_FR0000644000175000017500000000013212106662665015777 xustar000000000000000030 mtime=1360750005.751811633 30 atime=1360750008.923811613 30 ctime=1360750008.923811613 fluxbox-1.3.5/nls/fr_FR/0000755000175000017500000000000012106662665014103 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/fr_FR/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662462020764 xustar000000000000000030 mtime=1360749874.859812471 30 atime=1360749874.875812471 30 ctime=1360750008.923811613 fluxbox-1.3.5/nls/fr_FR/generated-UTF-8.m0000644000175000017500000001445312106662462017022 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 En bas au centre 2 En bas à gauche 3 En bas à droite 4 Horizontale 5 A gauche 6 A gauche en bas 7 A gauche au centre 8 A gauche en haut 9 Relatif 10 A droite 11 A droite en bas 12 A droite au centre 13 A droite en haut 14 En haut au centre 15 En haut à gauche 16 En haut à droite 17 Vertical $set 2 #BaseDisplay 1 Interruption ...vidage de la mémoire\n 2 Fermeture du programme\n 3 %s: signal %d reçus\n $set 3 #Common 1 Transparence 2 Masquer automatiquement 3 Compilé 4 Options compilées 5 Compilateur 6 Version du compilateur 12 Défauts 13 désactivé 14 Erreur 15 Version de Fluxbox 16 Maximiser 17 Révision GIT 18 Visible 19 Aucune option d'arrière plan n'a été spécifié dans ce style.\nVeuillez consulter le manuel ou bien liser la FAQ. $set 4 #Configmenu 1 Lissage des polices 2 Premier plan automatique 3 Cliquer pour mettre au premier-plan 4 Cliquer pour converger 5 Décorer les fenêtres transitoires 6 Changer de bureau à l'aide de la molette 7 Converger la fenêtre au changement de bureau 8 Modèle de convergence 9 Converger sur les nouvelles fenêtres 10 Maximisation complète 11 Estompage d'images 12 Déplacement opaque des fenêtres 14 Convergence souple 15 Glisser les fenêtres sur les autres bureaux 16 Forcer la pseudo-transparence 17 Transparence du menu 18 Transparence 19 Fenêtre active 20 Fenêtre passive 21 Options des onglets 22 Onglets sur la barre de titre 23 Largeur de l'onglet externe 24 Sélectionner l'onglet par clique 25 Sélectionner l'onglet avec la souris $set 5 #Ewmh 1 Mémoire insuffisante, impossible d'allouer de la mémoire pour la liste de client EWMH $set 6 #FbTkError 1 Avertissement ! Hauteur > 3200, parametre de hauteur = 3200 2 Avertissement ! Largeur > 3200 Paramètre de hauteur = 3200 3 impossible de charger la police par défaut 4 Erreur d'allocation. 5 Erreur de création du pixmap 6 Impossible de créer XImage 7 La lecture a échoué 8 aucun format valide pour la transparence. 9 la création de l'image alpha a échoué. 10 la création du pixmap transparent a échoué. 11 Impossible de trouver un format valide pour l'écran(%d) 12 Mémoire insuffisante 13 Mémoire insuffisante pour l'allocation du tampon bleu. 14 Mémoire insuffisante pour l'allocation du tampon vert 15 Mémoire insuffisante pour l'allocation du tampon rouge 16 La lecture de l'élément du thème a échoué 17 affichage non supporté 18 Définition des valeurs par défaut $set 7 #Fluxbox 1 Le fichier rc n'est pas valide ! 2 Le chargement du fichier de groupe a échoué 3 Le chargement de la base de données a échoué 4 Nouvel essai avec 5 Avertissement ! Impossible de trouver un écran pour y afficher la fenêtre ! 6 Impossible de créer le répertoire %s 7 Impossible de trouver un écran à gérer.\nAssurez vous de ne pas avoir un autre gestionnaire de fenêtre en cour d'execution. 8 Erreur lors de l'analyse de l'expression regulière 9 Erreur fatale ! Il ne doit y avoir qu'une seule instance de fluxbox ! 10 Impossible de se connecter au serveur X.\nAssurez vous d'avoir démarrer X avant Fluxbox. 11 X ne prends pas en charge la locale 12 impossible de définir les modificateurs de locale $set 8 #Gnome 1 Mémoire insuffisante, impossible d'allouer de la mémoire pour la liste de client GNOME $set 9 #Keys $set 10 #Menu 2 Menu par défaut de Fluxbox 3 Quitter 4 Icônes 5 Empiler... 6 Sur l'en-tête 7 Disposition 8 Recharger la configuration 9 Redémarrer $set 11 #Remember 1 la décoration 2 la dimension 3 passage au bureau 4 l'empilage 5 Mémoriser... 6 la position 7 enregistrer en quittant 8 l'ombrage 9 le collage 10 Raccourcis d'application inconnu 11 le bureau 12 l'en-tête $set 12 #Screen 1 BScreen::BScreen: une erreur est survenue en interrogeant le serveur X.\n Un autre gestionnaire de fenêtre est en cours d'exécution sur l'affichage 2 L: %4d x H: %4d 3 BScreen::BScreen: gestion de l'ecran %d utilisant l'affichage 0x%lx, de profondeur %d\n $set 13 #Slit 1 Applications 2 Basculer vers le bas 3 Basculer vers le haut 4 Orientation du Slit 5 Empilage du Slit 7 Disposition du Slit 9 Sauver le Slit $set 14 #Toolbar 1 Editer le nom du bureau 2 Mode d'icônification 3 Toutes les fenêtres 4 Icônes 5 Aucun 6 Bureau 7 Icônes du bureau 8 Empiler la barre d'outils 9 Barre d'outils de l'en-tête 10 Disposition de la barre d'outils 11 Barre d'outils 12 Taille de la barre 13 Horloge: 24h 14 Horloge: 12h 15 Format de l'heure 16 Voir les images 17 Sans icône 18 Bureau sans icône $set 15 #Window 1 Sans titre $set 16 #Windowmenu 1 Fermer 2 Icônifier 3 Empilage 4 Arrière-plan 5 Agrandir 6 Avant-plan 7 Déplacer 8 Ombrer 9 Coller 10 Tuer $set 17 #Workspace 1 Bureau %d 2 Bureaux 3 Nouveau bureau 4 Enlever le dernier $set 18 #fbsetroot 1 -solid, -mod, -gradient\n 2 Impossible de créer des atomes de pixmap, abandon ! 3 -display connexion sur l'affichage\n\ -mod motif de modula\n\ -foreground, -fg couleur du premier plan de modula\n\ -background, -bg couleur du second plan de modula\n\n\ -gradient texture du dégradé\n\ -from couleur de départ du dégradé\n\ -to couleur d'arrivé du dégradé\n\n\ -solid couleur pleine\n\n\ -help affiche ce texte d'aide et quitte\n $set 19 #main 1 '-display' nécessite un argument\n 2 Mauvaise allocation 3 Mauvais transtypage 4 Hors des limites 5 Erreur d'exécution 6 Exception standard 7 Erreur inconnue 8 erreur: '-log' nécessite un argument 9 Journal 10 Enregistrement du journal vers 11 erreur: '-rc' nécessite un argument 12 erreur: 'screen' nécessite un argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ Website: http://www.fluxbox.org/\n\n\ -display \t\utilise la connexion sur le display\ -screen \tfonctionne uniquement sur un écran spécifique\ -rc \t\t\tutilise un autre fichier de configuration.\n\ -version\t\t\taffiche la version et quitte.\n\ -info\t\t\t\taffiche quelques informations utiles.\n\ -log \t\t\tjournaliser la sortie vers le fichier.\n\ -help\t\t\t\taffiche ce texte d'aide et quitte.\n\n 14 attention: il n'est pas possible de placer la variable 'DISPLAY' $set 20 #layers 1 En dessous du Dock 2 En bas 3 Sur le bureau 4 Dock 5 Normal 6 En haut du Dock fluxbox-1.3.5/nls/fr_FR/PaxHeaders.25974/generated-ISO-8859-15.m0000644000175000017500000000013212106662462021451 xustar000000000000000030 mtime=1360749874.855812471 30 atime=1360749874.875812471 30 ctime=1360750008.927811613 fluxbox-1.3.5/nls/fr_FR/generated-ISO-8859-15.m0000644000175000017500000001427712106662462017513 0ustar00mgmg00000000000000$ codeset=ISO-8859-15 $set 1 #Align 1 En bas au centre 2 En bas à gauche 3 En bas à droite 4 Horizontale 5 A gauche 6 A gauche en bas 7 A gauche au centre 8 A gauche en haut 9 Relatif 10 A droite 11 A droite en bas 12 A droite au centre 13 A droite en haut 14 En haut au centre 15 En haut à gauche 16 En haut à droite 17 Vertical $set 2 #BaseDisplay 1 Interruption ...vidage de la mémoire\n 2 Fermeture du programme\n 3 %s: signal %d reçus\n $set 3 #Common 1 Transparence 2 Masquer automatiquement 3 Compilé 4 Options compilées 5 Compilateur 6 Version du compilateur 12 Défauts 13 désactivé 14 Erreur 15 Version de Fluxbox 16 Maximiser 17 Révision GIT 18 Visible 19 Aucune option d'arrière plan n'a été spécifié dans ce style.\nVeuillez consulter le manuel ou bien liser la FAQ. $set 4 #Configmenu 1 Lissage des polices 2 Premier plan automatique 3 Cliquer pour mettre au premier-plan 4 Cliquer pour converger 5 Décorer les fenêtres transitoires 6 Changer de bureau à l'aide de la molette 7 Converger la fenêtre au changement de bureau 8 Modèle de convergence 9 Converger sur les nouvelles fenêtres 10 Maximisation complète 11 Estompage d'images 12 Déplacement opaque des fenêtres 14 Convergence souple 15 Glisser les fenêtres sur les autres bureaux 16 Forcer la pseudo-transparence 17 Transparence du menu 18 Transparence 19 Fenêtre active 20 Fenêtre passive 21 Options des onglets 22 Onglets sur la barre de titre 23 Largeur de l'onglet externe 24 Sélectionner l'onglet par clique 25 Sélectionner l'onglet avec la souris $set 5 #Ewmh 1 Mémoire insuffisante, impossible d'allouer de la mémoire pour la liste de client EWMH $set 6 #FbTkError 1 Avertissement ! Hauteur > 3200, parametre de hauteur = 3200 2 Avertissement ! Largeur > 3200 Paramètre de hauteur = 3200 3 impossible de charger la police par défaut 4 Erreur d'allocation. 5 Erreur de création du pixmap 6 Impossible de créer XImage 7 La lecture a échoué 8 aucun format valide pour la transparence. 9 la création de l'image alpha a échoué. 10 la création du pixmap transparent a échoué. 11 Impossible de trouver un format valide pour l'écran(%d) 12 Mémoire insuffisante 13 Mémoire insuffisante pour l'allocation du tampon bleu. 14 Mémoire insuffisante pour l'allocation du tampon vert 15 Mémoire insuffisante pour l'allocation du tampon rouge 16 La lecture de l'élément du thème a échoué 17 affichage non supporté 18 Définition des valeurs par défaut $set 7 #Fluxbox 1 Le fichier rc n'est pas valide ! 2 Le chargement du fichier de groupe a échoué 3 Le chargement de la base de données a échoué 4 Nouvel essai avec 5 Avertissement ! Impossible de trouver un écran pour y afficher la fenêtre ! 6 Impossible de créer le répertoire %s 7 Impossible de trouver un écran à gérer.\nAssurez vous de ne pas avoir un autre gestionnaire de fenêtre en cour d'execution. 8 Erreur lors de l'analyse de l'expression regulière 9 Erreur fatale ! Il ne doit y avoir qu'une seule instance de fluxbox ! 10 Impossible de se connecter au serveur X.\nAssurez vous d'avoir démarrer X avant Fluxbox. 11 X ne prends pas en charge la locale 12 impossible de définir les modificateurs de locale $set 8 #Gnome 1 Mémoire insuffisante, impossible d'allouer de la mémoire pour la liste de client GNOME $set 9 #Keys $set 10 #Menu 2 Menu par défaut de Fluxbox 3 Quitter 4 Icônes 5 Empiler... 6 Sur l'en-tête 7 Disposition 8 Recharger la configuration 9 Redémarrer $set 11 #Remember 1 la décoration 2 la dimension 3 passage au bureau 4 l'empilage 5 Mémoriser... 6 la position 7 enregistrer en quittant 8 l'ombrage 9 le collage 10 Raccourcis d'application inconnu 11 le bureau 12 l'en-tête $set 12 #Screen 1 BScreen::BScreen: une erreur est survenue en interrogeant le serveur X.\n Un autre gestionnaire de fenêtre est en cours d'exécution sur l'affichage 2 L: %4d x H: %4d 3 BScreen::BScreen: gestion de l'ecran %d utilisant l'affichage 0x%lx, de profondeur %d\n $set 13 #Slit 1 Applications 2 Basculer vers le bas 3 Basculer vers le haut 4 Orientation du Slit 5 Empilage du Slit 7 Disposition du Slit 9 Sauver le Slit $set 14 #Toolbar 1 Editer le nom du bureau 2 Mode d'icônification 3 Toutes les fenêtres 4 Icônes 5 Aucun 6 Bureau 7 Icônes du bureau 8 Empiler la barre d'outils 9 Barre d'outils de l'en-tête 10 Disposition de la barre d'outils 11 Barre d'outils 12 Taille de la barre 13 Horloge: 24h 14 Horloge: 12h 15 Format de l'heure 16 Voir les images 17 Sans icône 18 Bureau sans icône $set 15 #Window 1 Sans titre $set 16 #Windowmenu 1 Fermer 2 Icônifier 3 Empilage 4 Arrière-plan 5 Agrandir 6 Avant-plan 7 Déplacer 8 Ombrer 9 Coller 10 Tuer $set 17 #Workspace 1 Bureau %d 2 Bureaux 3 Nouveau bureau 4 Enlever le dernier $set 18 #fbsetroot 1 -solid, -mod, -gradient\n 2 Impossible de créer des atomes de pixmap, abandon ! 3 -display connexion sur l'affichage\n\ -mod motif de modula\n\ -foreground, -fg couleur du premier plan de modula\n\ -background, -bg couleur du second plan de modula\n\n\ -gradient texture du dégradé\n\ -from couleur de départ du dégradé\n\ -to couleur d'arrivé du dégradé\n\n\ -solid couleur pleine\n\n\ -help affiche ce texte d'aide et quitte\n $set 19 #main 1 '-display' nécessite un argument\n 2 Mauvaise allocation 3 Mauvais transtypage 4 Hors des limites 5 Erreur d'exécution 6 Exception standard 7 Erreur inconnue 8 erreur: '-log' nécessite un argument 9 Journal 10 Enregistrement du journal vers 11 erreur: '-rc' nécessite un argument 12 erreur: 'screen' nécessite un argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ Website: http://www.fluxbox.org/\n\n\ -display \t\utilise la connexion sur le display\ -screen \tfonctionne uniquement sur un écran spécifique\ -rc \t\t\tutilise un autre fichier de configuration.\n\ -version\t\t\taffiche la version et quitte.\n\ -info\t\t\t\taffiche quelques informations utiles.\n\ -log \t\t\tjournaliser la sortie vers le fichier.\n\ -help\t\t\t\taffiche ce texte d'aide et quitte.\n\n 14 attention: il n'est pas possible de placer la variable 'DISPLAY' $set 20 #layers 1 En dessous du Dock 2 En bas 3 Sur le bureau 4 Dock 5 Normal 6 En haut du Dock fluxbox-1.3.5/nls/fr_FR/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020522 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749874.855812471 30 ctime=1360750008.927811613 fluxbox-1.3.5/nls/fr_FR/Translation.m0000644000175000017500000001427712106662425016564 0ustar00mgmg00000000000000$ codeset=ISO-8859-15 $set 1 #Align 1 En bas au centre 2 En bas à gauche 3 En bas à droite 4 Horizontale 5 A gauche 6 A gauche en bas 7 A gauche au centre 8 A gauche en haut 9 Relatif 10 A droite 11 A droite en bas 12 A droite au centre 13 A droite en haut 14 En haut au centre 15 En haut à gauche 16 En haut à droite 17 Vertical $set 2 #BaseDisplay 1 Interruption ...vidage de la mémoire\n 2 Fermeture du programme\n 3 %s: signal %d reçus\n $set 3 #Common 1 Transparence 2 Masquer automatiquement 3 Compilé 4 Options compilées 5 Compilateur 6 Version du compilateur 12 Défauts 13 désactivé 14 Erreur 15 Version de Fluxbox 16 Maximiser 17 Révision GIT 18 Visible 19 Aucune option d'arrière plan n'a été spécifié dans ce style.\nVeuillez consulter le manuel ou bien liser la FAQ. $set 4 #Configmenu 1 Lissage des polices 2 Premier plan automatique 3 Cliquer pour mettre au premier-plan 4 Cliquer pour converger 5 Décorer les fenêtres transitoires 6 Changer de bureau à l'aide de la molette 7 Converger la fenêtre au changement de bureau 8 Modèle de convergence 9 Converger sur les nouvelles fenêtres 10 Maximisation complète 11 Estompage d'images 12 Déplacement opaque des fenêtres 14 Convergence souple 15 Glisser les fenêtres sur les autres bureaux 16 Forcer la pseudo-transparence 17 Transparence du menu 18 Transparence 19 Fenêtre active 20 Fenêtre passive 21 Options des onglets 22 Onglets sur la barre de titre 23 Largeur de l'onglet externe 24 Sélectionner l'onglet par clique 25 Sélectionner l'onglet avec la souris $set 5 #Ewmh 1 Mémoire insuffisante, impossible d'allouer de la mémoire pour la liste de client EWMH $set 6 #FbTkError 1 Avertissement ! Hauteur > 3200, parametre de hauteur = 3200 2 Avertissement ! Largeur > 3200 Paramètre de hauteur = 3200 3 impossible de charger la police par défaut 4 Erreur d'allocation. 5 Erreur de création du pixmap 6 Impossible de créer XImage 7 La lecture a échoué 8 aucun format valide pour la transparence. 9 la création de l'image alpha a échoué. 10 la création du pixmap transparent a échoué. 11 Impossible de trouver un format valide pour l'écran(%d) 12 Mémoire insuffisante 13 Mémoire insuffisante pour l'allocation du tampon bleu. 14 Mémoire insuffisante pour l'allocation du tampon vert 15 Mémoire insuffisante pour l'allocation du tampon rouge 16 La lecture de l'élément du thème a échoué 17 affichage non supporté 18 Définition des valeurs par défaut $set 7 #Fluxbox 1 Le fichier rc n'est pas valide ! 2 Le chargement du fichier de groupe a échoué 3 Le chargement de la base de données a échoué 4 Nouvel essai avec 5 Avertissement ! Impossible de trouver un écran pour y afficher la fenêtre ! 6 Impossible de créer le répertoire %s 7 Impossible de trouver un écran à gérer.\nAssurez vous de ne pas avoir un autre gestionnaire de fenêtre en cour d'execution. 8 Erreur lors de l'analyse de l'expression regulière 9 Erreur fatale ! Il ne doit y avoir qu'une seule instance de fluxbox ! 10 Impossible de se connecter au serveur X.\nAssurez vous d'avoir démarrer X avant Fluxbox. 11 X ne prends pas en charge la locale 12 impossible de définir les modificateurs de locale $set 8 #Gnome 1 Mémoire insuffisante, impossible d'allouer de la mémoire pour la liste de client GNOME $set 9 #Keys $set 10 #Menu 2 Menu par défaut de Fluxbox 3 Quitter 4 Icônes 5 Empiler... 6 Sur l'en-tête 7 Disposition 8 Recharger la configuration 9 Redémarrer $set 11 #Remember 1 la décoration 2 la dimension 3 passage au bureau 4 l'empilage 5 Mémoriser... 6 la position 7 enregistrer en quittant 8 l'ombrage 9 le collage 10 Raccourcis d'application inconnu 11 le bureau 12 l'en-tête $set 12 #Screen 1 BScreen::BScreen: une erreur est survenue en interrogeant le serveur X.\n Un autre gestionnaire de fenêtre est en cours d'exécution sur l'affichage 2 L: %4d x H: %4d 3 BScreen::BScreen: gestion de l'ecran %d utilisant l'affichage 0x%lx, de profondeur %d\n $set 13 #Slit 1 Applications 2 Basculer vers le bas 3 Basculer vers le haut 4 Orientation du Slit 5 Empilage du Slit 7 Disposition du Slit 9 Sauver le Slit $set 14 #Toolbar 1 Editer le nom du bureau 2 Mode d'icônification 3 Toutes les fenêtres 4 Icônes 5 Aucun 6 Bureau 7 Icônes du bureau 8 Empiler la barre d'outils 9 Barre d'outils de l'en-tête 10 Disposition de la barre d'outils 11 Barre d'outils 12 Taille de la barre 13 Horloge: 24h 14 Horloge: 12h 15 Format de l'heure 16 Voir les images 17 Sans icône 18 Bureau sans icône $set 15 #Window 1 Sans titre $set 16 #Windowmenu 1 Fermer 2 Icônifier 3 Empilage 4 Arrière-plan 5 Agrandir 6 Avant-plan 7 Déplacer 8 Ombrer 9 Coller 10 Tuer $set 17 #Workspace 1 Bureau %d 2 Bureaux 3 Nouveau bureau 4 Enlever le dernier $set 18 #fbsetroot 1 -solid, -mod, -gradient\n 2 Impossible de créer des atomes de pixmap, abandon ! 3 -display connexion sur l'affichage\n\ -mod motif de modula\n\ -foreground, -fg couleur du premier plan de modula\n\ -background, -bg couleur du second plan de modula\n\n\ -gradient texture du dégradé\n\ -from couleur de départ du dégradé\n\ -to couleur d'arrivé du dégradé\n\n\ -solid couleur pleine\n\n\ -help affiche ce texte d'aide et quitte\n $set 19 #main 1 '-display' nécessite un argument\n 2 Mauvaise allocation 3 Mauvais transtypage 4 Hors des limites 5 Erreur d'exécution 6 Exception standard 7 Erreur inconnue 8 erreur: '-log' nécessite un argument 9 Journal 10 Enregistrement du journal vers 11 erreur: '-rc' nécessite un argument 12 erreur: 'screen' nécessite un argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ Website: http://www.fluxbox.org/\n\n\ -display \t\utilise la connexion sur le display\ -screen \tfonctionne uniquement sur un écran spécifique\ -rc \t\t\tutilise un autre fichier de configuration.\n\ -version\t\t\taffiche la version et quitte.\n\ -info\t\t\t\taffiche quelques informations utiles.\n\ -log \t\t\tjournaliser la sortie vers le fichier.\n\ -help\t\t\t\taffiche ce texte d'aide et quitte.\n\n 14 attention: il n'est pas possible de placer la variable 'DISPLAY' $set 20 #layers 1 En dessous du Dock 2 En bas 3 Sur le bureau 4 Dock 5 Normal 6 En haut du Dock fluxbox-1.3.5/nls/fr_FR/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603020111 xustar000000000000000030 mtime=1360749955.999811952 30 atime=1360750003.719811646 30 ctime=1360750008.927811613 fluxbox-1.3.5/nls/fr_FR/Makefile.in0000644000175000017500000002715612106662603016153 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/fr_FR/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/fr_FR DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = fr_FR SRC_CODESET = ISO-8859-15 DEST_CODESETS = ISO-8859-15 UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/fr_FR/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/fr_FR/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/fr_FR/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020102 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749853.851812605 30 ctime=1360750008.927811613 fluxbox-1.3.5/nls/fr_FR/Makefile.am0000644000175000017500000000301212106662425016125 0ustar00mgmg00000000000000# nls/fr_FR/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = fr_FR SRC_CODESET = ISO-8859-15 DEST_CODESETS = ISO-8859-15 UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/et_EE0000644000175000017500000000013212106662665015762 xustar000000000000000030 mtime=1360750005.719811633 30 atime=1360750008.931811613 30 ctime=1360750008.931811613 fluxbox-1.3.5/nls/et_EE/0000755000175000017500000000000012106662665014066 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/et_EE/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662462020747 xustar000000000000000030 mtime=1360749874.819812471 30 atime=1360749874.835812471 30 ctime=1360750008.931811613 fluxbox-1.3.5/nls/et_EE/generated-UTF-8.m0000644000175000017500000000403512106662462017000 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 All keskel 2 All vasakul 3 All paremal 4 Horisontaalne 6 Left Bottom 7 Left Center 8 Left Top 13 Right Top 14 Üleval keskel 15 Üleval vasakul 16 Üleval paremal 17 Vertikaalne $set 2 #BaseDisplay $set 3 #Common 2 Auto hide $set 4 #Configmenu 2 Akende esiletoomine 4 Klikka fookuse saamiseks 7 Fokusseeri viimane aken 8 Fookusmood 9 Fookus uutele akendele 10 Üle-ekraani suurendus 11 Piltide teravustamine 12 Nähtav akende liigutamine 13 Semi Sloppy Focus 14 Kaasaskäiv fookus 15 Workspace Warping $set 5 #Ewmh $set 6 #FbTkError $set 7 #Fluxbox $set 8 #Gnome $set 9 #Keys $set 10 #Menu 3 Välju 4 Ikoonid 7 Right Bottom 9 Restart $set 11 #Remember $set 12 #Screen 2 W: %4d x H: %4d 4 W: %04d x H: %04d $set 13 #Slit 4 Prao suund 7 Prao asukoht 8 Pragu $set 14 #Toolbar 1 Muuda töölaua nime 10 Tegumiriba asukoht 11 Tegumiriba $set 15 #Window 1 Nimeta $set 16 #Windowmenu 1 Sulge 2 Ikoniseeri 4 Tahaplaanile 5 Suurenda 6 Esiplaanile 7 Saada... 8 Varjuta 9 Kleebi $set 17 #Workspace 1 Töölaud %d 2 Töölauad 3 Uus töölaud 4 Eemalda viimane $set 18 #fbsetroot 1 viga: pead määratlema ühe järgnevaist: -solid, -mod, -gradient\n 3 -display displei ühendus\n\ -mod moodula tapeet\n\ -foreground, -fg esiplaani värvi moodula\n\ -background, -bg tausta värvi moodula\n\n\ -gradient gradientne tekstuur\n\ -from gradiendi algusvärv\n\ -to gradiendi lõpuvärv\n\n\ -solid ühtne värv\n\n\ -help näida seda abiteksti ja välju\n $set 19 #main 1 viga: '-display' vajab argumenti 11 viga: '-rc' vajab argumenti 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tkasuta displei ühendust.\n\ -rc \t\t\tkasuta alternatiivseid resursse.\n\ -version\t\t\tnäita versiooninumber ja välju.\n\ -info\t\t\t\tdisplay some useful information.\n\ -log \t\t\tlog output to file.\n\ -help\t\t\t\tnäita seda abiteksti ja välju.\n\n fluxbox-1.3.5/nls/et_EE/PaxHeaders.25974/generated-ISO-8859-15.m0000644000175000017500000000013212106662462021434 xustar000000000000000030 mtime=1360749874.815812471 30 atime=1360749874.835812471 30 ctime=1360750008.931811613 fluxbox-1.3.5/nls/et_EE/generated-ISO-8859-15.m0000644000175000017500000000400112106662462017456 0ustar00mgmg00000000000000$ codeset=ISO-8859-15 $set 1 #Align 1 All keskel 2 All vasakul 3 All paremal 4 Horisontaalne 6 Left Bottom 7 Left Center 8 Left Top 13 Right Top 14 Üleval keskel 15 Üleval vasakul 16 Üleval paremal 17 Vertikaalne $set 2 #BaseDisplay $set 3 #Common 2 Auto hide $set 4 #Configmenu 2 Akende esiletoomine 4 Klikka fookuse saamiseks 7 Fokusseeri viimane aken 8 Fookusmood 9 Fookus uutele akendele 10 Üle-ekraani suurendus 11 Piltide teravustamine 12 Nähtav akende liigutamine 13 Semi Sloppy Focus 14 Kaasaskäiv fookus 15 Workspace Warping $set 5 #Ewmh $set 6 #FbTkError $set 7 #Fluxbox $set 8 #Gnome $set 9 #Keys $set 10 #Menu 3 Välju 4 Ikoonid 7 Right Bottom 9 Restart $set 11 #Remember $set 12 #Screen 2 W: %4d x H: %4d 4 W: %04d x H: %04d $set 13 #Slit 4 Prao suund 7 Prao asukoht 8 Pragu $set 14 #Toolbar 1 Muuda töölaua nime 10 Tegumiriba asukoht 11 Tegumiriba $set 15 #Window 1 Nimeta $set 16 #Windowmenu 1 Sulge 2 Ikoniseeri 4 Tahaplaanile 5 Suurenda 6 Esiplaanile 7 Saada... 8 Varjuta 9 Kleebi $set 17 #Workspace 1 Töölaud %d 2 Töölauad 3 Uus töölaud 4 Eemalda viimane $set 18 #fbsetroot 1 viga: pead määratlema ühe järgnevaist: -solid, -mod, -gradient\n 3 -display displei ühendus\n\ -mod moodula tapeet\n\ -foreground, -fg esiplaani värvi moodula\n\ -background, -bg tausta värvi moodula\n\n\ -gradient gradientne tekstuur\n\ -from gradiendi algusvärv\n\ -to gradiendi lõpuvärv\n\n\ -solid ühtne värv\n\n\ -help näida seda abiteksti ja välju\n $set 19 #main 1 viga: '-display' vajab argumenti 11 viga: '-rc' vajab argumenti 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tkasuta displei ühendust.\n\ -rc \t\t\tkasuta alternatiivseid resursse.\n\ -version\t\t\tnäita versiooninumber ja välju.\n\ -info\t\t\t\tdisplay some useful information.\n\ -log \t\t\tlog output to file.\n\ -help\t\t\t\tnäita seda abiteksti ja välju.\n\n fluxbox-1.3.5/nls/et_EE/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020505 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749874.815812471 30 ctime=1360750008.931811613 fluxbox-1.3.5/nls/et_EE/Translation.m0000644000175000017500000000400112106662425016527 0ustar00mgmg00000000000000$ codeset=ISO-8859-15 $set 1 #Align 1 All keskel 2 All vasakul 3 All paremal 4 Horisontaalne 6 Left Bottom 7 Left Center 8 Left Top 13 Right Top 14 Üleval keskel 15 Üleval vasakul 16 Üleval paremal 17 Vertikaalne $set 2 #BaseDisplay $set 3 #Common 2 Auto hide $set 4 #Configmenu 2 Akende esiletoomine 4 Klikka fookuse saamiseks 7 Fokusseeri viimane aken 8 Fookusmood 9 Fookus uutele akendele 10 Üle-ekraani suurendus 11 Piltide teravustamine 12 Nähtav akende liigutamine 13 Semi Sloppy Focus 14 Kaasaskäiv fookus 15 Workspace Warping $set 5 #Ewmh $set 6 #FbTkError $set 7 #Fluxbox $set 8 #Gnome $set 9 #Keys $set 10 #Menu 3 Välju 4 Ikoonid 7 Right Bottom 9 Restart $set 11 #Remember $set 12 #Screen 2 W: %4d x H: %4d 4 W: %04d x H: %04d $set 13 #Slit 4 Prao suund 7 Prao asukoht 8 Pragu $set 14 #Toolbar 1 Muuda töölaua nime 10 Tegumiriba asukoht 11 Tegumiriba $set 15 #Window 1 Nimeta $set 16 #Windowmenu 1 Sulge 2 Ikoniseeri 4 Tahaplaanile 5 Suurenda 6 Esiplaanile 7 Saada... 8 Varjuta 9 Kleebi $set 17 #Workspace 1 Töölaud %d 2 Töölauad 3 Uus töölaud 4 Eemalda viimane $set 18 #fbsetroot 1 viga: pead määratlema ühe järgnevaist: -solid, -mod, -gradient\n 3 -display displei ühendus\n\ -mod moodula tapeet\n\ -foreground, -fg esiplaani värvi moodula\n\ -background, -bg tausta värvi moodula\n\n\ -gradient gradientne tekstuur\n\ -from gradiendi algusvärv\n\ -to gradiendi lõpuvärv\n\n\ -solid ühtne värv\n\n\ -help näida seda abiteksti ja välju\n $set 19 #main 1 viga: '-display' vajab argumenti 11 viga: '-rc' vajab argumenti 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tkasuta displei ühendust.\n\ -rc \t\t\tkasuta alternatiivseid resursse.\n\ -version\t\t\tnäita versiooninumber ja välju.\n\ -info\t\t\t\tdisplay some useful information.\n\ -log \t\t\tlog output to file.\n\ -help\t\t\t\tnäita seda abiteksti ja välju.\n\n fluxbox-1.3.5/nls/et_EE/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603020074 xustar000000000000000030 mtime=1360749955.935811952 30 atime=1360750003.667811646 30 ctime=1360750008.931811613 fluxbox-1.3.5/nls/et_EE/Makefile.in0000644000175000017500000002715612106662603016136 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/et_EE/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/et_EE DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = et_EE SRC_CODESET = ISO-8859-15 DEST_CODESETS = ISO-8859-15 UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/et_EE/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/et_EE/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/et_EE/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020065 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749853.787812606 30 ctime=1360750008.935811613 fluxbox-1.3.5/nls/et_EE/Makefile.am0000644000175000017500000000301212106662425016110 0ustar00mgmg00000000000000# nls/et_EE/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = et_EE SRC_CODESET = ISO-8859-15 DEST_CODESETS = ISO-8859-15 UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/es_ES0000644000175000017500000000013212106662665015777 xustar000000000000000030 mtime=1360750005.683811634 30 atime=1360750008.935811613 30 ctime=1360750008.935811613 fluxbox-1.3.5/nls/es_ES/0000755000175000017500000000000012106662665014103 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/es_ES/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662462020764 xustar000000000000000030 mtime=1360749874.779812471 30 atime=1360749874.795812471 30 ctime=1360750008.935811613 fluxbox-1.3.5/nls/es_ES/generated-UTF-8.m0000644000175000017500000001456012106662462017021 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Abajo al centro 2 Abajo a la izquierda 3 Abajo a la derecha 4 Horizontal 5 A la izquierda 6 A la izquierda abajo 7 A la izquierda al centro 8 A la izquierda arriba 9 Relativo 10 A la derecha 11 A la derecha abajo 12 A la derecha al centro 13 A la derecha arriba 14 Arriba al centro 15 Arriba a la izquierda 16 Arriba a la derecha 17 Vertical $set 2 #BaseDisplay 1 Abortando... volcando nucleo\n 2 Apagando\n 3 %s: señal %d capturada\n $set 3 #Common 1 Alfa 2 Auto ocultar 3 Compilado 4 Opciones compiladas 5 Compilador 6 Versión del compilador 7 init 8 keys 9 nls 10 menu 11 style 12 Opciones por defecto 13 desactivado 14 Error 15 Versión de Fluxbox 16 Maximizar por encima 17 Revisión de GIT 18 Visible 19 No hay una opción de fondo especificada en este estilo.\nPor vafor consulte el manual o lea las FAQ. $set 4 #Configmenu 1 Anti alias 2 Elevar automáticamente las ventanas 3 Seleccionar para elevar 4 Seleccionar para enfocar 5 Decorar las ventanas transitivas 6 Cambiar de escritorio con la rueda del mouse 7 Enfocar última ventana en el cambio de escritorio 8 Modelo de enfoque 9 Enfocar ventanas nuevas 10 Maximización total 11 Simulación de colores en imágenes 12 Movimiento opaco de ventanas 14 El mouse enfoca 15 Workspace Warping 16 Forzar pseudo transparencias 17 Alfa del menu 18 Transparencia 19 Alfa de ventana enfocada 20 Alfa de ventana desenfocada 21 Opciones de solapas 22 Solapas en barra de título 23 Ancho de solapas externas 24 Click sobre la solapa enfoca 25 Mouse sobre la solapa enfoca $set 5 #Ewmh 1 Fatal: Sin memoria, no se puede asignar la lista de clientes EWMH $set 6 #FbTkError 1 ¡Atención! Altura > 3200, estableciendo Altura = 3200 2 ¡Atención! Ancho > 3200, estableciendo Ancho = 3200 3 Atención: no se puede cargar la fuente 4 Error de asignación. 5 Error creando el pixmap 6 No se puede crear XImage 7 Error de lectura 8 Atención: No se puede encontrar un formato válido para el alfa 9 Atención: Error al crear la imagen alfa 10 Atención: Error al crear el pixmap alfa 11 No se puede encontrar un formato para la pantalla(%d) 12 Sin memoria 13 Sin memoria mientras se asignaba buffer azul. 14 Sin memoria mientras se asignaba buffer verde. 15 Sin memoria mientras se asignaba buffer rojo. 16 Error de lectura en ítem de tema 17 visual no soportada 18 Estableciendo el valor por defecto $set 7 #Fluxbox 1 nombre de archivo rc inválido 2 Error al cargar archivo group 3 Error al cargar la base de datos 4 Reintentando con 5 Atención! No se puede encontrar pantalla para mapear la ventana 6 No se puede crear el directorio %s 7 No se pudieron encontrar pantallas para manejar.\nAsegúrese que no tiene otro gestor de ventanas ejecutándose 8 Error interpretando expresión regular 9 Error Fatal! Sólo puede haber una instancia de clase de FLuxbox. 10 No se puede conectar con el servidor X.\nAsegúrese de iniciar las X antes de iniciar Fluxbox 11 Atención: el servidor X no soporta sus locales 12 Atención: no se pueden establecer modificadores de locales $set 8 #Gnome 1 Error Fatal: Sin memoria, no se puede asignar la lista de clientes de GNOME $set 9 #Keys 1 Keys: Error en la línea 2 Keys: Error al unir el árbol de teclas! 3 Keys: Tecla/modificador inválido en la línea $set 10 #Menu 1 Configuración 2 Menú Fluxbox por defecto 3 Salir 4 Iconos 5 Capa... 6 A la cabeza... 7 Ubicación 8 Recargar configuración 9 Reiniciar 10 Atención: etiquetas desbalanceadas de [codificación] $set 11 #Remember 1 Decoraciones 2 Dimensiones 3 Saltar al escritorio 4 Capa 5 Recordar... 6 Posición 7 Guardar al cerrar 8 Enrollado 9 Pegajoso 10 Tecla desconocida de aplicaciones 11 Escritorio 12 Cabeza 13 Transparencia $set 12 #Screen 1 BScreen::BScreen: Ocurrió un error al consultar al servidor X.\n ya existe un window manager connectado al display 2 W: %4d x H: %4d 3 BScreen::BScreen: manejando pantalla %d utilizando visual 0x%lx, profundidad %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Clientes 2 Ciclar hacia abajo 3 Ciclar hacia arriba 4 Dirección de slit 5 Capa de slit 6 Slit a la cabeza 7 Ubicación de slit 8 Slit 9 Guardar lista de slit $set 14 #Toolbar 1 Renombrar escritorio actual 2 Modo de la barra de iconos 3 Todas las ventanas 4 Iconos 5 Ninguno 6 Escritorio 7 Iconos del escritorio 8 Capa de la barra de herramientas 9 Toolbar a la cabeza 10 Ubicación de la barra de herramientas 11 Barra de herramientas 12 Porcentaje de ancho de la barra de herramientas 13 Reloj: 24h 14 Reloj: 12h 15 Editar el formato de reloj 16 Mostrar imágenes 17 Sin iconos 18 No mostrar los iconos del escritorio $set 15 #Window 1 Sin nombre $set 16 #Windowmenu 1 Cerrar 2 Iconificar 3 Capa 4 Bajar 5 Maximizar 6 Elevar 7 Enviar a ... 8 Enrollar 9 Fijar 10 Matar 11 Utilizar valores por defecto $set 17 #Workspace 1 Escritorio %d 2 Escritorios 3 Escritorio nuevo 4 Quitar el último escritorio $set 18 #fbsetroot 1 Error: es necesario especifiar uno de: -solid, -mod, -gradient\n 2 No se pudieron crear los atomos de pixmaps, me rindo! 3 -display conectar a un display\n\ -mod diseño de modula\n\ -foreground, -fg color de primer plano\n\ -background, -bg color de fondo\n\n\ -gradient gradiente de textura\n\ -from color inicial del gradiente\n\ -to color final del gradiente\n\ -solid color sólido\n\n\ -help mostrar este texto de ayuda y salir\n $set 19 #main 1 error: '-display' requiere un argumento 2 Asignación Inválida 3 Molde Inválido 4 Fuera de rango 5 Error de rutina 6 Execepción estándar 7 Error desconocido 8 error: '-log' requiere un argumento 9 Archivo de registro 10 Guardando registro en 11 error: '-rc' requiere un argumento 12 error: '-screen' requiere un argumento 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ Página web: http://www.fluxbox.org/\n\n\ -display \t\tutilizar conexion a un diplay.\n\ -screen \tejecutar solamente en pantallas especificadas.\n\ -rc \t\t\tusar archivo de recursos alternativo.\n\ -version\t\t\tmostrar versión y salir.\n\ -info\t\t\t\tmostrar información útil.\n\ -log \t\t\tregistrar salidas en archivo.\n\ -help\t\t\t\tmostrar esta ayuda y salir.\n\n 14 atención: no se pudo establecer la variable de entorno 'DISPLAY' $set 20 #layers 1 Sobre dock 2 Abajo 3 Escritorio 4 Dock 5 Normal 6 Arriba fluxbox-1.3.5/nls/es_ES/PaxHeaders.25974/generated-ISO-8859-15.m0000644000175000017500000000013212106662462021451 xustar000000000000000030 mtime=1360749874.775812471 30 atime=1360749874.791812471 30 ctime=1360750008.935811613 fluxbox-1.3.5/nls/es_ES/generated-ISO-8859-15.m0000644000175000017500000001447212106662462017510 0ustar00mgmg00000000000000$ codeset=ISO-8859-15 $set 1 #Align 1 Abajo al centro 2 Abajo a la izquierda 3 Abajo a la derecha 4 Horizontal 5 A la izquierda 6 A la izquierda abajo 7 A la izquierda al centro 8 A la izquierda arriba 9 Relativo 10 A la derecha 11 A la derecha abajo 12 A la derecha al centro 13 A la derecha arriba 14 Arriba al centro 15 Arriba a la izquierda 16 Arriba a la derecha 17 Vertical $set 2 #BaseDisplay 1 Abortando... volcando nucleo\n 2 Apagando\n 3 %s: señal %d capturada\n $set 3 #Common 1 Alfa 2 Auto ocultar 3 Compilado 4 Opciones compiladas 5 Compilador 6 Versión del compilador 7 init 8 keys 9 nls 10 menu 11 style 12 Opciones por defecto 13 desactivado 14 Error 15 Versión de Fluxbox 16 Maximizar por encima 17 Revisión de GIT 18 Visible 19 No hay una opción de fondo especificada en este estilo.\nPor vafor consulte el manual o lea las FAQ. $set 4 #Configmenu 1 Anti alias 2 Elevar automáticamente las ventanas 3 Seleccionar para elevar 4 Seleccionar para enfocar 5 Decorar las ventanas transitivas 6 Cambiar de escritorio con la rueda del mouse 7 Enfocar última ventana en el cambio de escritorio 8 Modelo de enfoque 9 Enfocar ventanas nuevas 10 Maximización total 11 Simulación de colores en imágenes 12 Movimiento opaco de ventanas 14 El mouse enfoca 15 Workspace Warping 16 Forzar pseudo transparencias 17 Alfa del menu 18 Transparencia 19 Alfa de ventana enfocada 20 Alfa de ventana desenfocada 21 Opciones de solapas 22 Solapas en barra de título 23 Ancho de solapas externas 24 Click sobre la solapa enfoca 25 Mouse sobre la solapa enfoca $set 5 #Ewmh 1 Fatal: Sin memoria, no se puede asignar la lista de clientes EWMH $set 6 #FbTkError 1 ¡Atención! Altura > 3200, estableciendo Altura = 3200 2 ¡Atención! Ancho > 3200, estableciendo Ancho = 3200 3 Atención: no se puede cargar la fuente 4 Error de asignación. 5 Error creando el pixmap 6 No se puede crear XImage 7 Error de lectura 8 Atención: No se puede encontrar un formato válido para el alfa 9 Atención: Error al crear la imagen alfa 10 Atención: Error al crear el pixmap alfa 11 No se puede encontrar un formato para la pantalla(%d) 12 Sin memoria 13 Sin memoria mientras se asignaba buffer azul. 14 Sin memoria mientras se asignaba buffer verde. 15 Sin memoria mientras se asignaba buffer rojo. 16 Error de lectura en ítem de tema 17 visual no soportada 18 Estableciendo el valor por defecto $set 7 #Fluxbox 1 nombre de archivo rc inválido 2 Error al cargar archivo group 3 Error al cargar la base de datos 4 Reintentando con 5 Atención! No se puede encontrar pantalla para mapear la ventana 6 No se puede crear el directorio %s 7 No se pudieron encontrar pantallas para manejar.\nAsegúrese que no tiene otro gestor de ventanas ejecutándose 8 Error interpretando expresión regular 9 Error Fatal! Sólo puede haber una instancia de clase de FLuxbox. 10 No se puede conectar con el servidor X.\nAsegúrese de iniciar las X antes de iniciar Fluxbox 11 Atención: el servidor X no soporta sus locales 12 Atención: no se pueden establecer modificadores de locales $set 8 #Gnome 1 Error Fatal: Sin memoria, no se puede asignar la lista de clientes de GNOME $set 9 #Keys 1 Keys: Error en la línea 2 Keys: Error al unir el árbol de teclas! 3 Keys: Tecla/modificador inválido en la línea $set 10 #Menu 1 Configuración 2 Menú Fluxbox por defecto 3 Salir 4 Iconos 5 Capa... 6 A la cabeza... 7 Ubicación 8 Recargar configuración 9 Reiniciar 10 Atención: etiquetas desbalanceadas de [codificación] $set 11 #Remember 1 Decoraciones 2 Dimensiones 3 Saltar al escritorio 4 Capa 5 Recordar... 6 Posición 7 Guardar al cerrar 8 Enrollado 9 Pegajoso 10 Tecla desconocida de aplicaciones 11 Escritorio 12 Cabeza 13 Transparencia $set 12 #Screen 1 BScreen::BScreen: Ocurrió un error al consultar al servidor X.\n ya existe un window manager connectado al display 2 W: %4d x H: %4d 3 BScreen::BScreen: manejando pantalla %d utilizando visual 0x%lx, profundidad %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Clientes 2 Ciclar hacia abajo 3 Ciclar hacia arriba 4 Dirección de slit 5 Capa de slit 6 Slit a la cabeza 7 Ubicación de slit 8 Slit 9 Guardar lista de slit $set 14 #Toolbar 1 Renombrar escritorio actual 2 Modo de la barra de iconos 3 Todas las ventanas 4 Iconos 5 Ninguno 6 Escritorio 7 Iconos del escritorio 8 Capa de la barra de herramientas 9 Toolbar a la cabeza 10 Ubicación de la barra de herramientas 11 Barra de herramientas 12 Porcentaje de ancho de la barra de herramientas 13 Reloj: 24h 14 Reloj: 12h 15 Editar el formato de reloj 16 Mostrar imágenes 17 Sin iconos 18 No mostrar los iconos del escritorio $set 15 #Window 1 Sin nombre $set 16 #Windowmenu 1 Cerrar 2 Iconificar 3 Capa 4 Bajar 5 Maximizar 6 Elevar 7 Enviar a ... 8 Enrollar 9 Fijar 10 Matar 11 Utilizar valores por defecto $set 17 #Workspace 1 Escritorio %d 2 Escritorios 3 Escritorio nuevo 4 Quitar el último escritorio $set 18 #fbsetroot 1 Error: es necesario especifiar uno de: -solid, -mod, -gradient\n 2 No se pudieron crear los atomos de pixmaps, me rindo! 3 -display conectar a un display\n\ -mod diseño de modula\n\ -foreground, -fg color de primer plano\n\ -background, -bg color de fondo\n\n\ -gradient gradiente de textura\n\ -from color inicial del gradiente\n\ -to color final del gradiente\n\ -solid color sólido\n\n\ -help mostrar este texto de ayuda y salir\n $set 19 #main 1 error: '-display' requiere un argumento 2 Asignación Inválida 3 Molde Inválido 4 Fuera de rango 5 Error de rutina 6 Execepción estándar 7 Error desconocido 8 error: '-log' requiere un argumento 9 Archivo de registro 10 Guardando registro en 11 error: '-rc' requiere un argumento 12 error: '-screen' requiere un argumento 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ Página web: http://www.fluxbox.org/\n\n\ -display \t\tutilizar conexion a un diplay.\n\ -screen \tejecutar solamente en pantallas especificadas.\n\ -rc \t\t\tusar archivo de recursos alternativo.\n\ -version\t\t\tmostrar versión y salir.\n\ -info\t\t\t\tmostrar información útil.\n\ -log \t\t\tregistrar salidas en archivo.\n\ -help\t\t\t\tmostrar esta ayuda y salir.\n\n 14 atención: no se pudo establecer la variable de entorno 'DISPLAY' $set 20 #layers 1 Sobre dock 2 Abajo 3 Escritorio 4 Dock 5 Normal 6 Arriba fluxbox-1.3.5/nls/es_ES/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020522 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749874.775812471 30 ctime=1360750008.939811613 fluxbox-1.3.5/nls/es_ES/Translation.m0000644000175000017500000001447212106662425016561 0ustar00mgmg00000000000000$ codeset=ISO-8859-15 $set 1 #Align 1 Abajo al centro 2 Abajo a la izquierda 3 Abajo a la derecha 4 Horizontal 5 A la izquierda 6 A la izquierda abajo 7 A la izquierda al centro 8 A la izquierda arriba 9 Relativo 10 A la derecha 11 A la derecha abajo 12 A la derecha al centro 13 A la derecha arriba 14 Arriba al centro 15 Arriba a la izquierda 16 Arriba a la derecha 17 Vertical $set 2 #BaseDisplay 1 Abortando... volcando nucleo\n 2 Apagando\n 3 %s: señal %d capturada\n $set 3 #Common 1 Alfa 2 Auto ocultar 3 Compilado 4 Opciones compiladas 5 Compilador 6 Versión del compilador 7 init 8 keys 9 nls 10 menu 11 style 12 Opciones por defecto 13 desactivado 14 Error 15 Versión de Fluxbox 16 Maximizar por encima 17 Revisión de GIT 18 Visible 19 No hay una opción de fondo especificada en este estilo.\nPor vafor consulte el manual o lea las FAQ. $set 4 #Configmenu 1 Anti alias 2 Elevar automáticamente las ventanas 3 Seleccionar para elevar 4 Seleccionar para enfocar 5 Decorar las ventanas transitivas 6 Cambiar de escritorio con la rueda del mouse 7 Enfocar última ventana en el cambio de escritorio 8 Modelo de enfoque 9 Enfocar ventanas nuevas 10 Maximización total 11 Simulación de colores en imágenes 12 Movimiento opaco de ventanas 14 El mouse enfoca 15 Workspace Warping 16 Forzar pseudo transparencias 17 Alfa del menu 18 Transparencia 19 Alfa de ventana enfocada 20 Alfa de ventana desenfocada 21 Opciones de solapas 22 Solapas en barra de título 23 Ancho de solapas externas 24 Click sobre la solapa enfoca 25 Mouse sobre la solapa enfoca $set 5 #Ewmh 1 Fatal: Sin memoria, no se puede asignar la lista de clientes EWMH $set 6 #FbTkError 1 ¡Atención! Altura > 3200, estableciendo Altura = 3200 2 ¡Atención! Ancho > 3200, estableciendo Ancho = 3200 3 Atención: no se puede cargar la fuente 4 Error de asignación. 5 Error creando el pixmap 6 No se puede crear XImage 7 Error de lectura 8 Atención: No se puede encontrar un formato válido para el alfa 9 Atención: Error al crear la imagen alfa 10 Atención: Error al crear el pixmap alfa 11 No se puede encontrar un formato para la pantalla(%d) 12 Sin memoria 13 Sin memoria mientras se asignaba buffer azul. 14 Sin memoria mientras se asignaba buffer verde. 15 Sin memoria mientras se asignaba buffer rojo. 16 Error de lectura en ítem de tema 17 visual no soportada 18 Estableciendo el valor por defecto $set 7 #Fluxbox 1 nombre de archivo rc inválido 2 Error al cargar archivo group 3 Error al cargar la base de datos 4 Reintentando con 5 Atención! No se puede encontrar pantalla para mapear la ventana 6 No se puede crear el directorio %s 7 No se pudieron encontrar pantallas para manejar.\nAsegúrese que no tiene otro gestor de ventanas ejecutándose 8 Error interpretando expresión regular 9 Error Fatal! Sólo puede haber una instancia de clase de FLuxbox. 10 No se puede conectar con el servidor X.\nAsegúrese de iniciar las X antes de iniciar Fluxbox 11 Atención: el servidor X no soporta sus locales 12 Atención: no se pueden establecer modificadores de locales $set 8 #Gnome 1 Error Fatal: Sin memoria, no se puede asignar la lista de clientes de GNOME $set 9 #Keys 1 Keys: Error en la línea 2 Keys: Error al unir el árbol de teclas! 3 Keys: Tecla/modificador inválido en la línea $set 10 #Menu 1 Configuración 2 Menú Fluxbox por defecto 3 Salir 4 Iconos 5 Capa... 6 A la cabeza... 7 Ubicación 8 Recargar configuración 9 Reiniciar 10 Atención: etiquetas desbalanceadas de [codificación] $set 11 #Remember 1 Decoraciones 2 Dimensiones 3 Saltar al escritorio 4 Capa 5 Recordar... 6 Posición 7 Guardar al cerrar 8 Enrollado 9 Pegajoso 10 Tecla desconocida de aplicaciones 11 Escritorio 12 Cabeza 13 Transparencia $set 12 #Screen 1 BScreen::BScreen: Ocurrió un error al consultar al servidor X.\n ya existe un window manager connectado al display 2 W: %4d x H: %4d 3 BScreen::BScreen: manejando pantalla %d utilizando visual 0x%lx, profundidad %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Clientes 2 Ciclar hacia abajo 3 Ciclar hacia arriba 4 Dirección de slit 5 Capa de slit 6 Slit a la cabeza 7 Ubicación de slit 8 Slit 9 Guardar lista de slit $set 14 #Toolbar 1 Renombrar escritorio actual 2 Modo de la barra de iconos 3 Todas las ventanas 4 Iconos 5 Ninguno 6 Escritorio 7 Iconos del escritorio 8 Capa de la barra de herramientas 9 Toolbar a la cabeza 10 Ubicación de la barra de herramientas 11 Barra de herramientas 12 Porcentaje de ancho de la barra de herramientas 13 Reloj: 24h 14 Reloj: 12h 15 Editar el formato de reloj 16 Mostrar imágenes 17 Sin iconos 18 No mostrar los iconos del escritorio $set 15 #Window 1 Sin nombre $set 16 #Windowmenu 1 Cerrar 2 Iconificar 3 Capa 4 Bajar 5 Maximizar 6 Elevar 7 Enviar a ... 8 Enrollar 9 Fijar 10 Matar 11 Utilizar valores por defecto $set 17 #Workspace 1 Escritorio %d 2 Escritorios 3 Escritorio nuevo 4 Quitar el último escritorio $set 18 #fbsetroot 1 Error: es necesario especifiar uno de: -solid, -mod, -gradient\n 2 No se pudieron crear los atomos de pixmaps, me rindo! 3 -display conectar a un display\n\ -mod diseño de modula\n\ -foreground, -fg color de primer plano\n\ -background, -bg color de fondo\n\n\ -gradient gradiente de textura\n\ -from color inicial del gradiente\n\ -to color final del gradiente\n\ -solid color sólido\n\n\ -help mostrar este texto de ayuda y salir\n $set 19 #main 1 error: '-display' requiere un argumento 2 Asignación Inválida 3 Molde Inválido 4 Fuera de rango 5 Error de rutina 6 Execepción estándar 7 Error desconocido 8 error: '-log' requiere un argumento 9 Archivo de registro 10 Guardando registro en 11 error: '-rc' requiere un argumento 12 error: '-screen' requiere un argumento 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ Página web: http://www.fluxbox.org/\n\n\ -display \t\tutilizar conexion a un diplay.\n\ -screen \tejecutar solamente en pantallas especificadas.\n\ -rc \t\t\tusar archivo de recursos alternativo.\n\ -version\t\t\tmostrar versión y salir.\n\ -info\t\t\t\tmostrar información útil.\n\ -log \t\t\tregistrar salidas en archivo.\n\ -help\t\t\t\tmostrar esta ayuda y salir.\n\n 14 atención: no se pudo establecer la variable de entorno 'DISPLAY' $set 20 #layers 1 Sobre dock 2 Abajo 3 Escritorio 4 Dock 5 Normal 6 Arriba fluxbox-1.3.5/nls/es_ES/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603020111 xustar000000000000000030 mtime=1360749955.911811952 30 atime=1360750003.647811647 30 ctime=1360750008.939811613 fluxbox-1.3.5/nls/es_ES/Makefile.in0000644000175000017500000002715612106662603016153 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/es_ES/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/es_ES DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = es_ES SRC_CODESET = ISO-8859-15 DEST_CODESETS = ISO-8859-15 UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/es_ES/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/es_ES/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/es_ES/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020102 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749853.767812606 30 ctime=1360750008.939811613 fluxbox-1.3.5/nls/es_ES/Makefile.am0000644000175000017500000000301212106662425016125 0ustar00mgmg00000000000000# nls/es_ES/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = es_ES SRC_CODESET = ISO-8859-15 DEST_CODESETS = ISO-8859-15 UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/es_AR0000644000175000017500000000013212106662665015772 xustar000000000000000030 mtime=1360750005.647811634 30 atime=1360750008.939811613 30 ctime=1360750008.939811613 fluxbox-1.3.5/nls/es_AR/0000755000175000017500000000000012106662665014076 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/es_AR/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662462020757 xustar000000000000000030 mtime=1360749874.739812472 30 atime=1360749874.751812472 30 ctime=1360750008.943811613 fluxbox-1.3.5/nls/es_AR/generated-UTF-8.m0000644000175000017500000001456012106662462017014 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Abajo al centro 2 Abajo a la izquierda 3 Abajo a la derecha 4 Horizontal 5 A la izquierda 6 A la izquierda abajo 7 A la izquierda al centro 8 A la izquierda arriba 9 Relativo 10 A la derecha 11 A la derecha abajo 12 A la derecha al centro 13 A la derecha arriba 14 Arriba al centro 15 Arriba a la izquierda 16 Arriba a la derecha 17 Vertical $set 2 #BaseDisplay 1 Abortando... volcando nucleo\n 2 Apagando\n 3 %s: señal %d capturada\n $set 3 #Common 1 Alfa 2 Auto ocultar 3 Compilado 4 Opciones compiladas 5 Compilador 6 Versión del compilador 7 init 8 keys 9 nls 10 menu 11 style 12 Opciones por defecto 13 desactivado 14 Error 15 Versión de Fluxbox 16 Maximizar por encima 17 Revisión de GIT 18 Visible 19 No hay una opción de fondo especificada en este estilo.\nPor vafor consulte el manual o lea las FAQ. $set 4 #Configmenu 1 Anti alias 2 Elevar automáticamente las ventanas 3 Seleccionar para elevar 4 Seleccionar para enfocar 5 Decorar las ventanas transitivas 6 Cambiar de escritorio con la rueda del mouse 7 Enfocar última ventana en el cambio de escritorio 8 Modelo de enfoque 9 Enfocar ventanas nuevas 10 Maximización total 11 Simulación de colores en imágenes 12 Movimiento opaco de ventanas 14 El mouse enfoca 15 Workspace Warping 16 Forzar pseudo transparencias 17 Alfa del menu 18 Transparencia 19 Alfa de ventana enfocada 20 Alfa de ventana desenfocada 21 Opciones de solapas 22 Solapas en barra de título 23 Ancho de solapas externas 24 Click sobre la solapa enfoca 25 Mouse sobre la solapa enfoca $set 5 #Ewmh 1 Fatal: Sin memoria, no se puede asignar la lista de clientes EWMH $set 6 #FbTkError 1 ¡Atención! Altura > 3200, estableciendo Altura = 3200 2 ¡Atención! Ancho > 3200, estableciendo Ancho = 3200 3 Atención: no se puede cargar la fuente 4 Error de asignación. 5 Error creando el pixmap 6 No se puede crear XImage 7 Error de lectura 8 Atención: No se puede encontrar un formato válido para el alfa 9 Atención: Error al crear la imagen alfa 10 Atención: Error al crear el pixmap alfa 11 No se puede encontrar un formato para la pantalla(%d) 12 Sin memoria 13 Sin memoria mientras se asignaba buffer azul. 14 Sin memoria mientras se asignaba buffer verde. 15 Sin memoria mientras se asignaba buffer rojo. 16 Error de lectura en ítem de tema 17 visual no soportada 18 Estableciendo el valor por defecto $set 7 #Fluxbox 1 nombre de archivo rc inválido 2 Error al cargar archivo group 3 Error al cargar la base de datos 4 Reintentando con 5 Atención! No se puede encontrar pantalla para mapear la ventana 6 No se puede crear el directorio %s 7 No se pudieron encontrar pantallas para manejar.\nAsegúrese que no tiene otro gestor de ventanas ejecutándose 8 Error interpretando expresión regular 9 Error Fatal! Sólo puede haber una instancia de clase de FLuxbox. 10 No se puede conectar con el servidor X.\nAsegúrese de iniciar las X antes de iniciar Fluxbox 11 Atención: el servidor X no soporta sus locales 12 Atención: no se pueden establecer modificadores de locales $set 8 #Gnome 1 Error Fatal: Sin memoria, no se puede asignar la lista de clientes de GNOME $set 9 #Keys 1 Keys: Error en la línea 2 Keys: Error al unir el árbol de teclas! 3 Keys: Tecla/modificador inválido en la línea $set 10 #Menu 1 Configuración 2 Menú Fluxbox por defecto 3 Salir 4 Iconos 5 Capa... 6 A la cabeza... 7 Ubicación 8 Recargar configuración 9 Reiniciar 10 Atención: etiquetas desbalanceadas de [codificación] $set 11 #Remember 1 Decoraciones 2 Dimensiones 3 Saltar al escritorio 4 Capa 5 Recordar... 6 Posición 7 Guardar al cerrar 8 Enrollado 9 Pegajoso 10 Tecla desconocida de aplicaciones 11 Escritorio 12 Cabeza 13 Transparencia $set 12 #Screen 1 BScreen::BScreen: Ocurrió un error al consultar al servidor X.\n ya existe un window manager connectado al display 2 W: %4d x H: %4d 3 BScreen::BScreen: manejando pantalla %d utilizando visual 0x%lx, profundidad %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Clientes 2 Ciclar hacia abajo 3 Ciclar hacia arriba 4 Dirección de slit 5 Capa de slit 6 Slit a la cabeza 7 Ubicación de slit 8 Slit 9 Guardar lista de slit $set 14 #Toolbar 1 Renombrar escritorio actual 2 Modo de la barra de iconos 3 Todas las ventanas 4 Iconos 5 Ninguno 6 Escritorio 7 Iconos del escritorio 8 Capa de la barra de herramientas 9 Toolbar a la cabeza 10 Ubicación de la barra de herramientas 11 Barra de herramientas 12 Porcentaje de ancho de la barra de herramientas 13 Reloj: 24h 14 Reloj: 12h 15 Editar el formato de reloj 16 Mostrar imágenes 17 Sin iconos 18 No mostrar los iconos del escritorio $set 15 #Window 1 Sin nombre $set 16 #Windowmenu 1 Cerrar 2 Iconificar 3 Capa 4 Bajar 5 Maximizar 6 Elevar 7 Enviar a ... 8 Enrollar 9 Fijar 10 Matar 11 Utilizar valores por defecto $set 17 #Workspace 1 Escritorio %d 2 Escritorios 3 Escritorio nuevo 4 Quitar el último escritorio $set 18 #fbsetroot 1 Error: es necesario especifiar uno de: -solid, -mod, -gradient\n 2 No se pudieron crear los atomos de pixmaps, me rindo! 3 -display conectar a un display\n\ -mod diseño de modula\n\ -foreground, -fg color de primer plano\n\ -background, -bg color de fondo\n\n\ -gradient gradiente de textura\n\ -from color inicial del gradiente\n\ -to color final del gradiente\n\ -solid color sólido\n\n\ -help mostrar este texto de ayuda y salir\n $set 19 #main 1 error: '-display' requiere un argumento 2 Asignación Inválida 3 Molde Inválido 4 Fuera de rango 5 Error de rutina 6 Execepción estándar 7 Error desconocido 8 error: '-log' requiere un argumento 9 Archivo de registro 10 Guardando registro en 11 error: '-rc' requiere un argumento 12 error: '-screen' requiere un argumento 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ Página web: http://www.fluxbox.org/\n\n\ -display \t\tutilizar conexion a un diplay.\n\ -screen \tejecutar solamente en pantallas especificadas.\n\ -rc \t\t\tusar archivo de recursos alternativo.\n\ -version\t\t\tmostrar versión y salir.\n\ -info\t\t\t\tmostrar información útil.\n\ -log \t\t\tregistrar salidas en archivo.\n\ -help\t\t\t\tmostrar esta ayuda y salir.\n\n 14 atención: no se pudo establecer la variable de entorno 'DISPLAY' $set 20 #layers 1 Sobre dock 2 Abajo 3 Escritorio 4 Dock 5 Normal 6 Arriba fluxbox-1.3.5/nls/es_AR/PaxHeaders.25974/generated-ISO-8859-15.m0000644000175000017500000000013212106662462021444 xustar000000000000000030 mtime=1360749874.735812472 30 atime=1360749874.751812472 30 ctime=1360750008.943811613 fluxbox-1.3.5/nls/es_AR/generated-ISO-8859-15.m0000644000175000017500000001447212106662462017503 0ustar00mgmg00000000000000$ codeset=ISO-8859-15 $set 1 #Align 1 Abajo al centro 2 Abajo a la izquierda 3 Abajo a la derecha 4 Horizontal 5 A la izquierda 6 A la izquierda abajo 7 A la izquierda al centro 8 A la izquierda arriba 9 Relativo 10 A la derecha 11 A la derecha abajo 12 A la derecha al centro 13 A la derecha arriba 14 Arriba al centro 15 Arriba a la izquierda 16 Arriba a la derecha 17 Vertical $set 2 #BaseDisplay 1 Abortando... volcando nucleo\n 2 Apagando\n 3 %s: señal %d capturada\n $set 3 #Common 1 Alfa 2 Auto ocultar 3 Compilado 4 Opciones compiladas 5 Compilador 6 Versión del compilador 7 init 8 keys 9 nls 10 menu 11 style 12 Opciones por defecto 13 desactivado 14 Error 15 Versión de Fluxbox 16 Maximizar por encima 17 Revisión de GIT 18 Visible 19 No hay una opción de fondo especificada en este estilo.\nPor vafor consulte el manual o lea las FAQ. $set 4 #Configmenu 1 Anti alias 2 Elevar automáticamente las ventanas 3 Seleccionar para elevar 4 Seleccionar para enfocar 5 Decorar las ventanas transitivas 6 Cambiar de escritorio con la rueda del mouse 7 Enfocar última ventana en el cambio de escritorio 8 Modelo de enfoque 9 Enfocar ventanas nuevas 10 Maximización total 11 Simulación de colores en imágenes 12 Movimiento opaco de ventanas 14 El mouse enfoca 15 Workspace Warping 16 Forzar pseudo transparencias 17 Alfa del menu 18 Transparencia 19 Alfa de ventana enfocada 20 Alfa de ventana desenfocada 21 Opciones de solapas 22 Solapas en barra de título 23 Ancho de solapas externas 24 Click sobre la solapa enfoca 25 Mouse sobre la solapa enfoca $set 5 #Ewmh 1 Fatal: Sin memoria, no se puede asignar la lista de clientes EWMH $set 6 #FbTkError 1 ¡Atención! Altura > 3200, estableciendo Altura = 3200 2 ¡Atención! Ancho > 3200, estableciendo Ancho = 3200 3 Atención: no se puede cargar la fuente 4 Error de asignación. 5 Error creando el pixmap 6 No se puede crear XImage 7 Error de lectura 8 Atención: No se puede encontrar un formato válido para el alfa 9 Atención: Error al crear la imagen alfa 10 Atención: Error al crear el pixmap alfa 11 No se puede encontrar un formato para la pantalla(%d) 12 Sin memoria 13 Sin memoria mientras se asignaba buffer azul. 14 Sin memoria mientras se asignaba buffer verde. 15 Sin memoria mientras se asignaba buffer rojo. 16 Error de lectura en ítem de tema 17 visual no soportada 18 Estableciendo el valor por defecto $set 7 #Fluxbox 1 nombre de archivo rc inválido 2 Error al cargar archivo group 3 Error al cargar la base de datos 4 Reintentando con 5 Atención! No se puede encontrar pantalla para mapear la ventana 6 No se puede crear el directorio %s 7 No se pudieron encontrar pantallas para manejar.\nAsegúrese que no tiene otro gestor de ventanas ejecutándose 8 Error interpretando expresión regular 9 Error Fatal! Sólo puede haber una instancia de clase de FLuxbox. 10 No se puede conectar con el servidor X.\nAsegúrese de iniciar las X antes de iniciar Fluxbox 11 Atención: el servidor X no soporta sus locales 12 Atención: no se pueden establecer modificadores de locales $set 8 #Gnome 1 Error Fatal: Sin memoria, no se puede asignar la lista de clientes de GNOME $set 9 #Keys 1 Keys: Error en la línea 2 Keys: Error al unir el árbol de teclas! 3 Keys: Tecla/modificador inválido en la línea $set 10 #Menu 1 Configuración 2 Menú Fluxbox por defecto 3 Salir 4 Iconos 5 Capa... 6 A la cabeza... 7 Ubicación 8 Recargar configuración 9 Reiniciar 10 Atención: etiquetas desbalanceadas de [codificación] $set 11 #Remember 1 Decoraciones 2 Dimensiones 3 Saltar al escritorio 4 Capa 5 Recordar... 6 Posición 7 Guardar al cerrar 8 Enrollado 9 Pegajoso 10 Tecla desconocida de aplicaciones 11 Escritorio 12 Cabeza 13 Transparencia $set 12 #Screen 1 BScreen::BScreen: Ocurrió un error al consultar al servidor X.\n ya existe un window manager connectado al display 2 W: %4d x H: %4d 3 BScreen::BScreen: manejando pantalla %d utilizando visual 0x%lx, profundidad %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Clientes 2 Ciclar hacia abajo 3 Ciclar hacia arriba 4 Dirección de slit 5 Capa de slit 6 Slit a la cabeza 7 Ubicación de slit 8 Slit 9 Guardar lista de slit $set 14 #Toolbar 1 Renombrar escritorio actual 2 Modo de la barra de iconos 3 Todas las ventanas 4 Iconos 5 Ninguno 6 Escritorio 7 Iconos del escritorio 8 Capa de la barra de herramientas 9 Toolbar a la cabeza 10 Ubicación de la barra de herramientas 11 Barra de herramientas 12 Porcentaje de ancho de la barra de herramientas 13 Reloj: 24h 14 Reloj: 12h 15 Editar el formato de reloj 16 Mostrar imágenes 17 Sin iconos 18 No mostrar los iconos del escritorio $set 15 #Window 1 Sin nombre $set 16 #Windowmenu 1 Cerrar 2 Iconificar 3 Capa 4 Bajar 5 Maximizar 6 Elevar 7 Enviar a ... 8 Enrollar 9 Fijar 10 Matar 11 Utilizar valores por defecto $set 17 #Workspace 1 Escritorio %d 2 Escritorios 3 Escritorio nuevo 4 Quitar el último escritorio $set 18 #fbsetroot 1 Error: es necesario especifiar uno de: -solid, -mod, -gradient\n 2 No se pudieron crear los atomos de pixmaps, me rindo! 3 -display conectar a un display\n\ -mod diseño de modula\n\ -foreground, -fg color de primer plano\n\ -background, -bg color de fondo\n\n\ -gradient gradiente de textura\n\ -from color inicial del gradiente\n\ -to color final del gradiente\n\ -solid color sólido\n\n\ -help mostrar este texto de ayuda y salir\n $set 19 #main 1 error: '-display' requiere un argumento 2 Asignación Inválida 3 Molde Inválido 4 Fuera de rango 5 Error de rutina 6 Execepción estándar 7 Error desconocido 8 error: '-log' requiere un argumento 9 Archivo de registro 10 Guardando registro en 11 error: '-rc' requiere un argumento 12 error: '-screen' requiere un argumento 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ Página web: http://www.fluxbox.org/\n\n\ -display \t\tutilizar conexion a un diplay.\n\ -screen \tejecutar solamente en pantallas especificadas.\n\ -rc \t\t\tusar archivo de recursos alternativo.\n\ -version\t\t\tmostrar versión y salir.\n\ -info\t\t\t\tmostrar información útil.\n\ -log \t\t\tregistrar salidas en archivo.\n\ -help\t\t\t\tmostrar esta ayuda y salir.\n\n 14 atención: no se pudo establecer la variable de entorno 'DISPLAY' $set 20 #layers 1 Sobre dock 2 Abajo 3 Escritorio 4 Dock 5 Normal 6 Arriba fluxbox-1.3.5/nls/es_AR/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020515 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749874.735812472 30 ctime=1360750008.943811613 fluxbox-1.3.5/nls/es_AR/Translation.m0000644000175000017500000001447212106662425016554 0ustar00mgmg00000000000000$ codeset=ISO-8859-15 $set 1 #Align 1 Abajo al centro 2 Abajo a la izquierda 3 Abajo a la derecha 4 Horizontal 5 A la izquierda 6 A la izquierda abajo 7 A la izquierda al centro 8 A la izquierda arriba 9 Relativo 10 A la derecha 11 A la derecha abajo 12 A la derecha al centro 13 A la derecha arriba 14 Arriba al centro 15 Arriba a la izquierda 16 Arriba a la derecha 17 Vertical $set 2 #BaseDisplay 1 Abortando... volcando nucleo\n 2 Apagando\n 3 %s: señal %d capturada\n $set 3 #Common 1 Alfa 2 Auto ocultar 3 Compilado 4 Opciones compiladas 5 Compilador 6 Versión del compilador 7 init 8 keys 9 nls 10 menu 11 style 12 Opciones por defecto 13 desactivado 14 Error 15 Versión de Fluxbox 16 Maximizar por encima 17 Revisión de GIT 18 Visible 19 No hay una opción de fondo especificada en este estilo.\nPor vafor consulte el manual o lea las FAQ. $set 4 #Configmenu 1 Anti alias 2 Elevar automáticamente las ventanas 3 Seleccionar para elevar 4 Seleccionar para enfocar 5 Decorar las ventanas transitivas 6 Cambiar de escritorio con la rueda del mouse 7 Enfocar última ventana en el cambio de escritorio 8 Modelo de enfoque 9 Enfocar ventanas nuevas 10 Maximización total 11 Simulación de colores en imágenes 12 Movimiento opaco de ventanas 14 El mouse enfoca 15 Workspace Warping 16 Forzar pseudo transparencias 17 Alfa del menu 18 Transparencia 19 Alfa de ventana enfocada 20 Alfa de ventana desenfocada 21 Opciones de solapas 22 Solapas en barra de título 23 Ancho de solapas externas 24 Click sobre la solapa enfoca 25 Mouse sobre la solapa enfoca $set 5 #Ewmh 1 Fatal: Sin memoria, no se puede asignar la lista de clientes EWMH $set 6 #FbTkError 1 ¡Atención! Altura > 3200, estableciendo Altura = 3200 2 ¡Atención! Ancho > 3200, estableciendo Ancho = 3200 3 Atención: no se puede cargar la fuente 4 Error de asignación. 5 Error creando el pixmap 6 No se puede crear XImage 7 Error de lectura 8 Atención: No se puede encontrar un formato válido para el alfa 9 Atención: Error al crear la imagen alfa 10 Atención: Error al crear el pixmap alfa 11 No se puede encontrar un formato para la pantalla(%d) 12 Sin memoria 13 Sin memoria mientras se asignaba buffer azul. 14 Sin memoria mientras se asignaba buffer verde. 15 Sin memoria mientras se asignaba buffer rojo. 16 Error de lectura en ítem de tema 17 visual no soportada 18 Estableciendo el valor por defecto $set 7 #Fluxbox 1 nombre de archivo rc inválido 2 Error al cargar archivo group 3 Error al cargar la base de datos 4 Reintentando con 5 Atención! No se puede encontrar pantalla para mapear la ventana 6 No se puede crear el directorio %s 7 No se pudieron encontrar pantallas para manejar.\nAsegúrese que no tiene otro gestor de ventanas ejecutándose 8 Error interpretando expresión regular 9 Error Fatal! Sólo puede haber una instancia de clase de FLuxbox. 10 No se puede conectar con el servidor X.\nAsegúrese de iniciar las X antes de iniciar Fluxbox 11 Atención: el servidor X no soporta sus locales 12 Atención: no se pueden establecer modificadores de locales $set 8 #Gnome 1 Error Fatal: Sin memoria, no se puede asignar la lista de clientes de GNOME $set 9 #Keys 1 Keys: Error en la línea 2 Keys: Error al unir el árbol de teclas! 3 Keys: Tecla/modificador inválido en la línea $set 10 #Menu 1 Configuración 2 Menú Fluxbox por defecto 3 Salir 4 Iconos 5 Capa... 6 A la cabeza... 7 Ubicación 8 Recargar configuración 9 Reiniciar 10 Atención: etiquetas desbalanceadas de [codificación] $set 11 #Remember 1 Decoraciones 2 Dimensiones 3 Saltar al escritorio 4 Capa 5 Recordar... 6 Posición 7 Guardar al cerrar 8 Enrollado 9 Pegajoso 10 Tecla desconocida de aplicaciones 11 Escritorio 12 Cabeza 13 Transparencia $set 12 #Screen 1 BScreen::BScreen: Ocurrió un error al consultar al servidor X.\n ya existe un window manager connectado al display 2 W: %4d x H: %4d 3 BScreen::BScreen: manejando pantalla %d utilizando visual 0x%lx, profundidad %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Clientes 2 Ciclar hacia abajo 3 Ciclar hacia arriba 4 Dirección de slit 5 Capa de slit 6 Slit a la cabeza 7 Ubicación de slit 8 Slit 9 Guardar lista de slit $set 14 #Toolbar 1 Renombrar escritorio actual 2 Modo de la barra de iconos 3 Todas las ventanas 4 Iconos 5 Ninguno 6 Escritorio 7 Iconos del escritorio 8 Capa de la barra de herramientas 9 Toolbar a la cabeza 10 Ubicación de la barra de herramientas 11 Barra de herramientas 12 Porcentaje de ancho de la barra de herramientas 13 Reloj: 24h 14 Reloj: 12h 15 Editar el formato de reloj 16 Mostrar imágenes 17 Sin iconos 18 No mostrar los iconos del escritorio $set 15 #Window 1 Sin nombre $set 16 #Windowmenu 1 Cerrar 2 Iconificar 3 Capa 4 Bajar 5 Maximizar 6 Elevar 7 Enviar a ... 8 Enrollar 9 Fijar 10 Matar 11 Utilizar valores por defecto $set 17 #Workspace 1 Escritorio %d 2 Escritorios 3 Escritorio nuevo 4 Quitar el último escritorio $set 18 #fbsetroot 1 Error: es necesario especifiar uno de: -solid, -mod, -gradient\n 2 No se pudieron crear los atomos de pixmaps, me rindo! 3 -display conectar a un display\n\ -mod diseño de modula\n\ -foreground, -fg color de primer plano\n\ -background, -bg color de fondo\n\n\ -gradient gradiente de textura\n\ -from color inicial del gradiente\n\ -to color final del gradiente\n\ -solid color sólido\n\n\ -help mostrar este texto de ayuda y salir\n $set 19 #main 1 error: '-display' requiere un argumento 2 Asignación Inválida 3 Molde Inválido 4 Fuera de rango 5 Error de rutina 6 Execepción estándar 7 Error desconocido 8 error: '-log' requiere un argumento 9 Archivo de registro 10 Guardando registro en 11 error: '-rc' requiere un argumento 12 error: '-screen' requiere un argumento 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ Página web: http://www.fluxbox.org/\n\n\ -display \t\tutilizar conexion a un diplay.\n\ -screen \tejecutar solamente en pantallas especificadas.\n\ -rc \t\t\tusar archivo de recursos alternativo.\n\ -version\t\t\tmostrar versión y salir.\n\ -info\t\t\t\tmostrar información útil.\n\ -log \t\t\tregistrar salidas en archivo.\n\ -help\t\t\t\tmostrar esta ayuda y salir.\n\n 14 atención: no se pudo establecer la variable de entorno 'DISPLAY' $set 20 #layers 1 Sobre dock 2 Abajo 3 Escritorio 4 Dock 5 Normal 6 Arriba fluxbox-1.3.5/nls/es_AR/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603020104 xustar000000000000000030 mtime=1360749955.891811952 30 atime=1360750003.631811647 30 ctime=1360750008.943811613 fluxbox-1.3.5/nls/es_AR/Makefile.in0000644000175000017500000002715612106662603016146 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/es_AR/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/es_AR DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = es_AR SRC_CODESET = ISO-8859-15 DEST_CODESETS = ISO-8859-15 UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/es_AR/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/es_AR/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/es_AR/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020075 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749853.743812606 30 ctime=1360750008.943811613 fluxbox-1.3.5/nls/es_AR/Makefile.am0000644000175000017500000000301212106662425016120 0ustar00mgmg00000000000000# nls/es_AR/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = es_AR SRC_CODESET = ISO-8859-15 DEST_CODESETS = ISO-8859-15 UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/da_DK0000644000175000017500000000013212106662665015743 xustar000000000000000030 mtime=1360750005.615811634 30 atime=1360750008.947811613 30 ctime=1360750008.947811613 fluxbox-1.3.5/nls/da_DK/0000755000175000017500000000000012106662665014047 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/da_DK/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662462020730 xustar000000000000000030 mtime=1360749874.695812472 30 atime=1360749874.711812472 30 ctime=1360750008.947811613 fluxbox-1.3.5/nls/da_DK/generated-UTF-8.m0000644000175000017500000001174212106662462016764 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Bunden i midten 2 Bunden til venstre 3 Bunden til højre 4 Horisontal 5 Til venstre 6 Til venstre i bunden 7 Til venstre i midten 8 Til venstre i toppen 9 Relativ 10 Til højre 11 Til højre i bunden 12 Til højre i midten 13 Til højre i toppen 14 Toppen i midten 15 Øverste venstre hjørne 16 Øverste højre hjørne 17 Vertikal $set 2 #BaseDisplay 1 Afslutter brat... laver et core dump\n 2 Lukker ned\n 3 %s: signal %d fanget\n $set 3 #Common 1 Alfa 2 Skjul automatisk 10 menu 11 stil 12 Standarder 13 SlÃ¥et fra 14 Fejl 15 Fluxbox version 16 Maksimer over 17 GIT Revision 18 Synlig $set 4 #Configmenu 1 Antialias 2 Hæv automatisk 3 Klik hæver 4 Klik for fokus 5 Dekorér transiente vinduer 6 Skift skrivebord med scroll-hjulet 7 Fokuser pÃ¥ vindue ved skrivebordsskift 8 Fokusmodel 9 Fokuser pÃ¥ nye vinduer 10 Fuld maksimering 11 Billede-dithering 12 Ugennemsigtig flytning af vinduer 13 Semisløset Focus 14 Dovent fokus 15 Workspace Warping 16 Forcér pseudogennemsigtighed 18 Gennemsigtighed $set 5 #Ewmh 1 Fatal fejl: Løbet tør for hukommelse, ikke nok til at allokere EWMH's klientliste. $set 6 #FbTkError 1 Advarsel! Højde > 3200, sætter højde = 3200 2 Advarsel! Bredde > 3200, sætter bredde = 3200 3 Advarsel: Kan ikke indlæse reserveskrifttype 4 Allokeringsfejl. 5 Fejl i oprettelse af pixmap 6 Kunne ikke oprette XImage (`Xbillede') 7 Kunne ikke læse. 8 Advarsel: Fandt ikke noget gyldigt format for alfa. 9 Advarsel: Kunne ikke oprette alfa-billede. 10 Advarsel: Kunne ikke oprette alfa-pixmap. 11 Kunne ikke finde format for skærm(%d) 12 Løbet tør for hukommelse 13 Løbet tør for hukommelse under allokering af blÃ¥ buffer. 14 Løbet tør for hukommelse under allokering af grøn buffer. 15 Løbet tør for hukommelse under allokering af rød buffer. 16 Kunne ikke læse tema-object 17 Uunderstøttet visual 18 Sætter standardværdi $set 7 #Fluxbox 1 rc-filnavn ugyldigt! 2 Kunne ikke indlæse gruppefilen 3 Kunne ikke indlæse databasen 4 Prøver igen med 6 Kan ikke oprette mappen %s 7 Kunne ikke finde skærme til hÃ¥ndtering.\nSørg for at ikke at ha' en anden window manager kørende. 8 Fejl: kan ikke parse regulært udtryk 9 Fatal fejl: der kan kun være en instans af klassen fluxbox. 10 Kunne ikke forbinde til X-serveren.\nSørg for at starte X før du starter Fluxbox. 11 Advarsel: X-serveren understøtter ikke lokale indstillinger (locale) 12 Advarsel: Kan ikke sætte `locale'-modifikatorer $set 8 #Gnome 1 Fatal fejl: Løbet tør for hukommelse, ikke nok til at allokere GNOME's klientliste. $set 9 #Keys 1 Taster (Keys): Fejl pÃ¥ linie 2 Taster (Keys): kunne ikke sammenflette tastetræ! 3 Taster (Keys): Ugyldig tast pÃ¥ linie $set 10 #Menu 1 Indstillinger 2 Fluxbox standardmenu 3 Afslut 4 Ikoner 5 Lag... 7 Placering 8 Genindlæs indstillinger 9 Genstart $set 11 #Remember 1 Dekorationer 2 Størrelse 3 GÃ¥ til skriverbord 4 Lag 5 Husk... 6 Placering 7 Gem ved lukning 8 Kun titelbjælke 9 PÃ¥ alle skriveborde 10 Ukendt apps nøgle 11 Skrivebord $set 12 #Screen 1 BScreen::BScreen: der opstod en fejl under forespørgsel til X server.\n en anden window manager kører allerede pÃ¥ display 2 B: %4d x H: %4d 3 BScreen::BScreen: hÃ¥ndterer skærm %d med visual 0x%lx, dybde %d\n 4 B: %04d x H: %04d $set 13 #Slit 1 Klienter 4 Slidsretning 5 Slidslag 7 Slidsplacering 8 Slids 9 Gem slidsliste $set 14 #Toolbar 1 Rediger skrivebordets navn 2 Vinduer vist i væjktøjsbjælken 3 Alle 4 Minimerede 5 Ingen 6 PÃ¥ skrivebord 7 Minimerede pÃ¥ skrivebord 8 Værktøjsbjælkelag 10 Værktøjsbjælkens placering 11 Værktøjsbjælke 13 Ur: 24 timer 14 Ur: 12 timer 15 Rediger tidsformat 16 Vis billeder 17 Ikke-minimerede 18 Ikke-minimerede pÃ¥ skrivebord $set 15 #Window 1 Intet navn $set 16 #Windowmenu 1 Luk 2 Minimeret 3 Lag 4 Sænk 5 Maksimer 6 Hæv 7 Send til ... 8 Kun titelbjælke 9 PÃ¥ alle skriveborde 10 Luk abrupt $set 17 #Workspace 1 Skrivebord %d 2 Skriveborde 3 Nyt skrivebord 4 Fjern sidste $set 18 #fbsetroot 1 fejl: specificér en af følgende: -solid, -mod, -gradient\n 3 -display skærmtilslutning\n\ -mod modula mønster\n\ -foreground, -fg modula foregrundsfarve\n\ -background, -bg modula baggrundsfarve\n\n\ -gradient gradienttekstur\n\ -from gradientens startfarve\n\ -to gradientens slutfarve\n\n\ -solid fast farve\n\n\ -help vis denne hjælp og afslut\n $set 19 #main 1 fejl: '-display' kræver et argument 2 DÃ¥rlig allokering 7 Ukendt fejl 9 Logfil 10 Logger til 11 fejl: '-rc' kræver et argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tbrug skærmtilslutning.\n\ -rc \t\t\tbrug alternativ resourcefil.\n\ -version\t\t\tvis versionsnummer og afslut.\n\ -info\t\t\t\tvis noget nyttig information.\n\ -log \t\t\tlog output til fil.\n\ -help\t\t\t\tvis denne hjælp og afslut.\n\n $set 20 #layers 1 Over dok 2 Nederst 3 Skrivebord 4 Dok 5 Normal 6 Øverst fluxbox-1.3.5/nls/da_DK/PaxHeaders.25974/generated-ISO-8859-1.m0000644000175000017500000000013212106662462021330 xustar000000000000000030 mtime=1360749874.691812472 30 atime=1360749874.711812472 30 ctime=1360750008.947811613 fluxbox-1.3.5/nls/da_DK/generated-ISO-8859-1.m0000644000175000017500000001160212106662462017357 0ustar00mgmg00000000000000$ codeset=ISO-8859-1 $set 1 #Align 1 Bunden i midten 2 Bunden til venstre 3 Bunden til højre 4 Horisontal 5 Til venstre 6 Til venstre i bunden 7 Til venstre i midten 8 Til venstre i toppen 9 Relativ 10 Til højre 11 Til højre i bunden 12 Til højre i midten 13 Til højre i toppen 14 Toppen i midten 15 Øverste venstre hjørne 16 Øverste højre hjørne 17 Vertikal $set 2 #BaseDisplay 1 Afslutter brat... laver et core dump\n 2 Lukker ned\n 3 %s: signal %d fanget\n $set 3 #Common 1 Alfa 2 Skjul automatisk 10 menu 11 stil 12 Standarder 13 Slået fra 14 Fejl 15 Fluxbox version 16 Maksimer over 17 GIT Revision 18 Synlig $set 4 #Configmenu 1 Antialias 2 Hæv automatisk 3 Klik hæver 4 Klik for fokus 5 Dekorér transiente vinduer 6 Skift skrivebord med scroll-hjulet 7 Fokuser på vindue ved skrivebordsskift 8 Fokusmodel 9 Fokuser på nye vinduer 10 Fuld maksimering 11 Billede-dithering 12 Ugennemsigtig flytning af vinduer 13 Semisløset Focus 14 Dovent fokus 15 Workspace Warping 16 Forcér pseudogennemsigtighed 18 Gennemsigtighed $set 5 #Ewmh 1 Fatal fejl: Løbet tør for hukommelse, ikke nok til at allokere EWMH's klientliste. $set 6 #FbTkError 1 Advarsel! Højde > 3200, sætter højde = 3200 2 Advarsel! Bredde > 3200, sætter bredde = 3200 3 Advarsel: Kan ikke indlæse reserveskrifttype 4 Allokeringsfejl. 5 Fejl i oprettelse af pixmap 6 Kunne ikke oprette XImage (`Xbillede') 7 Kunne ikke læse. 8 Advarsel: Fandt ikke noget gyldigt format for alfa. 9 Advarsel: Kunne ikke oprette alfa-billede. 10 Advarsel: Kunne ikke oprette alfa-pixmap. 11 Kunne ikke finde format for skærm(%d) 12 Løbet tør for hukommelse 13 Løbet tør for hukommelse under allokering af blå buffer. 14 Løbet tør for hukommelse under allokering af grøn buffer. 15 Løbet tør for hukommelse under allokering af rød buffer. 16 Kunne ikke læse tema-object 17 Uunderstøttet visual 18 Sætter standardværdi $set 7 #Fluxbox 1 rc-filnavn ugyldigt! 2 Kunne ikke indlæse gruppefilen 3 Kunne ikke indlæse databasen 4 Prøver igen med 6 Kan ikke oprette mappen %s 7 Kunne ikke finde skærme til håndtering.\nSørg for at ikke at ha' en anden window manager kørende. 8 Fejl: kan ikke parse regulært udtryk 9 Fatal fejl: der kan kun være en instans af klassen fluxbox. 10 Kunne ikke forbinde til X-serveren.\nSørg for at starte X før du starter Fluxbox. 11 Advarsel: X-serveren understøtter ikke lokale indstillinger (locale) 12 Advarsel: Kan ikke sætte `locale'-modifikatorer $set 8 #Gnome 1 Fatal fejl: Løbet tør for hukommelse, ikke nok til at allokere GNOME's klientliste. $set 9 #Keys 1 Taster (Keys): Fejl på linie 2 Taster (Keys): kunne ikke sammenflette tastetræ! 3 Taster (Keys): Ugyldig tast på linie $set 10 #Menu 1 Indstillinger 2 Fluxbox standardmenu 3 Afslut 4 Ikoner 5 Lag... 7 Placering 8 Genindlæs indstillinger 9 Genstart $set 11 #Remember 1 Dekorationer 2 Størrelse 3 Gå til skriverbord 4 Lag 5 Husk... 6 Placering 7 Gem ved lukning 8 Kun titelbjælke 9 På alle skriveborde 10 Ukendt apps nøgle 11 Skrivebord $set 12 #Screen 1 BScreen::BScreen: der opstod en fejl under forespørgsel til X server.\n en anden window manager kører allerede på display 2 B: %4d x H: %4d 3 BScreen::BScreen: håndterer skærm %d med visual 0x%lx, dybde %d\n 4 B: %04d x H: %04d $set 13 #Slit 1 Klienter 4 Slidsretning 5 Slidslag 7 Slidsplacering 8 Slids 9 Gem slidsliste $set 14 #Toolbar 1 Rediger skrivebordets navn 2 Vinduer vist i væjktøjsbjælken 3 Alle 4 Minimerede 5 Ingen 6 På skrivebord 7 Minimerede på skrivebord 8 Værktøjsbjælkelag 10 Værktøjsbjælkens placering 11 Værktøjsbjælke 13 Ur: 24 timer 14 Ur: 12 timer 15 Rediger tidsformat 16 Vis billeder 17 Ikke-minimerede 18 Ikke-minimerede på skrivebord $set 15 #Window 1 Intet navn $set 16 #Windowmenu 1 Luk 2 Minimeret 3 Lag 4 Sænk 5 Maksimer 6 Hæv 7 Send til ... 8 Kun titelbjælke 9 På alle skriveborde 10 Luk abrupt $set 17 #Workspace 1 Skrivebord %d 2 Skriveborde 3 Nyt skrivebord 4 Fjern sidste $set 18 #fbsetroot 1 fejl: specificér en af følgende: -solid, -mod, -gradient\n 3 -display skærmtilslutning\n\ -mod modula mønster\n\ -foreground, -fg modula foregrundsfarve\n\ -background, -bg modula baggrundsfarve\n\n\ -gradient gradienttekstur\n\ -from gradientens startfarve\n\ -to gradientens slutfarve\n\n\ -solid fast farve\n\n\ -help vis denne hjælp og afslut\n $set 19 #main 1 fejl: '-display' kræver et argument 2 Dårlig allokering 7 Ukendt fejl 9 Logfil 10 Logger til 11 fejl: '-rc' kræver et argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tbrug skærmtilslutning.\n\ -rc \t\t\tbrug alternativ resourcefil.\n\ -version\t\t\tvis versionsnummer og afslut.\n\ -info\t\t\t\tvis noget nyttig information.\n\ -log \t\t\tlog output til fil.\n\ -help\t\t\t\tvis denne hjælp og afslut.\n\n $set 20 #layers 1 Over dok 2 Nederst 3 Skrivebord 4 Dok 5 Normal 6 Øverst fluxbox-1.3.5/nls/da_DK/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020466 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749874.691812472 30 ctime=1360750008.947811613 fluxbox-1.3.5/nls/da_DK/Translation.m0000644000175000017500000001160212106662425016515 0ustar00mgmg00000000000000$ codeset=ISO-8859-1 $set 1 #Align 1 Bunden i midten 2 Bunden til venstre 3 Bunden til højre 4 Horisontal 5 Til venstre 6 Til venstre i bunden 7 Til venstre i midten 8 Til venstre i toppen 9 Relativ 10 Til højre 11 Til højre i bunden 12 Til højre i midten 13 Til højre i toppen 14 Toppen i midten 15 Øverste venstre hjørne 16 Øverste højre hjørne 17 Vertikal $set 2 #BaseDisplay 1 Afslutter brat... laver et core dump\n 2 Lukker ned\n 3 %s: signal %d fanget\n $set 3 #Common 1 Alfa 2 Skjul automatisk 10 menu 11 stil 12 Standarder 13 Slået fra 14 Fejl 15 Fluxbox version 16 Maksimer over 17 GIT Revision 18 Synlig $set 4 #Configmenu 1 Antialias 2 Hæv automatisk 3 Klik hæver 4 Klik for fokus 5 Dekorér transiente vinduer 6 Skift skrivebord med scroll-hjulet 7 Fokuser på vindue ved skrivebordsskift 8 Fokusmodel 9 Fokuser på nye vinduer 10 Fuld maksimering 11 Billede-dithering 12 Ugennemsigtig flytning af vinduer 13 Semisløset Focus 14 Dovent fokus 15 Workspace Warping 16 Forcér pseudogennemsigtighed 18 Gennemsigtighed $set 5 #Ewmh 1 Fatal fejl: Løbet tør for hukommelse, ikke nok til at allokere EWMH's klientliste. $set 6 #FbTkError 1 Advarsel! Højde > 3200, sætter højde = 3200 2 Advarsel! Bredde > 3200, sætter bredde = 3200 3 Advarsel: Kan ikke indlæse reserveskrifttype 4 Allokeringsfejl. 5 Fejl i oprettelse af pixmap 6 Kunne ikke oprette XImage (`Xbillede') 7 Kunne ikke læse. 8 Advarsel: Fandt ikke noget gyldigt format for alfa. 9 Advarsel: Kunne ikke oprette alfa-billede. 10 Advarsel: Kunne ikke oprette alfa-pixmap. 11 Kunne ikke finde format for skærm(%d) 12 Løbet tør for hukommelse 13 Løbet tør for hukommelse under allokering af blå buffer. 14 Løbet tør for hukommelse under allokering af grøn buffer. 15 Løbet tør for hukommelse under allokering af rød buffer. 16 Kunne ikke læse tema-object 17 Uunderstøttet visual 18 Sætter standardværdi $set 7 #Fluxbox 1 rc-filnavn ugyldigt! 2 Kunne ikke indlæse gruppefilen 3 Kunne ikke indlæse databasen 4 Prøver igen med 6 Kan ikke oprette mappen %s 7 Kunne ikke finde skærme til håndtering.\nSørg for at ikke at ha' en anden window manager kørende. 8 Fejl: kan ikke parse regulært udtryk 9 Fatal fejl: der kan kun være en instans af klassen fluxbox. 10 Kunne ikke forbinde til X-serveren.\nSørg for at starte X før du starter Fluxbox. 11 Advarsel: X-serveren understøtter ikke lokale indstillinger (locale) 12 Advarsel: Kan ikke sætte `locale'-modifikatorer $set 8 #Gnome 1 Fatal fejl: Løbet tør for hukommelse, ikke nok til at allokere GNOME's klientliste. $set 9 #Keys 1 Taster (Keys): Fejl på linie 2 Taster (Keys): kunne ikke sammenflette tastetræ! 3 Taster (Keys): Ugyldig tast på linie $set 10 #Menu 1 Indstillinger 2 Fluxbox standardmenu 3 Afslut 4 Ikoner 5 Lag... 7 Placering 8 Genindlæs indstillinger 9 Genstart $set 11 #Remember 1 Dekorationer 2 Størrelse 3 Gå til skriverbord 4 Lag 5 Husk... 6 Placering 7 Gem ved lukning 8 Kun titelbjælke 9 På alle skriveborde 10 Ukendt apps nøgle 11 Skrivebord $set 12 #Screen 1 BScreen::BScreen: der opstod en fejl under forespørgsel til X server.\n en anden window manager kører allerede på display 2 B: %4d x H: %4d 3 BScreen::BScreen: håndterer skærm %d med visual 0x%lx, dybde %d\n 4 B: %04d x H: %04d $set 13 #Slit 1 Klienter 4 Slidsretning 5 Slidslag 7 Slidsplacering 8 Slids 9 Gem slidsliste $set 14 #Toolbar 1 Rediger skrivebordets navn 2 Vinduer vist i væjktøjsbjælken 3 Alle 4 Minimerede 5 Ingen 6 På skrivebord 7 Minimerede på skrivebord 8 Værktøjsbjælkelag 10 Værktøjsbjælkens placering 11 Værktøjsbjælke 13 Ur: 24 timer 14 Ur: 12 timer 15 Rediger tidsformat 16 Vis billeder 17 Ikke-minimerede 18 Ikke-minimerede på skrivebord $set 15 #Window 1 Intet navn $set 16 #Windowmenu 1 Luk 2 Minimeret 3 Lag 4 Sænk 5 Maksimer 6 Hæv 7 Send til ... 8 Kun titelbjælke 9 På alle skriveborde 10 Luk abrupt $set 17 #Workspace 1 Skrivebord %d 2 Skriveborde 3 Nyt skrivebord 4 Fjern sidste $set 18 #fbsetroot 1 fejl: specificér en af følgende: -solid, -mod, -gradient\n 3 -display skærmtilslutning\n\ -mod modula mønster\n\ -foreground, -fg modula foregrundsfarve\n\ -background, -bg modula baggrundsfarve\n\n\ -gradient gradienttekstur\n\ -from gradientens startfarve\n\ -to gradientens slutfarve\n\n\ -solid fast farve\n\n\ -help vis denne hjælp og afslut\n $set 19 #main 1 fejl: '-display' kræver et argument 2 Dårlig allokering 7 Ukendt fejl 9 Logfil 10 Logger til 11 fejl: '-rc' kræver et argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tbrug skærmtilslutning.\n\ -rc \t\t\tbrug alternativ resourcefil.\n\ -version\t\t\tvis versionsnummer og afslut.\n\ -info\t\t\t\tvis noget nyttig information.\n\ -log \t\t\tlog output til fil.\n\ -help\t\t\t\tvis denne hjælp og afslut.\n\n $set 20 #layers 1 Over dok 2 Nederst 3 Skrivebord 4 Dok 5 Normal 6 Øverst fluxbox-1.3.5/nls/da_DK/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603020055 xustar000000000000000030 mtime=1360749955.735811953 30 atime=1360750003.507811648 30 ctime=1360750008.951811613 fluxbox-1.3.5/nls/da_DK/Makefile.in0000644000175000017500000002715412106662603016115 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/da_DK/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/da_DK DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = da_DK SRC_CODESET = ISO-8859-1 DEST_CODESETS = ISO-8859-1 UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/da_DK/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/da_DK/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/da_DK/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020046 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749853.591812607 30 ctime=1360750008.951811613 fluxbox-1.3.5/nls/da_DK/Makefile.am0000644000175000017500000000301012106662425016067 0ustar00mgmg00000000000000# nls/da_DK/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = da_DK SRC_CODESET = ISO-8859-1 DEST_CODESETS = ISO-8859-1 UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/cs_CZ0000644000175000017500000000013212106662665016002 xustar000000000000000030 mtime=1360750005.579811634 30 atime=1360750008.951811613 30 ctime=1360750008.951811613 fluxbox-1.3.5/nls/cs_CZ/0000755000175000017500000000000012106662665014106 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/cs_CZ/PaxHeaders.25974/generated-UTF-8.m0000644000175000017500000000013212106662462020767 xustar000000000000000030 mtime=1360749874.655812472 30 atime=1360749874.671812472 30 ctime=1360750008.951811613 fluxbox-1.3.5/nls/cs_CZ/generated-UTF-8.m0000644000175000017500000001266112106662462017024 0ustar00mgmg00000000000000$ codeset=UTF-8 $set 1 #Align 1 Dole uprostÅ™ed 2 Dole vlevo 3 Dole vpravo 4 HorizontálnÄ› 5 Vlevo 6 Vlevo dole 7 Vlevo uprostÅ™ed 8 Vlevo nahoÅ™e 9 RelativnÄ› 10 Vpravo 11 Vpravo dole 12 Vpravo uprostÅ™ed 13 Vpravo nahoÅ™e 14 NahoÅ™e uprostÅ™ed 15 NahoÅ™e vlevo 16 NahoÅ™e vpravo 17 VertikálnÄ› $set 2 #BaseDisplay 1 UkonÄuji... zaznamenávám pád aplikace\n 2 Vypínám\n 3 %s: zachycen signál %d\n $set 3 #Common 1 Alpha 2 Automaticky skrývat 3 Zkompilováno 4 Nastavení kompilátoru 5 Kompilátor 6 Verze kompilátoru 7 Soubor init 8 Soubor s definicí kláves 10 Soubor s definicí menu 11 Soubor se stylem 12 Implicitní 13 neaktivní 14 Chyba 15 Verze Fluxboxu 16 Maximalizovat pÅ™es vÅ¡echna okna 18 Viditelný $set 4 #Configmenu 1 Antialiasované fonty 2 Automatické vyzvednutí okna 3 Vyzvednutí okna kliknutím 4 Zaměření okna kliknutím 5 Odekorovat pomíjivá okna 6 PÅ™epínání ploch koleÄkem myÅ¡i 7 Zaměřit okno pÅ™i zmÄ›nÄ› plochy 8 Model zaměření okna 9 Zaměřit nová okna 10 Plná maximalizace 11 Dithering obrazu 12 Pohyb okna i s obsahem 13 ČásteÄnÄ› nedbalé zaměření okna 14 Nedbalé zaměření okna 15 Prolínání ploch 16 Vynutit pseudo-průhlednost 17 Alpha menu 18 Průhlednost 19 Alpha zaměřeného okna 20 Alpha nezaměřeného okna $set 5 #Ewmh 1 Fatal: Out of memory, can't allocate for EWMH client list $set 6 #FbTkError 1 Warning! Height > 3200 setting Height = 3200 2 Warning! Width > 3200 setting Width = 3200 3 Warning: can't load fallback font 4 Allocation error. 5 Error creating pixmap 6 Cant create XImage 7 Failed to read 8 Warning: Failed to find valid format for alpha. 9 Warning: Failed to create alpha picture. 10 Warning: Failed to create alpha pixmap. 11 Failed to find format for screen(%d) 12 Out of memory 13 Out of memory while allocating blue buffer. 14 Out of memory while allocating green buffer. 15 Out of memory while allocating red buffer. 16 Failed to read theme item 17 unsupported visual 18 Setting default value $set 7 #Fluxbox 1 rc filename is invalid! 2 Failed to load groupfile 3 Failed to load database 4 Retrying with 5 Warning! Could not find screen to map window on! 6 Can't create %s directory 7 Couldn't find screens to manage.\nMake sure you don't have another window manager running. 8 Error parsing regular expression 9 Fatal! There can only one instance of fluxbox class. 10 Can not connect to X server.\nMake sure you started X before you start Fluxbox. 11 Warning: X server does not support locale 12 Warning: cannot set locale modifiers $set 8 #Gnome 1 Fatal: Out of memory, can't allocate for GNOME client list $set 9 #Keys 1 Keys: Error on line 2 Keys: Failed to merge keytree! 3 Keys: Invalid key/modifier on line $set 10 #Menu 1 Konfigurace 2 Implicitní menu Fluxboxu 3 UkonÄit 4 Minimalizované 5 Vrstva... 6 On Head... 7 UmístÄ›ní 8 Znovu naÄíst konfiguraci 9 Restart $set 11 #Remember 1 Decorace 2 RozmÄ›r 3 Skok na plochu 4 Vrstva 5 Zapamatovat... 6 Pozice 7 Uložit pÅ™i zavÅ™ení 8 Zarolování 9 PÅ™iÅ¡pendlení 10 Neznámé klávesy aplikace 11 Plocha 12 HlaviÄka $set 12 #Screen 1 BScreen::BScreen: an error occured while querying the X server.\n another window manager already running on display 2 W: %4d x H: %4d 3 BScreen::BScreen: managing screen %d using visual 0x%lx, depth %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Klientské aplikace 2 Rolovat dolů 3 Rolovat nahoru 4 UmístÄ›ní Slitu 5 Vrstva Slitu 6 Slit on Head 7 UmístÄ›ní Slitu 8 Slit 9 Uložit SlitList $set 14 #Toolbar 1 Upravit název aktuální plochy 2 Zobrazovat... 3 VÅ¡echna okna 4 Zminimalizovaná 5 Žádná 6 Aktuální plocha 7 Zminimalizované na aktuální ploÅ¡e 8 Vrstva nástrojové liÅ¡ty 9 Toolbar on Head 10 UmístÄ›ní nástrojové liÅ¡ty 11 Nástrojová liÅ¡ta 12 Šířka (% šířky obrazovky) 13 Hodiny: 24h 14 Hodiny: 12h 15 Upravit formát hodin 16 Zobrazit obrázky $set 15 #Window 1 Beze jména $set 16 #Windowmenu 1 Zavřít 2 Minimalizovat 3 Vrstva 4 Na pozadí 5 Maximalizovat 6 Do popÅ™edí 7 Poslat na ... 8 Zarolovat 9 PÅ™iÅ¡pendlit na vÅ¡echny plochy 10 Zabít $set 17 #Workspace 1 Plocha %d 2 Seznam ploch 3 Nová plocha 4 Odstranit poslední $set 18 #fbsetroot 1 error: must specify one of: -solid, -mod, -gradient\n 2 Couldn't create pixmap atoms, giving up! 3 -display display connection\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient gradient texture\n\ -from gradient start color\n\ -to gradient end color\n\n\ -solid solid color\n\n\ -help print this help text and exit\n $set 19 #main 1 chyba: '-display' vyžaduje argument 2 Bad Alloc 3 Bad cast 4 Out of range 5 Runtime error 6 Standard Exception 7 Neznámá chyba 8 chyba: '-log' vyžaduje argument 9 Logovací soubor 10 Loguji do 11 chyba: '-rc' vyžaduje argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tpouzžije propojení s displejem .\n\ -rc \t\t\tpouzije alternativní soubor zdrojů (resource file).\n\ -version\t\t\tzobrazi verzi a skonci.\n\ -info\t\t\t\tzobrazi nektere zajimave informace.\n\ -log \t\t\tlogovat výstup do souboru .\n\ -help\t\t\t\tzobrazí tuto nápovÄ›du a skonÄí.\n\n 14 varování: nemohu nastavit promÄ›nnou prostÅ™edí 'DISPLAY' $set 20 1 Nad dokem 2 Naspod 3 Plocha 4 Dok 5 Normální 6 Navrchu fluxbox-1.3.5/nls/cs_CZ/PaxHeaders.25974/generated-ISO-8859-2.m0000644000175000017500000000013212106662462021370 xustar000000000000000030 mtime=1360749874.651812472 30 atime=1360749874.667812472 30 ctime=1360750008.955811613 fluxbox-1.3.5/nls/cs_CZ/generated-ISO-8859-2.m0000644000175000017500000001237312106662462017425 0ustar00mgmg00000000000000$ codeset=ISO-8859-2 $set 1 #Align 1 Dole uprostøed 2 Dole vlevo 3 Dole vpravo 4 Horizontálnì 5 Vlevo 6 Vlevo dole 7 Vlevo uprostøed 8 Vlevo nahoøe 9 Relativnì 10 Vpravo 11 Vpravo dole 12 Vpravo uprostøed 13 Vpravo nahoøe 14 Nahoøe uprostøed 15 Nahoøe vlevo 16 Nahoøe vpravo 17 Vertikálnì $set 2 #BaseDisplay 1 Ukonèuji... zaznamenávám pád aplikace\n 2 Vypínám\n 3 %s: zachycen signál %d\n $set 3 #Common 1 Alpha 2 Automaticky skrývat 3 Zkompilováno 4 Nastavení kompilátoru 5 Kompilátor 6 Verze kompilátoru 7 Soubor init 8 Soubor s definicí kláves 10 Soubor s definicí menu 11 Soubor se stylem 12 Implicitní 13 neaktivní 14 Chyba 15 Verze Fluxboxu 16 Maximalizovat pøes v¹echna okna 18 Viditelný $set 4 #Configmenu 1 Antialiasované fonty 2 Automatické vyzvednutí okna 3 Vyzvednutí okna kliknutím 4 Zamìøení okna kliknutím 5 Odekorovat pomíjivá okna 6 Pøepínání ploch koleèkem my¹i 7 Zamìøit okno pøi zmìnì plochy 8 Model zamìøení okna 9 Zamìøit nová okna 10 Plná maximalizace 11 Dithering obrazu 12 Pohyb okna i s obsahem 13 Èásteènì nedbalé zamìøení okna 14 Nedbalé zamìøení okna 15 Prolínání ploch 16 Vynutit pseudo-prùhlednost 17 Alpha menu 18 Prùhlednost 19 Alpha zamìøeného okna 20 Alpha nezamìøeného okna $set 5 #Ewmh 1 Fatal: Out of memory, can't allocate for EWMH client list $set 6 #FbTkError 1 Warning! Height > 3200 setting Height = 3200 2 Warning! Width > 3200 setting Width = 3200 3 Warning: can't load fallback font 4 Allocation error. 5 Error creating pixmap 6 Cant create XImage 7 Failed to read 8 Warning: Failed to find valid format for alpha. 9 Warning: Failed to create alpha picture. 10 Warning: Failed to create alpha pixmap. 11 Failed to find format for screen(%d) 12 Out of memory 13 Out of memory while allocating blue buffer. 14 Out of memory while allocating green buffer. 15 Out of memory while allocating red buffer. 16 Failed to read theme item 17 unsupported visual 18 Setting default value $set 7 #Fluxbox 1 rc filename is invalid! 2 Failed to load groupfile 3 Failed to load database 4 Retrying with 5 Warning! Could not find screen to map window on! 6 Can't create %s directory 7 Couldn't find screens to manage.\nMake sure you don't have another window manager running. 8 Error parsing regular expression 9 Fatal! There can only one instance of fluxbox class. 10 Can not connect to X server.\nMake sure you started X before you start Fluxbox. 11 Warning: X server does not support locale 12 Warning: cannot set locale modifiers $set 8 #Gnome 1 Fatal: Out of memory, can't allocate for GNOME client list $set 9 #Keys 1 Keys: Error on line 2 Keys: Failed to merge keytree! 3 Keys: Invalid key/modifier on line $set 10 #Menu 1 Konfigurace 2 Implicitní menu Fluxboxu 3 Ukonèit 4 Minimalizované 5 Vrstva... 6 On Head... 7 Umístìní 8 Znovu naèíst konfiguraci 9 Restart $set 11 #Remember 1 Decorace 2 Rozmìr 3 Skok na plochu 4 Vrstva 5 Zapamatovat... 6 Pozice 7 Ulo¾it pøi zavøení 8 Zarolování 9 Pøi¹pendlení 10 Neznámé klávesy aplikace 11 Plocha 12 Hlavièka $set 12 #Screen 1 BScreen::BScreen: an error occured while querying the X server.\n another window manager already running on display 2 W: %4d x H: %4d 3 BScreen::BScreen: managing screen %d using visual 0x%lx, depth %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Klientské aplikace 2 Rolovat dolù 3 Rolovat nahoru 4 Umístìní Slitu 5 Vrstva Slitu 6 Slit on Head 7 Umístìní Slitu 8 Slit 9 Ulo¾it SlitList $set 14 #Toolbar 1 Upravit název aktuální plochy 2 Zobrazovat... 3 V¹echna okna 4 Zminimalizovaná 5 ®ádná 6 Aktuální plocha 7 Zminimalizované na aktuální plo¹e 8 Vrstva nástrojové li¹ty 9 Toolbar on Head 10 Umístìní nástrojové li¹ty 11 Nástrojová li¹ta 12 ©íøka (% ¹íøky obrazovky) 13 Hodiny: 24h 14 Hodiny: 12h 15 Upravit formát hodin 16 Zobrazit obrázky $set 15 #Window 1 Beze jména $set 16 #Windowmenu 1 Zavøít 2 Minimalizovat 3 Vrstva 4 Na pozadí 5 Maximalizovat 6 Do popøedí 7 Poslat na ... 8 Zarolovat 9 Pøi¹pendlit na v¹echny plochy 10 Zabít $set 17 #Workspace 1 Plocha %d 2 Seznam ploch 3 Nová plocha 4 Odstranit poslední $set 18 #fbsetroot 1 error: must specify one of: -solid, -mod, -gradient\n 2 Couldn't create pixmap atoms, giving up! 3 -display display connection\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient gradient texture\n\ -from gradient start color\n\ -to gradient end color\n\n\ -solid solid color\n\n\ -help print this help text and exit\n $set 19 #main 1 chyba: '-display' vy¾aduje argument 2 Bad Alloc 3 Bad cast 4 Out of range 5 Runtime error 6 Standard Exception 7 Neznámá chyba 8 chyba: '-log' vy¾aduje argument 9 Logovací soubor 10 Loguji do 11 chyba: '-rc' vy¾aduje argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tpouz¾ije propojení s displejem .\n\ -rc \t\t\tpouzije alternativní soubor zdrojù (resource file).\n\ -version\t\t\tzobrazi verzi a skonci.\n\ -info\t\t\t\tzobrazi nektere zajimave informace.\n\ -log \t\t\tlogovat výstup do souboru .\n\ -help\t\t\t\tzobrazí tuto nápovìdu a skonèí.\n\n 14 varování: nemohu nastavit promìnnou prostøedí 'DISPLAY' $set 20 1 Nad dokem 2 Naspod 3 Plocha 4 Dok 5 Normální 6 Navrchu fluxbox-1.3.5/nls/cs_CZ/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425020525 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749874.651812472 30 ctime=1360750008.955811613 fluxbox-1.3.5/nls/cs_CZ/Translation.m0000644000175000017500000001237312106662425016562 0ustar00mgmg00000000000000$ codeset=ISO-8859-2 $set 1 #Align 1 Dole uprostøed 2 Dole vlevo 3 Dole vpravo 4 Horizontálnì 5 Vlevo 6 Vlevo dole 7 Vlevo uprostøed 8 Vlevo nahoøe 9 Relativnì 10 Vpravo 11 Vpravo dole 12 Vpravo uprostøed 13 Vpravo nahoøe 14 Nahoøe uprostøed 15 Nahoøe vlevo 16 Nahoøe vpravo 17 Vertikálnì $set 2 #BaseDisplay 1 Ukonèuji... zaznamenávám pád aplikace\n 2 Vypínám\n 3 %s: zachycen signál %d\n $set 3 #Common 1 Alpha 2 Automaticky skrývat 3 Zkompilováno 4 Nastavení kompilátoru 5 Kompilátor 6 Verze kompilátoru 7 Soubor init 8 Soubor s definicí kláves 10 Soubor s definicí menu 11 Soubor se stylem 12 Implicitní 13 neaktivní 14 Chyba 15 Verze Fluxboxu 16 Maximalizovat pøes v¹echna okna 18 Viditelný $set 4 #Configmenu 1 Antialiasované fonty 2 Automatické vyzvednutí okna 3 Vyzvednutí okna kliknutím 4 Zamìøení okna kliknutím 5 Odekorovat pomíjivá okna 6 Pøepínání ploch koleèkem my¹i 7 Zamìøit okno pøi zmìnì plochy 8 Model zamìøení okna 9 Zamìøit nová okna 10 Plná maximalizace 11 Dithering obrazu 12 Pohyb okna i s obsahem 13 Èásteènì nedbalé zamìøení okna 14 Nedbalé zamìøení okna 15 Prolínání ploch 16 Vynutit pseudo-prùhlednost 17 Alpha menu 18 Prùhlednost 19 Alpha zamìøeného okna 20 Alpha nezamìøeného okna $set 5 #Ewmh 1 Fatal: Out of memory, can't allocate for EWMH client list $set 6 #FbTkError 1 Warning! Height > 3200 setting Height = 3200 2 Warning! Width > 3200 setting Width = 3200 3 Warning: can't load fallback font 4 Allocation error. 5 Error creating pixmap 6 Cant create XImage 7 Failed to read 8 Warning: Failed to find valid format for alpha. 9 Warning: Failed to create alpha picture. 10 Warning: Failed to create alpha pixmap. 11 Failed to find format for screen(%d) 12 Out of memory 13 Out of memory while allocating blue buffer. 14 Out of memory while allocating green buffer. 15 Out of memory while allocating red buffer. 16 Failed to read theme item 17 unsupported visual 18 Setting default value $set 7 #Fluxbox 1 rc filename is invalid! 2 Failed to load groupfile 3 Failed to load database 4 Retrying with 5 Warning! Could not find screen to map window on! 6 Can't create %s directory 7 Couldn't find screens to manage.\nMake sure you don't have another window manager running. 8 Error parsing regular expression 9 Fatal! There can only one instance of fluxbox class. 10 Can not connect to X server.\nMake sure you started X before you start Fluxbox. 11 Warning: X server does not support locale 12 Warning: cannot set locale modifiers $set 8 #Gnome 1 Fatal: Out of memory, can't allocate for GNOME client list $set 9 #Keys 1 Keys: Error on line 2 Keys: Failed to merge keytree! 3 Keys: Invalid key/modifier on line $set 10 #Menu 1 Konfigurace 2 Implicitní menu Fluxboxu 3 Ukonèit 4 Minimalizované 5 Vrstva... 6 On Head... 7 Umístìní 8 Znovu naèíst konfiguraci 9 Restart $set 11 #Remember 1 Decorace 2 Rozmìr 3 Skok na plochu 4 Vrstva 5 Zapamatovat... 6 Pozice 7 Ulo¾it pøi zavøení 8 Zarolování 9 Pøi¹pendlení 10 Neznámé klávesy aplikace 11 Plocha 12 Hlavièka $set 12 #Screen 1 BScreen::BScreen: an error occured while querying the X server.\n another window manager already running on display 2 W: %4d x H: %4d 3 BScreen::BScreen: managing screen %d using visual 0x%lx, depth %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Klientské aplikace 2 Rolovat dolù 3 Rolovat nahoru 4 Umístìní Slitu 5 Vrstva Slitu 6 Slit on Head 7 Umístìní Slitu 8 Slit 9 Ulo¾it SlitList $set 14 #Toolbar 1 Upravit název aktuální plochy 2 Zobrazovat... 3 V¹echna okna 4 Zminimalizovaná 5 ®ádná 6 Aktuální plocha 7 Zminimalizované na aktuální plo¹e 8 Vrstva nástrojové li¹ty 9 Toolbar on Head 10 Umístìní nástrojové li¹ty 11 Nástrojová li¹ta 12 ©íøka (% ¹íøky obrazovky) 13 Hodiny: 24h 14 Hodiny: 12h 15 Upravit formát hodin 16 Zobrazit obrázky $set 15 #Window 1 Beze jména $set 16 #Windowmenu 1 Zavøít 2 Minimalizovat 3 Vrstva 4 Na pozadí 5 Maximalizovat 6 Do popøedí 7 Poslat na ... 8 Zarolovat 9 Pøi¹pendlit na v¹echny plochy 10 Zabít $set 17 #Workspace 1 Plocha %d 2 Seznam ploch 3 Nová plocha 4 Odstranit poslední $set 18 #fbsetroot 1 error: must specify one of: -solid, -mod, -gradient\n 2 Couldn't create pixmap atoms, giving up! 3 -display display connection\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient gradient texture\n\ -from gradient start color\n\ -to gradient end color\n\n\ -solid solid color\n\n\ -help print this help text and exit\n $set 19 #main 1 chyba: '-display' vy¾aduje argument 2 Bad Alloc 3 Bad cast 4 Out of range 5 Runtime error 6 Standard Exception 7 Neznámá chyba 8 chyba: '-log' vy¾aduje argument 9 Logovací soubor 10 Loguji do 11 chyba: '-rc' vy¾aduje argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\n\ -display \t\tpouz¾ije propojení s displejem .\n\ -rc \t\t\tpouzije alternativní soubor zdrojù (resource file).\n\ -version\t\t\tzobrazi verzi a skonci.\n\ -info\t\t\t\tzobrazi nektere zajimave informace.\n\ -log \t\t\tlogovat výstup do souboru .\n\ -help\t\t\t\tzobrazí tuto nápovìdu a skonèí.\n\n 14 varování: nemohu nastavit promìnnou prostøedí 'DISPLAY' $set 20 1 Nad dokem 2 Naspod 3 Plocha 4 Dok 5 Normální 6 Navrchu fluxbox-1.3.5/nls/cs_CZ/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603020114 xustar000000000000000030 mtime=1360749955.715811953 30 atime=1360750003.487811648 30 ctime=1360750008.955811613 fluxbox-1.3.5/nls/cs_CZ/Makefile.in0000644000175000017500000002715412106662603016154 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/cs_CZ/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/cs_CZ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = cs_CZ SRC_CODESET = ISO-8859-2 DEST_CODESETS = ISO-8859-2 UTF-8 NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST = $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/cs_CZ/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/cs_CZ/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/cs_CZ/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425020105 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749853.567812607 30 ctime=1360750008.955811613 fluxbox-1.3.5/nls/cs_CZ/Makefile.am0000644000175000017500000000301012106662425016126 0ustar00mgmg00000000000000# nls/cs_CZ/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = cs_CZ SRC_CODESET = ISO-8859-2 DEST_CODESETS = ISO-8859-2 UTF-8 LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ MFILES = Translation.m GENERATED_MFILES = $(patsubst %,generated-%.m,$(DEST_CODESETS)) MAINTAINERCLEANFILES = Makefile.in $(GENERATED_MFILES) CATFILES = $(patsubst %,fluxbox-%.cat,$(DEST_CODESETS)) # We distribute the generated files so that users don't need iconv EXTRA_DIST= $(MFILES) $(GENERATED_MFILES) CLEANFILES = $(CATFILES) all-local: $(CATFILES) install-data-local: $(CATFILES) @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ $(INSTALL_DATA) fluxbox-$${codeset}.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ done; \ fi # not part of the normal build process translations: $(GENERATED_MFILES) generated-%.m: Translation.m iconv -f $(SRC_CODESET) -t $* $(srcdir)/Translation.m | sed s/$(SRC_CODESET)/$*/ > $@ uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ for codeset in $(DEST_CODESETS); do \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG).$${codeset}; \ done; \ fi fluxbox-%.cat: generated-%.m Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Creating catfile for $*"; \ $(gencat_cmd) fluxbox-$*.cat $(srcdir)/generated-$*.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/C0000644000175000017500000000013212106662665015163 xustar000000000000000030 mtime=1360750005.543811634 30 atime=1360750008.955811613 30 ctime=1360750008.955811613 fluxbox-1.3.5/nls/C/0000755000175000017500000000000012106662665013267 5ustar00mgmg00000000000000fluxbox-1.3.5/nls/C/PaxHeaders.25974/Translation.m0000644000175000017500000000013212106662425017706 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749874.627812472 30 ctime=1360750008.959811613 fluxbox-1.3.5/nls/C/Translation.m0000644000175000017500000001333212106662425015737 0ustar00mgmg00000000000000$ codeset=ISO-8859-1 $set 1 #Align 1 Bottom Center 2 Bottom Left 3 Bottom Right 4 Horizontal_OBSOLETE 5 Left_OBSOLETE 6 Left Bottom 7 Left Center 8 Left Top 9 Relative_OBSOLETE 10 Right_OBSOLETE 11 Right Bottom 12 Right Center 13 Right Top 14 Top Center 15 Top Left 16 Top Right 17 Vertical_OBSOLETE 18 Center_OBSOLETE 19 Top_OBSOLETE 20 Bottom_OBSOLETE $set 2 #BaseDisplay 1 Aborting... dumping core\n 2 Shutting Down\n 3 %s: signal %d caught\n $set 3 #Common 1 Alpha 2 Auto hide 3 Compiled 4 Compiled options 5 Compiler 6 Compiler version 7 init 8 keys 9 nls 10 menu 11 style 12 Defaults 13 disabled 14 Error 15 Fluxbox version 16 Maximize Over 17 GIT Revision 18 Visible 19 There is no background option specified in this style.\nPlease consult the manual or read the FAQ. $set 4 #Configmenu 1 AntiAlias_OBSOLETE 2 Auto Raise 3 Click Raises 4 Click to Focus 5 Decorate Transient Windows_OBSOLETE 6 Desktop MouseWheel Switching_OBSOLETE 7 Focus Window on Workspace Change_OBSOLETE 8 Focus Model 9 Focus New Windows 10 Full Maximization 11 Image Dithering_OBSOLETE 12 Opaque Window Moving 13 Mouse Focus (Strict) 14 Mouse Focus 15 Workspace Warping 16 Force Pseudo-Transparency 17 Menu Alpha 18 Transparency 19 Focused Window Alpha 20 Unfocused Window Alpha 21 Tab Options 22 Tabs in Titlebar 23 External Tab Width 24 Click Tab Focus 25 Mouse Tab Focus 26 Maximize Options 27 Ignore Resize Increment 28 Disable Moving 29 Disable Resizing $set 5 #Ewmh_OBSOLETE 1 Fatal: Out of memory, can't allocate for EWMH client list_OBSOLETE $set 6 #FbTkError 1 Warning! Height > 3200, setting Height = 3200 2 Warning! Width > 3200, setting Width = 3200 3 Warning: can't load fallback font 4 Allocation error. 5 Error creating pixmap 6 Can't create XImage 7 Failed to read 8 Warning: Failed to find valid format for alpha. 9 Warning: Failed to create alpha picture. 10 Warning: Failed to create alpha pixmap. 11 Failed to find format for screen(%d) 12 Out of memory 13 Out of memory while allocating blue buffer. 14 Out of memory while allocating green buffer. 15 Out of memory while allocating red buffer. 16 Failed to read theme item 17 unsupported visual 18 Setting default value $set 7 #Fluxbox 1 rc filename is invalid! 2 Failed to load groupfile_OBSOLETE 3 Failed to load database 4 Retrying with 5 Warning! Could not find screen to map window on! 6 Can't create directory %s 7 Couldn't find screens to manage.\nMake sure you don't have another window manager running. 8 Error parsing regular expression 9 Fatal! There can only one instance of fluxbox class. 10 Can not connect to X server.\nMake sure you started X before you start Fluxbox. 11 Warning: X server does not support locale 12 Warning: cannot set locale modifiers $set 8 #Gnome_OBSOLETE 1 Fatal: Out of memory, can't allocate for GNOME client list_OBSOLETE $set 9 #Keys 1 Keys: Error on line 2 Keys: Failed to merge keytree!_OBSOLETE 3 Keys: Invalid key/modifier on line $set 10 #Menu 1 Configuration 2 Fluxbox default menu 3 Exit 4 Icons 5 Layer... 6 On Head... 7 Placement 8 Reload Config 9 Restart 10 Warning: unbalanced [encoding] tags $set 11 #Remember 1 Decorations 2 Dimensions 3 Jump to workspace 4 Layer 5 Remember... 6 Position 7 Save on close 8 Shaded 9 Sticky 10 Unknown apps key_OBSOLETE 11 Workspace 12 Head 13 Transparency 14 Minimized 15 Maximize 16 Fullscreen $set 12 #Screen 1 BScreen::BScreen: an error occured while querying the X server.\n another window manager already running on display 2 W: %4d x H: %4d 3 BScreen::BScreen: managing screen %d using visual 0x%lx, depth %d\n 4 W: %04d x H: %04d $set 13 #Slit 1 Clients 2 Cycle Down 3 Cycle Up 4 Slit Direction: 5 Slit Layer 6 Slit on Head 7 Slit Placement 8 Slit 9 Save SlitList $set 14 #Toolbar 1 Rename current workspace 2 Iconbar Mode 3 All Windows 4 Icons 5 None 6 Workspace 7 WorkspaceIcons 8 Toolbar Layer 9 Toolbar on Head 10 Toolbar Placement 11 Toolbar 12 Toolbar width percent 13 Clock: 24h 14 Clock: 12h 15 Edit Clock Format 16 Show Pictures 17 NoIcons 18 WorkspaceNoIcons $set 15 #Window 1 Unnamed $set 16 #Windowmenu 1 Close 2 Iconify 3 Layer 4 Lower 5 Maximize 6 Raise 7 Send To ... 8 Shade 9 Stick 10 Kill_OBSOLETE 11 Use Defaults_OBSOLETE 12 Set Window Title $set 17 #Workspace 1 Workspace %d 2 Workspaces 3 New Workspace 4 Remove Last $set 18 #fbsetroot 1 Error: must specify one of: -solid, -mod, -gradient\n 2 Couldn't create pixmap atoms, giving up! 3 -display display connection\n\ -mod modula pattern\n\ -foreground, -fg modula foreground color\n\ -background, -bg modula background color\n\n\ -gradient gradient texture\n\ -from gradient start color\n\ -to gradient end color\n\n\ -solid solid color\n\n\ -help print this help text and exit\n $set 19 #main 1 error: '-display' requires an argument 2 Bad Alloc 3 Bad cast 4 Out of range 5 Runtime error 6 Standard Exception 7 Unknown error 8 error: '-log' needs an argument 9 Log File 10 Logging to 11 error: '-rc' requires an argument 12 error: '-screen' requires an argument 13 Fluxbox %s: (c) %s Henrik Kinnunen\n\ Website: http://www.fluxbox.org/\n\n\ -display \t\tuse display connection.\n\ -screen \trun on specified screens only.\n\ -rc \t\t\tuse alternate resource file.\n\ -version\t\t\tdisplay version and exit.\n\ -info\t\t\t\tdisplay some useful information.\n\ -list-commands\t\t\tlist all valid key commands.\n\ -sync\t\t\t\tsynchronize with X server for debugging.\n\ -log \t\t\tlog output to file.\n\ -help\t\t\t\tdisplay this help text and exit.\n\n 14 warning: couldn't set environment variable 'DISPLAY' $set 20 #layers 1 Above Dock 2 Bottom 3 Desktop 4 Dock 5 Normal 6 Top fluxbox-1.3.5/nls/C/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603017275 xustar000000000000000030 mtime=1360749955.627811954 30 atime=1360750003.435811648 30 ctime=1360750008.959811613 fluxbox-1.3.5/nls/C/Makefile.in0000644000175000017500000002560712106662603015336 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/C/Makefile.am for Fluxbox - www.fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls/C DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ THE_LANG = C NLSTEST = @NLS@ CLEANFILES = fluxbox.cat MAINTAINERCLEANFILES = Makefile.in MFILES = Translation.m EXTRA_DIST = $(MFILES) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/C/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/C/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-data-local install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-local all-local: fluxbox.cat install-data-local: fluxbox.cat @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG)"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG); \ $(INSTALL_DATA) fluxbox.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG); \ fi uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG)/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG); \ fi fluxbox.cat: Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ $(gencat_cmd) fluxbox.cat $(srcdir)/Translation.m; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/C/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425017266 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749853.479812608 30 ctime=1360750008.959811613 fluxbox-1.3.5/nls/C/Makefile.am0000644000175000017500000000146012106662425015316 0ustar00mgmg00000000000000# nls/C/Makefile.am for Fluxbox - www.fluxbox.org THE_LANG = C LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ CLEANFILES = fluxbox.cat MAINTAINERCLEANFILES = Makefile.in MFILES = Translation.m EXTRA_DIST= $(MFILES) all-local: fluxbox.cat install-data-local: fluxbox.cat @if test x$(NLSTEST) = "x-DNLS"; then \ echo "Installing catalog in $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG)"; \ $(mkinstalldirs) $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG); \ $(INSTALL_DATA) fluxbox.cat $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG); \ fi uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ rm -f $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG)/fluxbox.cat; \ rmdir $(DESTDIR)$(LOCALE_PATH)/$(THE_LANG); \ fi fluxbox.cat: Translation.m @if test x$(NLSTEST) = "x-DNLS"; then \ $(gencat_cmd) fluxbox.cat $(srcdir)/Translation.m; \ fi fluxbox-1.3.5/nls/PaxHeaders.25974/nlsinfo0000644000175000017500000000013212106662425016443 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749874.595812473 30 ctime=1360750008.959811613 fluxbox-1.3.5/nls/nlsinfo0000644000175000017500000001732512106662425014502 0ustar00mgmg00000000000000#!/usr/bin/perl -w # This perl script is intended to go through the fluxbox source # code searching for the special NLS strings. It then dumps # the requested details. # # I started trying to write it fairly generic, but it was difficult :-) # Should be fairly adaptable though # # It doesn't currently handle more than one NLS define per line # => If you get an "undefined" error, its probably 2 on one line $VERSION = "0.1"; use strict; use Getopt::Std; $Getopt::Std::STANDARD_HELP_VERSION = 1; # the boolitem and focusitem is pretty dodgy, but it'll do for now my $match_re = "(?:_FB(?:TK)?TEXT|_BOOLITEM|_FOCUSITEM)"; # regular expression for not a unquoted quote my $noquote = q'(?:[^\"]|\\")'; my $fielddelim = "\0"; my $recorddelim = "\0"; ############################# # Parse and validate arguments my %opts; my $command = $0; $command =~ s,^.*/,,; my $fullcommand = "$command " . join(" ", @ARGV); if (!getopts("d:fhn:pr:vFHN:R", \%opts)) { HELP_MESSAGE("error"); exit(1); } sub HELP_MESSAGE { my $arg = shift; my $FD = *STDOUT; if (defined($arg) && $arg eq "error") { $FD = *STDERR; } print $FD "Usage: $command [options] directory\n"; print $FD " Where options can be:\n"; print $FD " -R\tDon't recurse into subdirectories.\n"; print $FD " -f\tThe argument is a file, not a directory\n"; print $FD " -F\tPrint full NLS names, not shorthand ones\n"; print $FD " -d delim\tUse delim as the default delimiter\n"; print $FD " -r delim\tUse delim as the record delimiter\n"; print $FD " -n\tHeader name, default FLUXBOX_NLS_HH\n"; print $FD " -N\tNamespace for header\n"; print $FD " -v\tverbose output\n"; print $FD " -h\tPrint this help message\n"; print $FD "\nPlus one of the following options that direct how to operate:\n"; print $FD " -H\tGenerate a header file for the strings encountered (-n implied).\n"; print $FD " -p\tPrint out a null-separated tuple of Set,String,Default,Description\n"; print $FD " \t\n"; print $FD "\n"; } if (defined($opts{"h"})) { HELP_MESSAGE(); exit(0); } my $num_modes = 0; my $mode; sub mode_opt { my $opt = shift; my $modename = shift; return if (!defined($opts{$opt})); $num_modes++; $mode = $modename; } mode_opt("H", "header"); mode_opt("p", "print"); if ($num_modes == 0) { print STDERR "Must give one mode of operation!\n"; HELP_MESSAGE("error"); exit(1); } elsif ($num_modes > 1) { print STDERR "Too many modes of operation - must give exactly one!\n"; HELP_MESSAGE("error"); exit(1); } my $recurse = 1; $recurse = 0 if (defined($opts{"R"})); my $fullnames = 0; $fullnames = 1 if (defined($opts{"f"}) || $mode eq "header"); my $headername = "FLUXBOX_NLS_HH"; $headername = $opts{"n"} if (defined($opts{"n"})); my $namespace; $namespace = $opts{"N"} if (defined($opts{"N"})); my $verbose = 0; $verbose = 1 if (defined($opts{"v"})); if (defined($opts{"d"})) { $fielddelim = $opts{"d"}; $recorddelim = $opts{"d"}; } if (defined($opts{"r"})) { $recorddelim = $opts{"r"}; } if (scalar(@ARGV) == 0) { print STDERR "Must give at least one more argument - the directory to scan\n"; exit(1); } my @args = @ARGV; if (!defined($opts{"f"})) { foreach my $dir (@args) { if (! -d $dir) { print STDERR "$dir is not a directory, aborting\n"; exit(2); } } } elsif (defined($opts{"f"})) { $recurse = 0; foreach my $file (@args) { if (! -r $file) { print STDERR "$file is not a readable file, aborting\n"; exit(2); } } } ############################# # Actually do stuff! (finally...) my %sets; if (defined($opts{"f"})) { foreach my $file (@args) { process_file($file); } } else { foreach my $dir (@args) { process_dir($dir); } } # Now we have the data, we need to print it out eval "mode_$mode()"; exit(0); # this function is given the fbtext arguments # But the first argument is the macro name... sub store { my ($type, $set, $str, $default, $desc) = @_; if ($type eq "_FBTKTEXT") { $set = "FbTk$set"; } if ($fullnames == 1) { $str = $set . $str; $set = $set . "Set"; } $sets{$set}->{$str}{"default"} = $default; $sets{$set}->{$str}{"desc"} = $desc; } # C strings can just be a bunch of quoted strings adjacent to # each other. This just puts them all together, removes the quotes # and unquotes anything we want to. # there may be newlines embedded... compare everything /s sub squish { my $str = shift; # remove first and last quote $str =~ s/^\s*\"//s; $str =~ s/\"\s*$//s; # now remove any inner quotes and intervening spaces $str =~ s/([^\\])\"\s*\"/$1/sg; # finally, unescape any remaining quotes $str =~ s/\\\"/\"/g; return $str; } sub process_dir { my $dir = shift; print STDERR "Processing directory '$dir'\n" if ($verbose == 1); opendir(DIR, $dir) || die "can't opendir $dir: $!"; my @files = grep { ( /\.(cc|hh)$/ && -f "$dir/$_" ) || ( -d "$dir/$_" && $_ !~ /^\.\.?$/ ) } readdir(DIR); closedir DIR; foreach my $file (@files) { if (-d "$dir/$file") { process_dir("$dir/$file") if ($recurse == 1); } else { process_file("$dir/$file"); } } } # assumptions for now: # - no more than one NLS thing on any single line # - internal parenthesis are balanced # - one nls thing can span several lines sub process_file { my $file = shift; print STDERR "Processing file '$file'\n" if ($verbose == 1); open(FILE, "<$file") || die "Can't open file $file: $!"; while () { chomp; if (/$match_re/ && $_ !~ /^\#(define|undef)/) { my $tail = $_; # strip away leading stuff # note that this doesn't work with more than one match on a line $tail =~ s/^.*($match_re)/$1/; # now we just need to find the end, looking out for any # quotes my $end = 0; my $full = $tail; while ($end == 0) { # match the defined macro, plus the first 4 arguments # (ignore any more), then handle them if ($full =~ /^($match_re)\(([^,]+),\s*([^,]+),((?:\s*\"$noquote*\")+),((?:\s*"$noquote*")+)\s*(?:,.*)?\)/s ) { store($1, $2, $3, squish($4), squish($5)); $end++; } else { my $extra = ; last if (!defined($extra)); $full .= $extra; } } } } close(FILE); } sub mode_print { foreach my $set (sort keys %sets) { foreach my $str (sort keys %{$sets{$set}}) { print $set . $fielddelim . $str . $fielddelim . $sets{$set}->{$str}{"default"} . $fielddelim . $sets{$set}->{$str}{"desc"} . $recorddelim; } } } sub mode_header { print "// This file generated by $fullcommand, on " . localtime() . "\n\n"; print "#ifndef $headername\n"; print "#define $headername\n\n"; print "namespace $namespace {\n\n" if (defined($namespace)); print "enum {\n"; my $setnum = 0; foreach my $set (sort keys %sets) { $setnum++; printf "\t%s = %d,\n", $set, $setnum; my $strnum = 0; foreach my $str (sort keys %{$sets{$set}}) { $strnum++; printf "\t%s = %d,\n", $str, $strnum; } print "\n"; } print "\tdummy_not_used = 0 // just for the end\n\n"; print "}; // end enum\n\n"; print "}; // end namespace $namespace\n\n" if (defined($namespace)); print "#endif // $headername\n"; } fluxbox-1.3.5/nls/PaxHeaders.25974/fluxbox-nls.hh0000644000175000017500000000013212106662425017652 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749874.595812473 30 ctime=1360750008.963811613 fluxbox-1.3.5/nls/fluxbox-nls.hh0000644000175000017500000001344512106662425015710 0ustar00mgmg00000000000000// This file generated by nlsinfo -H -N FBNLS ../src ../util, on Mon Jun 21 00:15:24 2004 #ifndef FLUXBOX_NLS_HH #define FLUXBOX_NLS_HH namespace FBNLS { enum { AlignSet = 1, AlignBottomCenter = 1, AlignBottomLeft = 2, AlignBottomRight = 3, AlignHorizontal = 4, AlignLeft = 5, AlignLeftBottom = 6, AlignLeftCenter = 7, AlignLeftTop = 8, AlignRelative = 9, AlignRight = 10, AlignRightBottom = 11, AlignRightCenter = 12, AlignRightTop = 13, AlignTopCenter = 14, AlignTopLeft = 15, AlignTopRight = 16, AlignVertical = 17, AlignCenter = 18, AlignTop = 19, AlignBottom = 20, BaseDisplaySet = 2, BaseDisplayAborting = 1, BaseDisplayShuttingDown = 2, BaseDisplaySignalCaught = 3, CommonSet = 3, CommonAlpha = 1, CommonAutoHide = 2, CommonCompiled = 3, CommonCompiledOptions = 4, CommonCompiler = 5, CommonCompilerVersion = 6, CommonDefaultInitFile = 7, CommonDefaultKeyFile = 8, CommonDefaultLocalePath = 9, CommonDefaultMenuFile = 10, CommonDefaultStyle = 11, CommonDefaults = 12, CommonDisabled = 13, CommonError = 14, CommonFluxboxVersion = 15, CommonMaximizeOver = 16, CommonSvnRevision = 17, CommonVisible = 18, CommonBackgroundWarning = 19, ConfigmenuSet = 4, ConfigmenuAntiAlias = 1, ConfigmenuAutoRaise = 2, ConfigmenuClickRaises = 3, ConfigmenuClickFocus = 4, ConfigmenuDecorateTransient = 5, ConfigmenuDesktopWheeling = 6, ConfigmenuFocusLast = 7, ConfigmenuFocusModel = 8, ConfigmenuFocusNew = 9, ConfigmenuFullMax = 10, ConfigmenuImageDithering = 11, ConfigmenuOpaqueMove = 12, // disabled, obsolete: ConfigmenuSemiSloppyFocus = 13, ConfigmenuMouseFocus = 14, ConfigmenuWorkspaceWarping = 15, ConfigmenuForcePseudoTrans = 16, ConfigmenuMenuAlpha = 17, ConfigmenuTransparency = 18, ConfigmenuFocusedAlpha = 19, ConfigmenuUnfocusedAlpha = 20, ConfigmenuTabMenu = 21, ConfigmenuTabsInTitlebar = 22, ConfigmenuExternalTabWidth = 23, ConfigmenuClickTabFocus = 24, ConfigmenuMouseTabFocus = 25, ConfigmenuMaxMenu = 26, ConfigmenuMaxIgnoreInc = 27, ConfigmenuMaxDisableMove = 28, ConfigmenuMaxDisableResize = 29, ConfigmenuStrictMouseFocus = 30, ConfigmenuFocusSameHead = 31, EwmhSet = 5, EwmhOutOfMemoryClientList = 1, FbTkErrorSet = 6, FbTkErrorBigHeight = 1, FbTkErrorBigWidth = 2, FbTkErrorCantFallbackFont = 3, FbTkErrorColorAllocation = 4, FbTkErrorCreatePixmap = 5, FbTkErrorCreateXImage = 6, FbTkErrorFailedRead = 7, FbTkErrorNoRenderFormat = 8, FbTkErrorNoRenderPicture = 9, FbTkErrorNoRenderPixmap = 10, FbTkErrorNoRenderVisualFormat = 11, FbTkErrorOutOfMemory = 12, FbTkErrorOutOfMemoryBlue = 13, FbTkErrorOutOfMemoryGreen = 14, FbTkErrorOutOfMemoryRed = 15, FbTkErrorThemeItem = 16, FbTkErrorUnsupportedVisual = 17, FbTkErrorUsingDefault = 18, FluxboxSet = 7, FluxboxBadRCFile = 1, FluxboxCantLoadGroupFile = 2, FluxboxCantLoadRCFile = 3, FluxboxCantLoadRCFileTrying = 4, FluxboxCantMapWindow = 5, FluxboxErrorCreatingDirectory = 6, FluxboxErrorNoScreens = 7, FluxboxErrorRegexp = 8, FluxboxFatalSingleton = 9, FluxboxNoDisplay = 10, FluxboxWarningLocale = 11, FluxboxWarningLocaleModifiers = 12, GnomeSet = 8, GnomeOutOfMemoryClientList = 1, KeysSet = 9, KeysBadLine = 1, KeysBadMerge = 2, KeysInvalidKeyMod = 3, MenuSet = 10, MenuConfiguration = 1, MenuDefaultRootMenu = 2, MenuExit = 3, MenuIcons = 4, MenuLayer = 5, MenuOnHead = 6, MenuPlacement = 7, MenuReconfigure = 8, MenuRestart = 9, MenuErrorEndEncoding = 10, RememberSet = 11, RememberDecorations = 1, RememberDimensions = 2, RememberJumpToWorkspace = 3, RememberLayer = 4, RememberMenuItemName = 5, RememberPosition = 6, RememberSaveOnClose = 7, RememberShaded = 8, RememberSticky = 9, RememberUnknown = 10, RememberWorkspace = 11, RememberHead = 12, RememberAlpha = 13, RememberMinimized = 14, RememberMaximized = 15, RememberFullscreen = 16, ScreenSet = 12, ScreenAnotherWMRunning = 1, ScreenGeometryFormat = 2, ScreenManagingScreen = 3, ScreenGeometrySpacing = 4, SlitSet = 13, SlitClientsMenu = 1, SlitCycleDown = 2, SlitCycleUp = 3, SlitDirection = 4, SlitLayer = 5, SlitOnHead = 6, SlitPlacement = 7, SlitSlit = 8, SlitSaveSlitList = 9, ToolbarSet = 14, ToolbarEditWkspcName = 1, ToolbarIconbarMode = 2, ToolbarIconbarModeAllWindows = 3, ToolbarIconbarModeIcons = 4, ToolbarIconbarModeNone = 5, ToolbarIconbarModeWorkspace = 6, ToolbarIconbarModeWorkspaceIcons = 7, ToolbarLayer = 8, ToolbarOnHead = 9, ToolbarPlacement = 10, ToolbarToolbar = 11, ToolbarWidthPercent = 12, ToolbarClock24 = 13, ToolbarClock12 = 14, ToolbarClockEditFormat = 15, ToolbarShowIcons = 16, ToolbarIconbarModeNoIcons = 17, ToolbarIconbarModeWorkspaceNoIcons = 18, WindowSet = 15, WindowUnnamed = 1, WindowmenuSet = 16, WindowmenuClose = 1, WindowmenuIconify = 2, WindowmenuLayer = 3, WindowmenuLower = 4, WindowmenuMaximize = 5, WindowmenuRaise = 6, WindowmenuSendTo = 7, WindowmenuShade = 8, WindowmenuStick = 9, WindowmenuKill = 10, WindowmenuDefaultAlpha = 11, WindowmenuSetTitle = 12, WorkspaceSet = 17, WorkspaceDefaultNameFormat = 1, WorkspaceMenuTitle = 2, WorkspaceNewWorkspace = 3, WorkspaceRemoveLast = 4, fbsetrootSet = 18, fbsetrootMustSpecify = 1, fbsetrootNoPixmapAtoms = 2, fbsetrootUsage = 3, mainSet = 19, mainDISPLAYRequiresArg = 1, mainErrorBadAlloc = 2, mainErrorBadCast = 3, mainErrorOutOfRange = 4, mainErrorRuntime = 5, mainErrorStandardException = 6, mainErrorUnknown = 7, mainLOGRequiresArg = 8, mainLogFile = 9, mainLoggingTo = 10, mainRCRequiresArg = 11, mainScreenRequiresArg = 12, mainUsage = 13, mainWarnDisplayEnv = 14, LayerSet = 20, LayerAboveDock = 1, LayerBottom = 2, LayerDesktop = 3, LayerDock = 4, LayerNormal = 5, LayerTop = 6, dummy_not_used = 0 // just for the end }; // end enum } // end namespace FBNLS #endif // FLUXBOX_NLS_HH fluxbox-1.3.5/nls/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603017113 xustar000000000000000030 mtime=1360749955.651811954 30 atime=1360750003.415811648 30 ctime=1360750008.963811613 fluxbox-1.3.5/nls/Makefile.in0000644000175000017500000004365512106662603015157 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # nls/Makefile.am for fluxbox - http://fluxbox.org VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = nls DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ NLSTEST = @NLS@ SUBDIRS = C cs_CZ da_DK es_AR es_ES et_EE fr_FR pt_BR ru_RU \ sv_SE tr_TR it_IT pt_PT bg_BG ja_JP ko_KR \ lv_LV de_DE nl_NL no_NO sl_SI pl_PL vi_VN be_BY \ uk_UA el_GR nb_NO zh_CN fi_FI en_US en_GB de_CH \ de_AT fr_CH sk_SK zh_TW mk_MK he_IL MAINTAINERCLEANFILES = Makefile.in fluxbox-nls.hh EXTRA_DIST = fluxbox-nls.hh nlsinfo BUILT_SOURCES = fluxbox-nls.hh all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign nls/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign nls/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-local .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \ ctags-recursive install install-am install-strip \ tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic ctags \ ctags-recursive distclean distclean-generic distclean-local \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ tags-recursive uninstall uninstall-am uninstall-local uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ rmdir $(DESTDIR)$(LOCALE_PATH); \ fi distclean-local: rm -f *\~ fluxbox-nls.hh: chmod +x $(srcdir)/nlsinfo $(srcdir)/nlsinfo -H -N FBNLS $(top_srcdir)/src $(top_srcdir)/util > fluxbox-nls.hh # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/nls/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425017104 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749853.503812608 30 ctime=1360750008.963811613 fluxbox-1.3.5/nls/Makefile.am0000644000175000017500000000132512106662425015134 0ustar00mgmg00000000000000# nls/Makefile.am for fluxbox - http://fluxbox.org LOCALE_PATH = @LOCALE_PATH@ NLSTEST = @NLS@ SUBDIRS = C cs_CZ da_DK es_AR es_ES et_EE fr_FR pt_BR ru_RU \ sv_SE tr_TR it_IT pt_PT bg_BG ja_JP ko_KR \ lv_LV de_DE nl_NL no_NO sl_SI pl_PL vi_VN be_BY \ uk_UA el_GR nb_NO zh_CN fi_FI en_US en_GB de_CH \ de_AT fr_CH sk_SK zh_TW mk_MK he_IL MAINTAINERCLEANFILES = Makefile.in fluxbox-nls.hh EXTRA_DIST=fluxbox-nls.hh nlsinfo BUILT_SOURCES=fluxbox-nls.hh uninstall-local: @if test x$(NLSTEST) = "x-DNLS"; then \ rmdir $(DESTDIR)$(LOCALE_PATH); \ fi distclean-local: rm -f *\~ fluxbox-nls.hh: chmod +x $(srcdir)/nlsinfo $(srcdir)/nlsinfo -H -N FBNLS $(top_srcdir)/src $(top_srcdir)/util > fluxbox-nls.hh fluxbox-1.3.5/PaxHeaders.25974/doc0000644000175000017500000000013212106662665014752 xustar000000000000000030 mtime=1360750005.479811635 30 atime=1360750008.963811613 30 ctime=1360750008.963811613 fluxbox-1.3.5/doc/0000755000175000017500000000000012106662665013056 5ustar00mgmg00000000000000fluxbox-1.3.5/doc/PaxHeaders.25974/fluxbox-style.5.in0000644000175000017500000000013212106662425020341 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749874.563812473 30 ctime=1360750008.967811613 fluxbox-1.3.5/doc/fluxbox-style.5.in0000644000175000017500000005660012106662425016377 0ustar00mgmg00000000000000'\" t .\" Title: fluxbox-style .\" Author: Henrik Kinnunen .\" Generator: DocBook XSL Stylesheets v1.76.1 .\" Date: 13 February 2013 .\" Manual: Fluxbox Manual .\" Source: fluxbox-style.txt .\" Language: English .\" .TH "FLUXBOX\-STYLE" "5" "13 February 2013" "fluxbox\-style\&.txt" "Fluxbox Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" fluxbox-style \- A comprehensive look at styles/themes for fluxbox(1)\&. .SH "SYNOPSIS" .sp This document describes various options available for fluxbox styles\&. .SH "DESCRIPTION" .sp What is a Style? .sp Styles, sometimes referred to as Themes, are a graphical overlay for the fluxbox(1) window manager\&. If you wanted to get to know fluxbox, the styles would be the \fIlook\fR of the \fIlook and feel\fR\&. .sp Styles are simple ASCII text files that tell fluxbox(1) how to generate the appearance of different components of the window manager\&. The default installation of fluxbox(1) is shipped with many classic examples that show a great deal of what one could do\&. To use one of the standard styles navigate to the \fISystem Styles\fR menu under your main fluxbox(1) menu\&. .sp fluxbox(1) uses its own graphics class to render its images on the fly\&. By using styles you can determine, at a great level of configurability, what your desktop will look like\&. Since fluxbox(1) was derived from blackbox many often wonder if old themes will work on the latest releases of fluxbox(1)\&. Well they basically do, but you will have to tune them since the fluxbox(1) code has changed quite a bit since the initial grab\&. .SH "STRUCTURE" .sp A style is made up of a few major components which then have their own sub\-directives\&. The major components are as follows: .sp The \fIwindow\&.*\fR directives control the appearance of the window frames, \fIwindow\&.tab\&.*\fR controls the appearance of the window tabs, \fImenu\&.*\fR controls the appearance of the popup menu that you see when you right click on the desktop\&. \fItoolbar\&.*\fR is the bar you will see at the top or bottom of your screen\&. Finally the \fIslit\&.*\fR has options you can use to customize the appearance of the slit\&. However if you don\(cqt set the slit directives specifically, the slit\(cqs appearance is controlled by the toolbar directives instead\&. .sp To understand how the style mechanism works, it is nice to know a little about how X11 resources work\&. X11 resources consist of a key and a value\&. The key is constructed of several smaller keys (sometimes referred to as children), delimited by a period (\&.)\&. Keys may also contain an asterisk (*) to serve as a wildcard, which means that one line of text will match several keys\&. This is useful for styles that are based on one or two colors\&. .sp A more complete reference to this can be found in X(7), section \fIRESOURCES\fR\&. .SH "LOCATION" .sp There are many places to store your styles, the most common is in your \fI~/\&.fluxbox/styles\fR directory\&. The initial installation will place the default styles in \fI@pkgdatadir@/styles\fR providing a basic usable configuration\&. .sp When creating your own style, create a directory (normally the name of your style) in \fI~/\&.fluxbox/styles/\fR (If the \fIstyles\fR directory doesn\(cqt exist, create that also)\&. While there isn\(cqt an official structure, it is common to create a directory named after your style and place your pixmaps directory (if required) in there along with a file called theme\&.cfg (may also be named style\&.cfg)\&. This file is where you will construct your style using the components covered later in this manual page\&. An example of steps taken when beginning a style project of your own may look like: .sp .if n \{\ .RS 4 .\} .nf $ cd $ mkdir \-p ~/\&.fluxbox/styles/YourStyle/pixmaps $ cd ~/\&.fluxbox/styles/YourStyle $ nano theme\&.cfg .fi .if n \{\ .RE .\} .sp Output of a packaged style should look like the following: .sp .if n \{\ .RS 4 .\} .nf $ cd $ tar \-tjvf YourStyle\&.tar\&.bz2 \&.fluxbox/styles/YourStyle/theme\&.cfg \&.fluxbox/styles/YourStyle/pixmaps \&.fluxbox/styles/YourStyle/pixmaps/stick\&.xpm \&.\&.\&. .fi .if n \{\ .RE .\} .sp Of course, all of these are just preferences, fluxbox(1) allows for the customization of many things, including how you handle your styles\&. Just remember, however, that if you plan to distribute your style you may find some community bickering if you don\(cqt follow practices\&. :) .SH "CREATING YOUR STYLE" .sp As discussed above, fluxbox(1) allows you to configure its four main components: the toolbar, menus, slit and window decorations\&. Remember that you can customize the slit with its own directives, otherwise the slit will take the appearance of the toolbar\&. .sp Here are some quick examples to illustrate basic syntax: .sp .if n \{\ .RS 4 .\} .nf toolbar\&.clock\&.color: green .fi .if n \{\ .RE .\} .sp This sets the color resource of the toolbar clock to \fIgreen\fR\&. Another example: .sp .if n \{\ .RS 4 .\} .nf menu*color: rgb:3/4/5 .fi .if n \{\ .RE .\} .sp This sets the color resource of the menu and all of its \fIchildren\fR to \(oqrgb:3/4/5\(cq\&. (For a description of color names, see X(1)\&.) So this one also applies to \fImenu\&.title\&.color\fR and \fImenu\&.frame\&.color\fR\&. And with .sp .if n \{\ .RS 4 .\} .nf *font: \-b&h\-lucida\-medium\-r\-normal\-*\-*\-140\-* .fi .if n \{\ .RE .\} .sp you set the font resource for all keys to this font name all at once (For information about the fonts installed on your system, you can use a program like xfontsel(1), gtkfontsel, or xlsfonts(1)\&.) .sp In the last example you will notice the wildcard (*) before font\&. In a Fluxbox style you can set a value with a wildcard\&. The example means that every font in the style will be what is specified\&. You can do this with any component/value\&. For example if you wanted all of the text to be one color you would do: .sp .if n \{\ .RS 4 .\} .nf *textColor: rgb:3/4/5 .fi .if n \{\ .RE .\} .sp This means that you can setup a very simple style with very few properties\&. See the EXAMPLES below for an example of this in practice\&. fluxbox(1) also allows you to override wildcards in your style\&. Lets take our example above and add an override for the toolbar\&.clock\&.textColor component: .sp .if n \{\ .RS 4 .\} .nf *textColor: rgb:3/4/5 toolbar\&.clock\&.textColor: rgb:255/0/0 .fi .if n \{\ .RE .\} .sp With that all of the text will be \fIrgb:3/4/5\fR except the toolbar clock text which will be \fIrgb:255/0/0\fR\&. .sp Now what makes fluxbox(1) so spectacular is its ability to render textures on the fly\&. A texture is a fillpattern that you see on some styles\&. Texture descriptions are specified directly to the key that they should apply to, e\&.g\&.: .sp .if n \{\ .RS 4 .\} .nf toolbar\&.clock: Raised Gradient Diagonal Bevel1 toolbar\&.clock\&.color: rgb:8/6/4 toolbar\&.clock\&.colorTo: rgb:4/3/2 .fi .if n \{\ .RE .\} .sp Don\(cqt worry, we will explain what these mean\&. A texture description consists of up to five fields, which are as follows: .PP \fBFlat | Raised | Sunken\fR. gives the component either a flat, raised or sunken appearance\&. .PP \fBGradient | Solid\fR. tells fluxbox(1) to draw either a solid color or a gradient texture\&. .PP \fBHorizontal | Vertical | Diagonal | Crossdiagonal | Pipecross | Elliptic | Rectangle | Pyramid\fR. Select one of these texture types\&. They only work when \fBGradient\fR is specified\&. .PP \fBInterlaced\fR. tells fluxbox(1) to interlace the texture (darken every other line)\&. This option is most commonly used with gradiented textures, but it also works in solid textures\&. .PP \fBBevel1 | Bevel2\fR. tells fluxbox(1) which type of bevel to use\&. Bevel1 is the default bevel\&. The shading is placed on the edge of the image\&. Bevel2 is an alternative\&. The shading is placed one pixel in from the edge of the image\&. .sp Instead of a texture description, also the option \fBParentRelative\fR is available, which makes the component appear as a part of its parent, e\&.g\&. totally transparent\&. .sp Or for even more possibilities Pixmap\&. If pixmap texture is specified (it might not be necessary on every occasion) the pixmap file is specified in a separate pixmap resource\&. .sp .if n \{\ .RS 4 .\} .nf toolbar\&.clock: pixmap toolbar\&.clock\&.pixmap: clock_background\&.xpm .fi .if n \{\ .RE .\} .sp This feature might need some investigation, reports say that sometimes the resources color and colorTo must be set and then they may not be set\&. .sp All gradiented textures are composed of two color values: the \fIcolor\fR and \fIcolorTo\fR resources\&. When \fBInterlaced\fR is used in \fBSolid\fR mode, the \fIcolorTo\fR resource is used to find the interlacing color\&. .SH "FONT EFFECTS" .sp In addition to specifying the font\-family and the font\-weight via the supported font\-rendering\-engine (eg, Xft), fluxbox(1) supports some effects: \fIhalo\fR and \fIshadow\fR\&. To set the shadow effect: .sp .if n \{\ .RS 4 .\} .nf menu\&.title\&.font: sans\-8:bold menu\&.title\&.effect: shadow menu\&.title\&.shadow\&.color: green menu\&.title\&.shadow\&.x: 3 menu\&.title\&.shadow\&.y: 3 .fi .if n \{\ .RE .\} .sp To set the halo effect: .sp .if n \{\ .RS 4 .\} .nf menu\&.title\&.font: sans\-8:bold menu\&.title\&.effect: halo menu\&.title\&.halo\&.color: green .fi .if n \{\ .RE .\} .SS "FONT PROBLEMS" .sp If you have problems installing fonts or getting them to work, you should read the docs page at xfree\&.org\&. Here is a link to one of these: \m[blue]\fBhttp://xfree\&.org/4\&.3\&.0/fonts2\&.html#3\fR\m[] .SH "FULL COMPONENT LIST" .sp Here is the exhaustive component list for fluxbox(1) styles\&. Each one is listed with their type of value required\&. Comments in a style file are preceded with an exclamation point (!) which we also use here so that these can be pasted into a new theme\&.cfg to be customized appropriately\&. Please note that in order to keep styles consistent it is often the practice of stylists to provide all of the theme\-items in their style file even if they are not used\&. This allows the user the ease of changing different components\&. .SH "WINDOW OPTIONS" .sp Many, many things you can do with window design in fluxbox(1), below are your options\&. Have fun\&. .sp .if n \{\ .RS 4 .\} .nf \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- window\&.bevelWidth: window\&.borderColor: window\&.borderWidth: window\&.button\&.focus: window\&.button\&.focus\&.color: window\&.button\&.focus\&.colorTo: window\&.button\&.focus\&.picColor: window\&.button\&.focus\&.pixmap: window\&.button\&.pressed: window\&.button\&.pressed\&.color: window\&.button\&.pressed\&.colorTo: window\&.button\&.pressed\&.pixmap: window\&.button\&.unfocus: window\&.button\&.unfocus\&.color: window\&.button\&.unfocus\&.colorTo: window\&.button\&.unfocus\&.picColor: window\&.button\&.unfocus\&.pixmap: window\&.close\&.pixmap: window\&.close\&.pressed\&.pixmap: window\&.close\&.unfocus\&.pixmap: window\&.font: window\&.frame\&.focusColor: window\&.frame\&.unfocusColor: window\&.grip\&.focus: window\&.grip\&.focus\&.color: window\&.grip\&.focus\&.colorTo: window\&.grip\&.focus\&.pixmap: window\&.grip\&.unfocus: window\&.grip\&.unfocus\&.color: window\&.grip\&.unfocus\&.colorTo: window\&.grip\&.unfocus\&.pixmap: window\&.handle\&.focus: window\&.handle\&.focus\&.color: window\&.handle\&.focus\&.colorTo: window\&.handle\&.focus\&.pixmap: window\&.handle\&.unfocus: window\&.handle\&.unfocus\&.color: window\&.handle\&.unfocus\&.colorTo: window\&.handle\&.unfocus\&.pixmap: window\&.handleWidth: window\&.iconify\&.pixmap: window\&.iconify\&.pressed\&.pixmap: window\&.iconify\&.unfocus\&.pixmap: window\&.justify: <{Left|Right|Center}> window\&.label\&.active: window\&.label\&.active\&.textColor: window\&.label\&.focus: window\&.label\&.focus\&.color: window\&.label\&.focus\&.colorTo: window\&.label\&.focus\&.pixmap: window\&.label\&.unfocus: window\&.label\&.unfocus\&.color: window\&.label\&.unfocus\&.colorTo: window\&.label\&.unfocus\&.pixmap: window\&.label\&.focus\&.textColor: window\&.label\&.unfocus\&.textColor: window\&.maximize\&.pixmap: window\&.maximize\&.pressed\&.pixmap: window\&.maximize\&.unfocus\&.pixmap: window\&.roundCorners: <{Top|Bottom}{Left|Right}> window\&.shade\&.pixmap: window\&.shade\&.pressed\&.pixmap: window\&.shade\&.unfocus\&.pixmap: window\&.stick\&.pixmap: window\&.stick\&.pressed\&.pixmap: window\&.stick\&.unfocus\&.pixmap: window\&.stuck\&.pixmap: window\&.stuck\&.unfocus\&.pixmap: window\&.lhalf\&.pixmap: window\&.lhalf\&.unfocus\&.pixmap: window\&.rhalf\&.pixmap: window\&.rhalf\&.unfocus\&.pixmap: window\&.title\&.focus: window\&.title\&.focus\&.color: window\&.title\&.focus\&.colorTo: window\&.title\&.focus\&.pixmap: window\&.title\&.height: window\&.title\&.unfocus: window\&.title\&.unfocus\&.color: window\&.title\&.unfocus\&.colorTo: window\&.title\&.unfocus\&.pixmap: \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- .fi .if n \{\ .RE .\} .SH "MENU OPTIONS" .sp Everything you need to make your menu look pretty\&. .sp .if n \{\ .RS 4 .\} .nf \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- menu\&.bevelWidth: menu\&.borderColor: menu\&.borderWidth: menu\&.bullet: <{empty|square|triangle|diamond}> menu\&.bullet\&.position: <{left|right}> menu\&.frame: menu\&.frame\&.color: menu\&.frame\&.colorTo: menu\&.frame\&.disableColor: menu\&.frame\&.font: menu\&.frame\&.justify: <{Left|Right|Center}> menu\&.frame\&.pixmap: menu\&.frame\&.textColor: menu\&.hilite: menu\&.hilite\&.color: menu\&.hilite\&.colorTo: menu\&.hilite\&.font: menu\&.hilite\&.justify: <{left|center|right}> menu\&.hilite\&.pixmap: menu\&.hilite\&.textColor: menu\&.itemHeight: menu\&.title: menu\&.title\&.color: menu\&.title\&.colorTo: menu\&.title\&.font: menu\&.title\&.pixmap: menu\&.title\&.textColor: menu\&.title\&.justify: <{Left|Right|Center}> menu\&.titleHeight: menu\&.roundCorners: <{Top|Bottom}{Left|Right}> menu\&.selected\&.pixmap: menu\&.submenu\&.pixmap: menu\&.unselected\&.pixmap: \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- .fi .if n \{\ .RE .\} .SH "BACKGROUND" .sp Every style must specify the background option\&. If you don\(cqt want your style to change the user\(cqs background, then use \(oqbackground: none\(cq\&. The options \(oqcentered\(cq, \(oqaspect\(cq, \(oqtiled\(cq, and \(oqfullscreen\(cq require the \(oqbackground\&.pixmap\(cq resource to contain a valid file name\&. The \(oqrandom\(cq option requires \(oqbackground\&.pixmap\(cq to contain a valid directory name\&. For these options, \fBfluxbox(1)\fR will call \fBfbsetbg(1)\fR to set the background\&. The options \(oqgradient\(cq, \(oqsolid\(cq, and \(oqmod\(cq all require \(oqbackground\&.color\(cq to be set\&. \(oqgradient\(cq and \(oqmod\(cq both require \(oqbackground\&.colorTo\(cq\&. \(oqmod\(cq requires \(oqbackground\&.modX\(cq and \(oqbackground\&.modY\(cq to be set as well\&. These options will be passed to \fBfbsetroot(1)\fR to set the background\&. The special option \(oqunset\(cq is for use in user overlay files only\&. It specifies that fbsetbg should never be run (by default, even when \(oqnone\(cq is set in the overlay, fluxbox will try to run \(lqfbsetbg \-z\(rq to restore the last wallpaper)\&. .sp .if n \{\ .RS 4 .\} .nf background: centered|aspect|tiled|fullscreen|random|solid|gradient |mod|none|unset background\&.pixmap: background\&.color: background\&.colorTo: background\&.modX: background\&.modY: .fi .if n \{\ .RE .\} .SH "SLIT" .sp Here are all of the options for the slit\&. .sp .if n \{\ .RS 4 .\} .nf \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- slit: slit\&.bevelWidth: slit\&.borderColor: slit\&.borderWidth: slit\&.color: slit\&.colorTo: slit\&.pixmap: \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- .fi .if n \{\ .RE .\} .SH "TOOLBAR OPTIONS" .sp Below you will find all of the configuration possibilities for the toolbar\&. The list is pretty extensive and offers you many options to make your toolbar look just the way you want it\&. .sp .if n \{\ .RS 4 .\} .nf \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- toolbar: toolbar\&.bevelWidth: toolbar\&.borderColor: toolbar\&.borderWidth: toolbar\&.button\&.scale: toolbar\&.color: toolbar\&.colorTo: toolbar\&.clock: toolbar\&.clock\&.borderColor: toolbar\&.clock\&.borderWidth: toolbar\&.clock\&.font: toolbar\&.clock\&.justify: <{Left|Right|Center}> toolbar\&.clock\&.pixmap: toolbar\&.clock\&.color: toolbar\&.clock\&.colorTo: toolbar\&.clock\&.textColor: toolbar\&.height: toolbar\&.iconbar\&.focused: toolbar\&.iconbar\&.focused\&.color: toolbar\&.iconbar\&.focused\&.colorTo: toolbar\&.iconbar\&.focused\&.pixmap: toolbar\&.iconbar\&.unfocused: toolbar\&.iconbar\&.unfocused\&.color: toolbar\&.iconbar\&.unfocused\&.colorTo: toolbar\&.iconbar\&.unfocused\&.pixmap: toolbar\&.iconbar\&.empty: toolbar\&.iconbar\&.empty\&.color: toolbar\&.iconbar\&.empty\&.colorTo: toolbar\&.iconbar\&.empty\&.pixmap: toolbar\&.iconbar\&.focused\&.borderColor: toolbar\&.iconbar\&.focused\&.borderWidth: toolbar\&.iconbar\&.unfocused\&.borderColor: toolbar\&.iconbar\&.unfocused\&.borderWidth: toolbar\&.iconbar\&.borderColor: toolbar\&.iconbar\&.borderWidth: toolbar\&.iconbar\&.focused\&.font: toolbar\&.iconbar\&.focused\&.justify: <{Left|Right|Center}> toolbar\&.iconbar\&.focused\&.textColor: toolbar\&.iconbar\&.unfocused\&.font: toolbar\&.iconbar\&.unfocused\&.justify: <{Left|Right|Center}> toolbar\&.iconbar\&.unfocused\&.textColor: toolbar\&.pixmap: toolbar\&.shaped: toolbar\&.workspace\&.font: toolbar\&.workspace\&.justify: <{Left|Right|Center}> toolbar\&.workspace\&.textColor: toolbar\&.workspace: toolbar\&.workspace\&.borderColor: toolbar\&.workspace\&.borderWidth: toolbar\&.workspace\&.color: toolbar\&.workspace\&.colorTo: toolbar\&.workspace\&.pixmap: \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- .fi .if n \{\ .RE .\} .SH "EXAMPLES" .sp This list may seem intimidating, but remember, when you create your own style you can easily set a majority of these keys with a single component\&. For an example of this: .sp .if n \{\ .RS 4 .\} .nf \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- *color: slategrey *colorTo: darkslategrey *unfocus\&.color: darkslategrey *unfocus\&.colorTo: black *textColor: white *unfocus\&.textColor: lightgrey *font: lucidasans\-10 \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- .fi .if n \{\ .RE .\} .sp This sets nice defaults for many components\&. .SH "COLOR FORMATS" .sp These are the color formats for styles: .sp .if n \{\ .RS 4 .\} .nf #000000 (Hexadecimal) rgb:<0\-255>/<0\-255>/<0\-255> .fi .if n \{\ .RE .\} .sp See /usr/share/X11/rgb\&.txt for an explanation\&. .SH "AUTHORS" .sp Blackbox was written and maintained by Brad Hughes and Jeff Raven \&. .sp fluxbox(1) is written and maintained by Henrik Kinnunen with contributions and patches merged from many individuals around the world\&. .sp The Official fluxbox(1) website: \m[blue]\fBhttp://www\&.fluxbox\&.org\fR\m[] You can find a lot of styles here: \m[blue]\fBhttp://tenr\&.de/\fR\m[] .sp This manpage was composed from various resources including the official documentation, fluxbox(1) man page and numerous other resources by Curt "Asenchi" Micol\&. If you notice any errors or problems with this page, please contact him here: and using the great contributions of \&. Numerous other languages could be available if someone jumps in\&. .SH "SEE ALSO" .sp fluxbox(1) fbsetbg(1) fbsetroot(1) .SH "AUTHOR" .PP \fBHenrik Kinnunen\fR <\&fluxgen@fluxbox\&.org\&> .RS 4 Author. .RE fluxbox-1.3.5/doc/PaxHeaders.25974/fluxbox-remote.1.in0000644000175000017500000000013212106662425020470 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749874.563812473 30 ctime=1360750008.967811613 fluxbox-1.3.5/doc/fluxbox-remote.1.in0000644000175000017500000000550012106662425016517 0ustar00mgmg00000000000000'\" t .\" Title: fluxbox-remote .\" Author: Mark Tiefenbruck .\" Generator: DocBook XSL Stylesheets v1.76.1 .\" Date: 13 February 2013 .\" Manual: Fluxbox Manual .\" Source: fluxbox-remote.txt .\" Language: English .\" .TH "FLUXBOX\-REMOTE" "1" "13 February 2013" "fluxbox\-remote\&.txt" "Fluxbox Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" fluxbox-remote \- command line access to key commands for fluxbox(1) .SH "SYNOPSIS" .sp \fBfluxbox\-remote\fR \fIcommand\fR .SH "DESCRIPTION" .sp \fIfluxbox\-remote(1)\fR is designed to allow scripts to execute most key commands from \fIfluxbox(1)\fR\&. \fIfluxbox\-remote(1)\fR will only work with \fIfluxbox(1)\fR: its communications with \fIfluxbox(1)\fR are not standardized in any way\&. It is recommended that a standards\-based tool such as \fIwmctrl(1)\fR be used whenever possible, in order for scripts to work with other window managers\&. .SH "CAVEATS" .sp \fIfluxbox\-remote(1)\fR uses the X11 protocol to communicate with \fIfluxbox(1)\fR\&. Therefore, it is possible for any user with access to the \fIX(7)\fR server to use \fIfluxbox\-remote(1)\fR\&. For this reason, several key commands have been disabled\&. Users should be aware of the security implications when enabling \fIfluxbox\-remote(1)\fR, especially when using a forwarded \fIX(7)\fR connection\&. .SH "RESOURCES" .PP session\&.screen0\&.allowRemoteActions: .RS 4 This resource in ~/\&.fluxbox/init must be set to \(oqtrue\(cq in order for \fIfluxbox\-remote(1)\fR to function\&. Please read the \fBCAVEATS\fR first\&. .RE .SH "ENVIRONMENT" .sp In order to communicate with \fIfluxbox(1)\fR, the DISPLAY environment variable must be set properly\&. Usually, the value should be \(oq:0\&.0\(cq\&. .SH "AUTHORS" .sp This man page written by Mark Tiefenbruck .SH "SEE ALSO" .sp fluxbox(1) fluxbox\-keys(5) wmctrl(1) .SH "AUTHOR" .PP \fBMark Tiefenbruck\fR <\&mark@fluxbox\&.org\&> .RS 4 Author. .RE fluxbox-1.3.5/doc/PaxHeaders.25974/fluxbox-menu.5.in0000644000175000017500000000013212106662425020145 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749874.559812473 30 ctime=1360750008.967811613 fluxbox-1.3.5/doc/fluxbox-menu.5.in0000644000175000017500000003702212106662425016200 0ustar00mgmg00000000000000'\" t .\" Title: fluxbox-menu .\" Author: Jim Ramsay .\" Generator: DocBook XSL Stylesheets v1.76.1 .\" Date: 13 February 2013 .\" Manual: Fluxbox Manual .\" Source: fluxbox-menu.txt .\" Language: English .\" .TH "FLUXBOX\-MENU" "5" "13 February 2013" "fluxbox\-menu\&.txt" "Fluxbox Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" fluxbox-menu \- fluxbox(1) menu syntax .SH "SYNOPSIS" .sp @pkgdatadir@/menu .sp ~/\&.fluxbox/menu .sp ~/\&.fluxbox/windowmenu .SH "SYNTAX" .sp Variable parameters are shown in emphasis: \fIargument\fR .sp All other characters shown are required verbatim\&. Whitespace is only required to delimit words, but it is fine to add more whitespace\&. .SH "DESCRIPTION" .sp There are two types of menus in fluxbox which can be configured\&. .sp The first is the root menu, which normally appears when you right\-click on the desktop\&. .sp The first is the \fBROOT MENU\fR (Or right\-click menu), is usually bound to a right\-click on the desktop, though this binding can be changed in the \(oqkeys\(cq file (\fBfluxbox\-keys(5)\fR)\&. This same syntax is used for the \fBCustomMenu\fR command, also mentioned in \fBfluxbox\-keys(5)\fR\&. .sp Fluxbox installs a default root menu file in \fB@pkgdatadir@/menu\fR\&. You can also use fluxbox \-i to confirm this location\&. Of course this system\-wide menu can be customized for all users at once, but it is also possible to create an individual menu file for each user\&. By convention, users create a menu file in \fB~/\&.fluxbox/menu\fR\&. Once you\(cqve created your own menu file, you\(cqll want to make sure that you properly declare this location in your \(oqinit\(cq file so that fluxbox knows where to look\&. See \fBRESOURCES\fR, below for details\&. .sp The second type is the \fBWINDOW MENU\fR, which defines the contents of the menu which appears when you right\-click on a window\(cqs titlebar or iconbar\&. This opens a menu file as defined by \fB~/\&.fluxbox/windowmenu\fR\&. If this file does not exist, fluxbox will copy in the default from \fB@pkgdatadir@/windowmenu\fR\&. .sp You do not need to \(lqreload\(rq fluxbox after editing the apps file, the changes should be taken into account the next time you open the menu\&. .SH "ROOT MENU" .sp The root menu must begin with a \fB[begin]\fR tag and end with an \fB[end]\fR tag, and every tag must be on its own line\&. .PP There are up to four fields in a menu line\&. They are of the form .RS 4 [\fItag\fR] (\fIlabel\fR) {\fIcommand\fR} <\*(Aqicon\*(Aq> .RE .sp The <\*(Aqicon\*(Aq> field is always optional when shown below\&. If specified, the \fIicon\fR will be scaled down and displayed in the menu alongside the text label of the item\&. It must be in \&.xpm or \&.png format\&. .sp Any line that starts with a \fI#\fR or \fI!\fR is considered a comment and ignored by fluxbox\&. Also, in the label/command/filename fields you can escape any character\&. Using \fI\e\e\fR inserts a literal back\-slash into the label/command/filename field\&. .sp You may enter labels, commands, and icons using characters from any \fBiconv(1)\fR language/locale by specifying the encoding used via the \fB[encoding]\fR tag, detailed below\&. .SS "Structural Tags" .PP \fB[begin]\fR (\fItitle\fR) .RS 4 This tells fluxbox to start parsing the menu file\&. This tag is required for fluxbox to read your menu file\&. If it cannot find it, the system default menu is used in its place\&. The \fItitle\fR appears at the top of the menu\&. And \fB[end]\fR tag is required to end the menu\&. .RE .PP \fB[submenu]\fR (\fIlabel\fR) {\fItitle\fR} <\*(Aqicon\*(Aq> .RS 4 This tells fluxbox to create and parse a new menu, which is inserted as a submenu into the parent menu\&. These menus are parsed recursively, so there is no limit to the number of levels or nested submenus you can have\&. The \fIlabel\fR is the text that will appear in the parent menu, and the \fItitle\fR is shown at the top of the submenu\&. If omitted, the \fItitle\fR will be the same as the \fIlabel\fR\&. An \fB[end]\fR tag is required to end the submenu\&. .RE .PP \fB[end]\fR .RS 4 This tells fluxbox that it is at the end of a menu\&. This can either be a \fB[submenu]\fR or the \fB[begin]\fR tag of the main root menu\&. There must be at least one of these tags in your menu to correspond to the required \fB[begin]\fR tag, and one for each \fB[submenu]\fR\&. .RE .PP \fB[encoding]\fR {\fIencoding\fR} .RS 4 This begins an \fB[encoding]\fR section and specifies the string encoding of all strings until the matching \fB[endencoding]\fR tag\&. For a list of available encodings on your system, run \fBiconv \-l\fR\&. .RE .PP \fB[endencoding]\fR .RS 4 This ends an \fB[encoding]\fR section\&. .RE .PP \fB[include]\fR (\fIpath\fR) .RS 4 Parses the file specified by filename inline with the current menu\&. The \fIpath\fR can be the full path to a file or it can begin with \fB~/\fR, which will be expanded into your home directory\&. If \fIpath\fR is a directory, then all files in that directory are included\&. .RE .PP \fB[separator]\fR .RS 4 This will create a nice separation line\&. Useful for splitting up sections in a \(lqpretty\(rq way\&. The optional \fIcomment\fR is not displayed, but can be useful for internal documentation or script parsing of menu files\&. .RE .PP \fB[nop]\fR (\fIlabel\fR) <\*(Aqicon\*(Aq> .RS 4 Insert a non\-operational item into the current menu\&. This is much like \fB[separator]\fR, but instead of a line, it inserts a \fIlabel\fR\&. This can be used to help format the menu into blocks or sections if so desired\&. The \fIlabel\fR is optional, and if omitted a blank item will be inserted\&. .RE .SS "Applications" .PP \fB[exec]\fR (\fIlabel\fR) {\fIcommand\&...\fR} <\*(Aqicon\*(Aq> .RS 4 Inserts a command item into the menu\&. When you select the menu item from the menu, fluxbox runs \fIcommand\&...\fR in your \fB$SHELL\fR (or /bin/sh if $SHELL is not set)\&. You can use this to launch applications, run shell scripts, etc\&. Since all arguments are passed verbatim to the shell, you can use environment variables, pipes, or anything else the shell can do\&. Note that processes only see environment variables that were set before fluxbox started (such as in ~/\&.fluxbox/startup)\&. .RE .SS "Fluxbox Functions" .PP \fB[config]\fR (\fIlabel\fR) <\*(Aqicon\*(Aq> .RS 4 Inserts a fluxbox native submenu item, containing numerous configuration options concerning window placement, focus style, window moving style, etc\&. See \fBConfiguration Menu\fR in \fBfluxbox(1)\fR for details\&. .RE .PP \fB[reconfig]\fR (\fIlabel\fR) <\*(Aqicon\*(Aq> .RS 4 When selected this item re\-reads the current style and menu files and applies any changes\&. This is useful for creating a new style or theme, as you don\(cqt have to constantly restart fluxbox every time you save your style\&. However, fluxbox automatically rereads the menu whenever it changes\&. .RE .PP \fB[restart]\fR (\fIlabel\fR) {\fIcommand\fR} <\*(Aqicon\*(Aq> .RS 4 This tells fluxbox to restart\&. If \fIcommand\fR is supplied, it shuts down and runs the command (which is commonly the name of another window manager)\&. If \fIcommand\fR is omitted, fluxbox restarts itself\&. .RE .PP \fB[exit]\fR (\fIlabel\fR) <\*(Aqicon\*(Aq> .RS 4 Inserts an item that shuts down and exits fluxbox\&. Any open windows are reparented to the root window before fluxbox exits\&. .RE .PP \fB[style]\fR (\fIlabel\fR) {\fIfilename\fR} <\*(Aqicon\*(Aq> .RS 4 This tells fluxbox to insert an item that, when selected, reads style file named filename and apply the new textures, colors and fonts to the current running session\&. .RE .PP \fB[stylesmenu]\fR (\fIdirectory\fR) <\*(Aqicon\*(Aq> .RS 4 Reads all filenames from the specified directory, assuming that they are all valid style files, and creates inline menu items in the current menu for every filename, that, when selected by the user will apply the selected style file to the current session\&. The labels that are created in the menu are the filenames of the style files\&. .RE .PP \fB[stylesdir]\fR (\fIlabel\fR) {\fIdirectory\fR} <\*(Aqicon\*(Aq> .RS 4 Creates a submenu entry with \fIlabel\fR (that is also the title of the new submenu), and inserts in that submenu all filenames in the specified \fIdirectory\fR, assuming that they are all valid style files (directories are ignored) in the same way as the \fB[stylesdir]\fR command does\&. Both \fB[stylesdir]\fR and \fB[stylesmenu]\fR commands make it possible to install style files without editing your init file\&. .RE .PP \fB[wallpapers]\fR (\fIdirectory\fR) {\fIcommand\fR} <\*(Aqicon\*(Aq> .RS 4 This inserts a menu item to set the wallpaper for each file in the given directory\&. The \fIcommand\fR is optional, and defaults to \fBfbsetbg\fR\&. .RE .PP \fB[workspaces]\fR (\fIlabel\fR) <\*(Aqicon\*(Aq> .RS 4 This tells fluxbox to insert a link to the workspaces menu directly into your menu\&. See \fBWorkspace Menu\fR in \fBfluxbox(1)\fR for details\&. .RE .PP \fB[\fR\fIcommand\fR\fB]\fR (\fIlabel\fR) <\*(Aqicon\*(Aq> .RS 4 In addition to the commands above, any legal keys file \fIcommand\fR may be used as a menu item\&. See \fBfluxbox\-keys(5)\fR for more information\&. .RE .SH "WINDOW MENU" .sp Like the \fBROOT MENU\fR, this menu file must start with \fB[begin]\fR and end with \fB[end]\fR\&. However, this file consists of only one \fB[\fR\fItag\fR\fB]\fR per line with no labels, commands, or icons\&. .sp The available tags in this menu are: .PP \fB[shade]\fR .RS 4 Provides a menu item to shade or unshade (or, roll\-up) the window\&. This is equivalent to the shade titlebar button\&. .RE .PP \fB[stick]\fR .RS 4 Provides a menu item to stick or unstick the window\&. Stuck windows are displayed on all workspaces\&. This is equivalent to the stick titlebar button\&. .RE .PP \fB[maximize]\fR .RS 4 Provides a menu item to maximize or unmaximize the window, equivalent to the maximize titlebar button\&. The button with which you click alters the behaviour of this item as follows: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Button 1 (Un)Maximize as normal\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Button 2 (Un)Maximize window vertically\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Button 3 (Un)Maximize window horizontally\&. .RE .RE .PP \fB[iconify]\fR .RS 4 Provides a menu item to iconify (or, minimize) the window, equivalent to the iconify titlebar button\&. .RE .PP \fB[close]\fR .RS 4 Closes the window gracefully, equivalent to the titlebar button\&. .RE .PP \fB[kill]\fR .RS 4 Kills the window\(cqs process, like \fBxkill(1)\fR\&. .RE .PP \fB[raise]\fR .RS 4 Raise the window to the top of the stack within its layer\&. .RE .PP \fB[lower]\fR .RS 4 Lower the window to the bottom of the stack within its layer\&. .RE .PP \fB[settitledialog]\fR .RS 4 Opens a dialog which can be used to set the window\(cqs title\&. Some applications may re\-set their own title from time\-to\-time, wiping out your setting\&. .RE .PP \fB[sendto]\fR .RS 4 Sends the window to a different workspace\&. When you select the workspace with a middle\-click, fluxbox will also change to the new workspace\&. A regular click only sends the window\&. .RE .PP \fB[layer]\fR .RS 4 Adds a \(lqLayer\&...\(rq submenu which lets you change the layer of this window\&. .RE .PP \fB[alpha]\fR .RS 4 Adds a \(lqTransparency\&...\(rq submenu which lets you change the focused and unfocused transparency of this window\&. .RE .PP \fB[extramenus]\fR .RS 4 Adds the \(lqRemember\&...\(rq menu item, which allows you to specify which settings should be stored in the \(oqapps\(cq file (See \fBfluxbox\-apps(5)\fR for more details)\&. .RE .PP \fB[separator]\fR .RS 4 Adds a horizontal line to the menu .RE .SH "FILES" .PP \fB~/\&.fluxbox/menu\fR .RS 4 This is the default location for the user\(cqs root menu\&. .RE .PP \fB@pkgdatadir@/menu\fR .RS 4 This is the system\-wide root menu file\&. It will be used if the user\(cqs root menu is missing or unparseable\&. .RE .PP \fB~/\&.fluxbox/windowmenu\fR .RS 4 This is the user\(cqs window menu definition file .RE .PP \fB@pkgdatadir@/menu\fR .RS 4 This is the default window menu\&. If the user does not have this file, it will be copied to \fB~/\&.fluxbox/windowmenu\fR on fluxbox startup\&. .RE .SH "RESOURCES" .PP \fBsession\&.menuFile:\fR \fIlocation\fR .RS 4 This may be set to override the location of the user\(cqs root menu\&. .RE .SH "ENVIRONMENT" .sp The \fIcomand\&...\fR field of the \fB[exec]\fR tag can take advantage of other environment variables if they are set before fluxbox is started\&. .SH "EXAMPLES" .PP \fBRoot Menu\fR. .sp .if n \{\ .RS 4 .\} .nf # fluxbox menu file [begin] (fluxbox) [exec] (rxvt) {rxvt \-ls} [exec] (netscape) {netscape \-install} [exec] (The GIMP) {gimp} [exec] (XV) {xv} [exec] (Vim) {rxvt \-geometry 132x60 \-name VIM \-e screen vim} [exec] (Mutt) {rxvt \-name mutt \-e mutt} [submenu] (mozilla) [exec] (browser) {mozilla \-browser} [exec] (news) {mozilla \-news} [exec] (mail) {mozilla \-mail} [exec] (edit) {mozilla \-edit} [exec] (compose) {mozilla \-compose} [end] [submenu] (Window Manager) [exec] (Edit Menus) {nedit ~/\&.fluxbox/menu} [submenu] (Style) {Which Style?} [stylesdir] (~/\&.fluxbox/styles) [stylesmenu] (fluxbox Styles) {@pkgdatadir@/styles} [end] [config] (Config Options) [reconfig] (Reconfigure) [restart] (Restart) [end] [exit] (Log Out) [end] .fi .if n \{\ .RE .\} .PP \fBDefault Window Menu\fR. .sp .if n \{\ .RS 4 .\} .nf [begin] [shade] [stick] [maximize] [iconify] [raise] [lower] [settitledialog] [sendto] [layer] [alpha] [extramenus] [separator] [close] [end] .fi .if n \{\ .RE .\} .sp .SH "AUTHORS" .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Jim Ramsay (>fluxbox\-1\&.0\&.0) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Curt Micol (>fluxbox\-0\&.9\&.11) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Tobias Klausmann (\(lafluxbox\-0\&.9\&.11) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Grubert (fluxbox) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Matthew Hawkins (blackbox) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Wilbert Berendsen (blackbox) .RE .SH "SEE ALSO" .sp fluxbox(1) fluxbox\-keys(5) fluxbox\-apps(5) xkill(1) iconv(1) .SH "AUTHOR" .PP \fBJim Ramsay\fR <\&i\&.am@jimramsay\&.com\&> .RS 4 Author. .RE fluxbox-1.3.5/doc/PaxHeaders.25974/fluxbox-keys.5.in0000644000175000017500000000013212106662425020154 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749874.559812473 30 ctime=1360750008.967811613 fluxbox-1.3.5/doc/fluxbox-keys.5.in0000644000175000017500000010240412106662425016204 0ustar00mgmg00000000000000'\" t .\" Title: fluxbox-keys .\" Author: Jim Ramsay .\" Generator: DocBook XSL Stylesheets v1.76.1 .\" Date: 13 February 2013 .\" Manual: Fluxbox Manual .\" Source: fluxbox-keys.txt .\" Language: English .\" .TH "FLUXBOX\-KEYS" "5" "13 February 2013" "fluxbox\-keys\&.txt" "Fluxbox Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" fluxbox-keys \- keyboard shortcuts configuration for fluxbox(1) .SH "SYNOPSIS" .sp ~/\&.fluxbox/keys .SH "SYNTAX" .sp Variable parameters are shown in emphasis: \fIargument\fR .sp Optional parameters are shown in square brackets: [\fIargument\fR] .sp All other characters shown are required verbatim\&. Whitespace is required where shown, but it is fine to add more whitespace\&. .SH "DESCRIPTION" .sp The keys file defines the keyboard shortcuts for \fIfluxbox(1)\fR\&. .sp You can customize fluxbox\(cqs key handling through the ~/\&.fluxbox/keys file\&. The file consists of lines of the basic format: .sp \fB[\fR\fB\fImodifiers\fR\fR\fB] \fR\fB\fIkey\fR\fR\fB :\*(Aqcommand\*(Aq [\fR\fB\fIarguments\fR\fR\fB \fR\fB\fI\&...\fR\fR\fB]\fR .sp The space between the \fIkey\fR and the \fB:\fR before the \fIcommand\fR is mandatory\&. .sp All modifiers and commands are case\-insensitive\&. Some command arguments (especially those that will be passed to the shell) are case\-sensitive\&. Some key names are case\-sensitive\&. .sp Lines beginning with a \fI#\fR or \fI!\fR are considered comments and are unread by fluxbox\&. .sp You will need to \(lqreload\(rq fluxbox after editing the keys file so it picks up your change\&. .SH "MODIFIERS" .sp You can get a list of possible modifiers by calling \(oqxmodmap \-pm\(cq\&. This also shows you to which keys the modifiers are mapped, but the following modifiers are most commonly used: .sp \fBShift Control Mod1 Mod4\fR .sp where \fBMod1\fR is the Alt key on the PC keyboard and \fBMod4\fR is usually a key branded with a familiar company logo\&. .PP There are also some special modifiers that refer to mouse button events .RS 4 .PP \fBOnDesktop\fR .RS 4 The mouse cursor is over the desktop (root window), and not any window\&. .RE .PP \fBOnToolbar\fR .RS 4 The mouse cursor is over the toolbar (which is normally at the bottom of the screen)\&. .RE .PP \fBOnWindow\fR .RS 4 The mouse cursor is over a window\&. .RE .PP \fBOnTitlebar\fR .RS 4 The mouse cursor is over a window\(cqs titlebar\&. .RE .PP \fBOnTab\fR .RS 4 The mouse cursor is over a tab\&. .RE .PP \fBDouble\fR .RS 4 Limits this action to double\-clicks only\&. .RE .RE .SS "Combining Modifiers" .sp To combine two or more modifiers, just list them (space\-delimited) in any order\&. .SH "KEYS" .sp You may specify a key by its key name (for example, \fBa\fR or \fBspace\fR) or by its numeric keycode (for example, \fB38\fR or \fB0xf3\fR)\&. .sp If you don\(cqt know the name of a key, you can run \fBxev(1)\fR in a terminal, push the key, and see the name in the output\&. If you have some "special" keys that do not produce a key name in the output of \fBxev(1)\fR, you can just use the keycode (NOT the keysym!) in your keys file\&. .sp Commands can also be bound to mouse events (\fIN\fR denotes the number of the button, eg\&. \fI1\fR is the primary button, \fI4\fR/\fI5\fR are the wheel buttons): .PP \fBMouseN\fR .RS 4 The mouse button \fIN\fR is pressed down and held\&. .RE .PP \fBClickN\fR .RS 4 The mouse button \fIN\fR is clicked (pressed and released with no movement in between) .RE .PP \fBMoveN\fR .RS 4 The mouse button \fIN\fR is currently held, the bound action is triggered as often as the mouse moves\&. .RE .sp There are some special "keys" that let you bind events to non\-keyboard events: .PP \fBChangeWorkspace\fR .RS 4 Fires when the workspace changes\&. This can be used to change backgrounds or do anything else you like when you switch to a new workspace\&. See the \fBEXAMPLES\fR below for one idea\&. .RE .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBWarning\fR .ps -1 .br .sp Use caution with this event! For example, do NOT bind this to any action that changes your current workspace\&. If you break your fluxbox with this feature, you get to keep the pieces\&. .sp .5v .RE .SH "CHAINING" .sp Key bindings can be chained in a fashion similar to Emacs key bindings using the syntax: .sp \fImodifiers\-1\fR \fIkey\-1\fR \fImodifiers\-2\fR \fIkey\-2\fR :\*(Aqcommand\*(Aq [\fIarguments \&...\fR]* .sp To abort a chained command part\-way through typing it, press the key\&. .PP \fBTo Bind CTRL+C CTRL+X (Which means, press CTRL+C then CTRL+X) to quit fluxbox\fR. .sp .if n \{\ .RS 4 .\} .nf Control c Control x :Quit .fi .if n \{\ .RE .\} .sp .SH "KEYMODES" .sp A specific set of key mappings can be activated and de\-activated on\-the\-fly using what are called keymodes\&. The syntax to define a mapping in a keymode is: .sp \fB\fIkeymode\fR\fR\fB: \fR\fB\fImodifiers\fR\fR\fB \fR\fB\fIkey\fR\fR\fB :\*(Aqcommand\*(Aq [\fR\fB\fIarguments\fR\fR\fB \fR\fB\fI\&...\fR\fR\fB]\fR .sp Where \fIkeymode\fR is any alpha\-numeric string name\&. .sp When this keymode is activated (see the \fBKeyMode\fR command below), all bindings prefaced by that keymode name become active (and all other keybindings will be deactivated) until the keymode changes again\&. .SH "COMMANDS" .PP Some commands have multiple names which are shown below as .RS 4 CMD1 | CMD2 .RE .PP Related commands have been grouped below as .RS 4 CMD1 / CMD2 .RE .PP The commands are broken up into sections as follows .RS 4 .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Mouse Commands .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Window Commands .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Workspace Commands .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Menu Commands .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Window Manager Commands .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Special Commands .RE .RE .SS "Mouse Commands" .sp These commands may only be bound to mouse buttons (plus modifiers), not keystrokes\&. In all cases, the action finishes when the mouse button is released\&. .PP \fBStartMoving\fR .RS 4 Start dragging to move the window\&. .RE .PP \fBStartResizing\fR [\fIcorner\fR] .RS 4 Start dragging to resize the window as if you had grabbed the window at the specified \fIcorner\fR\&. .PP By default \fIcorner\fR is \fBBottomRight\fR, but may be overridden with one of: .RS 4 \fBNearestCorner NearestEdge NearestCornerOrEdge Center TopLeft Top TopRight Left Right BottomLeft Bottom BottomRight\fR .RE .sp If \fBNearestCornerOrEdge\fR is specified the size of the corner can also be specified to be the larger of one or two following numbers: [\fIpixel\-size\fR [\fIpercent\-size\fR]] or \fIpercent\-size\fR%, where \fIpercent\-size\fR is the percentage of half the window width or height\&. If no size is given, it defaults to 50 pixels and 30%\&. .RE .PP \fBStartTabbing\fR .RS 4 Start dragging to add this window to another\(cqs tabgroup\&. .RE .PP \fBActivateTab\fR .RS 4 Activates the tab underneath the mouse\&. .RE .SS "Window Commands" .sp These commands ordinarily affect only the currently focused window\&. The \fBOnWindow\fR modifier and \fBForEach\fR command may affect the window that is used\&. .PP \fBMinimize\fR | \fBMinimizeWindow\fR | \fBIconify\fR .RS 4 Minimize the current window, equivalent to the window button\&. .RE .PP \fBMaximize\fR | \fBMaximizeWindow\fR .RS 4 Maximize the current window, equivalent to the window button\&. .RE .PP \fBMaximizeHorizontal\fR / \fBMaximizeVertical\fR .RS 4 Maximize the current window in one direction only, leaving the other dimension unchanged\&. .RE .PP \fBFullscreen\fR .RS 4 Resize the window\(cqs content to fit the whole screen, without any window decoration\&. .RE .PP \fBRaise\fR / \fBLower\fR .RS 4 Reorder this window to the top or bottom of the window stack, within its current layer\&. See \fIfluxbox(1)\fR for a discussion of layers\&. .RE .PP \fBRaiseLayer\fR / \fBLowerLayer\fR [\fIoffset\fR] .RS 4 Raise the window up to the layer above, or lower it to the layer below\&. See \fIfluxbox(1)\fR for a discussion of layers\&. .RE .PP \fBSetLayer\fR \fIlayer\fR .RS 4 Move the window to the specified layer\&. \fIlayer\fR should be one of \fBAboveDock\fR, \fBDock\fR, \fBTop\fR, \fBNormal\fR, \fBBottom\fR, \fBDesktop\fR\&. See \fIfluxbox(1)\fR for a discussion of layers\&. .RE .PP \fBClose\fR .RS 4 Close the current window, equivalent to the window button\&. .RE .PP \fBKill\fR | \fBKillWindow\fR .RS 4 Close a window that\(cqs not responding to \fBClose\fR, like using \fBxkill(1)\fR\&. .RE .PP \fBShade\fR | \fBShadeWindow\fR .RS 4 Toggle the \fBshaded\fR state of the current window, equivalent to the window button\&. A \fBshaded\fR window appears as only the title bar\&. .RE .PP \fBShadeOn\fR / \fBShadeOff\fR .RS 4 Set the \fBshaded\fR state of the window to On / Off\&. .RE .PP \fBStick\fR | \fBStickWindow\fR .RS 4 Toggle the \fBsticky\fR state of the current window, equivalent to the window button\&. A \fBsticky\fR window is visible on all workspaces\&. .RE .PP \fBSetDecor\fR \fIdecor\fR .RS 4 Sets which window decorations will be shown\&. \fIdecor\fR has the same format as the \(oq[Deco]\(cq parameter in the apps file\&. See \fIfluxbox\-apps(5)\fR for more info\&. .RE .PP \fBToggleDecor\fR .RS 4 Toggles the presence of the window decorations (title bar, window buttons, and resize bar)\&. .RE .PP \fBNextTab\fR / \fBPrevTab\fR .RS 4 Cycle to the next / previous tab in the current tab group\&. .RE .PP \fBTab\fR \fInumber\fR .RS 4 Cycle to the given tab in the current tab group, where \fB1\fR is the first tab\&. A negative \fInumber\fR counts from the end of the tab group (\fB\-1\fR is the last tab, \fB\-2\fR is the next\-to\-last, etc\&.)\&. .RE .PP \fBMoveTabRight\fR / \fBMoveTabLeft\fR .RS 4 Reorder the tabs in the current tab group, swapping the current tab with the one to the right / left\&. .RE .PP \fBDetachClient\fR .RS 4 Remove the current tab from the tab group, placing it in its own window\&. .RE .PP \fBResizeTo\fR \fIwidth[%]\fR \fIheight[%]\fR .RS 4 Resizes the window to the given width and height\&. If the value is given in percent, then the window size will be based on the current screen\(cqs size\&. .RE .PP \fBResize\fR \fIdelta\-width[%]\fR \fIdelta\-height[%]\fR .RS 4 Resizes the window relative to the current width and height\&. If the value is given in percent, then the window size will be based on the current window\(cqs size\&. .RE .PP \fBResizeHorizontal\fR \fIdelta\-width[%]\fR / \fBResizeVertical\fR \fIdelta\-height[%]\fR .RS 4 Resizes the window in one dimension only\&. If the value is given in percent, then the window size will be based on the current window\(cqs size\&. .RE .PP \fBMoveTo\fR \fIx[%]\fR \fIy[%]\fR [\fIanchor\fR] .RS 4 Moves the window to the given coordinates, given in pixels or relatively to the current screen size if % is specified after the value\&. .sp If either \fIx\fR or \fIy\fR is set to \fB\e\fR*, that coordinate will be ignored, and the movement will only take place in one dimension\&. .PP The default \fIanchor\fR is the upper left corner, but this may be overridden with one of: .RS 4 \fBTopLeft Left BottomLeft Top Center Bottom TopRight Right BottomRight\fR .RE .RE .PP \fBMove\fR \fIdelta\-x\fR \fIdelta\-y\fR .RS 4 Moves the window relative to its current position\&. Positive numbers refer to right and down, and negative to left and up, respectively\&. .RE .PP \fBMoveRight\fR \fId\fR / \fBMoveLeft\fR \fId\fR / \fBMoveUp\fR \fId\fR / \fBMoveDown\fR \fId\fR .RS 4 Moves the window relative to its current position by the number of pixels specified in \fId\fR\&. If the number is negative, it moves in the opposite direction\&. .RE .PP \fBTakeToWorkspace\fR \fIworkspace\fR / \fBSendToWorkspace\fR \fIworkspace\fR .RS 4 Sends you along with the current window to the selected workspace\&. SendToWorkspace just sends the window\&. The first workspace is number \fB1\fR, not 0\&. .RE .PP \fBTakeToNextWorkspace\fR [\fIoffset\fR] / \fBTakeToPrevWorkspace\fR [\fIoffset\fR] .RS 4 Sends you along with the current window to the next or previous workspace\&. If you set \fIoffset\fR to a value greater than the default of \fB1\fR, it will move you that number of workspaces ahead or behind\&. If you go beyond the end of the currently defined workspaces, it will wrap around to the other end automatically\&. .RE .PP \fBSendToNextWorkspace\fR [\fIoffset\fR] / \fBSendToPrevWorkspace\fR [\fIoffset\fR] .RS 4 Identical to the "TakeTo\&..." commands, but again this sends only the window, and does not move you away from your current workspace\&. .RE .PP \fBSetAlpha\fR [\fIalpha\fR [\fIunfocused\-alpha\fR]] .RS 4 Sets the alpha value of a window\&. .sp Putting a \fB+\fR or \fB\-\fR in front of the value adds or subtracts from the current value\&. A plain integer sets the value explicitly\&. .PP no arguments .RS 4 Resets both focused and unfocused settings to default opacity\&. .RE .PP one argument .RS 4 Changes both focused and unfocused alpha settings\&. .RE .PP two arguments .RS 4 First value becomes the focused alpha, second becomes the unfocused alpha value\&. .RE .RE .PP \fBSetHead\fR \fInumber\fR .RS 4 Moves the window to the given display head\&. Only available when fluxbox has been compiled with Xinerama support\&. .RE .PP \fBSendToNextHead\fR [\fIoffset\fR] / \fBSendToPrevHead\fR [\fIoffset\fR] .RS 4 Sends the current window to the next/previous display head\&. If you specify an \fIoffset\fR greater than \fB1\fR, it will move the window that many heads\&. If this takes the window beyond the total number of heads, it will wrap around to the beginning\&. .RE .PP \fBSetXProp\fR \fIPROP=value\fR .RS 4 Sets the xproperty \fIPROP\fR of the current window to \fIvalue\fR\&. Delete the content of \fIPROP\fR by using \fIPROP=\fR\&. .RE .SS "Workspace Commands" .sp These commands affect the entire workspace (or "desktop" as it is sometimes called)\&. .PP \fBAddWorkspace\fR / \fBRemoveLastWorkspace\fR .RS 4 Adds or removes a workspace from the end of the list of workspaces\&. .RE .PP \fBNextWorkspace\fR [\fIn\fR] / \fBPrevWorkspace\fR [\fIn\fR] / \fBRightWorkspace\fR [\fIn\fR] / \fBLeftWorkspace\fR [\fIn\fR] .RS 4 Switch to the Next / Previous workspace\&. All versions accept an offset value \fIn\fR, which defaults to \fB1\fR and refers to the number of workspaces to move at one time\&. {Next,Prev}Workspace wrap around when going past the last workspace, whereas {Right,Left}Workspace do not\&. .RE .PP \fBWorkspace\fR \fInumber\fR .RS 4 Jumps to the given workspace \fInumber\fR\&. The first workspace is \fB1\fR\&. .RE .PP \fBNextWindow\fR [{\fIoptions\fR}] [\fIpattern\fR] / \fBPrevWindow\fR [{\fIoptions\fR}] [\fIpattern\fR] .RS 4 Focuses the next / previous window in the focus list\&. .PP \fIoptions\fR is one or more of the following, space delimited: .RS 4 .PP \fBstatic\fR .RS 4 Instead of moving in order of most\-recent focus, move in order of when the window was opened (or, the order shown in the iconbar)\&. .RE .PP \fBgroups\fR .RS 4 Only include the current tab in windows with multiple tabs\&. .RE .sp If \fIpattern\fR arguments are supplied, only windows that match all the patterns are considered \- all others are skipped\&. See the section \fBCLIENT PATTERNS\fR below for more information\&. .sp This pair of commands has a special side\-effect when the keybinding used has a modifier \- It will temporarily raise the cycled window to the front so you can see it, but if you continue holding down the modifier and press the key again (For example, keep holding "Alt" while you tap the "Tab" key a few times), fluxbox will lower the window again when you move on to the next one\&. This allows you to preview the windows in order, but does not change the order in doing so\&. .RE .RE .PP \fBNextGroup\fR [{\fIoptions\fR}] [\fIpattern\fR] / \fBPrevGroup\fR [{\fIoptions\fR}] [\fIpattern\fR] .RS 4 Equivalent to NextWindow / PrevWindow above, but with the \fBgroups\fR option forced on\&. .RE .PP \fBGotoWindow\fR \fInumber\fR [{\fIoptions\fR}] [\fIpattern\fR] .RS 4 Focuses and activates the window at position \fInumber\fR in the focus list\&. The \fIoptions\fR and \fIpattern\fR arguments have the same meaning as \fBNextWindow\fR above\&. .RE .PP \fBActivate\fR [\fIpattern\fR] | \fBFocus\fR [\fIpattern\fR] .RS 4 With \fIpattern\fR, this is an alias for \fBGoToWindow\fR 1 \fIpattern\fR\&. Without, this behaves like a window command, so that OnWindow events can change the focused window\&. .RE .PP \fBAttach\fR \fIpattern\fR .RS 4 Combines all windows that match the \fIpattern\fR into a single tab group\&. See \fBCLIENT PATTERNS\fR for more about the \fIpattern\fR arguments\&. .RE .PP \fBFocusLeft\fR / \fBFocusRight\fR / \fBFocusUp\fR / \fBFocusDown\fR .RS 4 Focus to the next window which is located in the direction specified\&. .RE .PP \fBArrangeWindows\fR \fIpattern\fR / \fBArrangeWindowsVertical\fR \fIpattern\fR / \fBArrangeWindowsHorizontal\fR \fIpattern\fR .RS 4 Tries to arrange all windows on the current workspace so that they overlap the least amount possible\&. \fBArrangeWindowsVertical\fR prefers vertical splits (windows side by side), whereas \fBArrangeWindowsHorizontal\fR prefers horizontal splits (windows on top of eachother)\&. See \fBCLIENT PATTERNS\fR for more about the \fIpattern\fR arguments\&. .RE .PP \fBShowDesktop\fR .RS 4 Minimizes all windows on the current workspace\&. If they are already all minimized, then it restores them\&. .RE .PP \fBDeiconify\fR \fImode\fR \fIdestination\fR .RS 4 Deiconifies windows (or, restores from a minimized state)\&. .PP Where \fImode\fR may be one of: .RS 4 .PP \fBAll\fR .RS 4 All icons across all workspaces\&. .RE .PP \fBAllWorkspace\fR .RS 4 All icons on the current workspace\&. .RE .PP \fBLast\fR .RS 4 The last icon across all workspaces\&. .RE .PP \fBLastWorkspace\fR (default) .RS 4 The last icon on the current workspace\&. .RE .RE .PP And \fIdestination\fR may be one of: .RS 4 .PP \fBCurrent\fR (default) .RS 4 Deiconify to the current workspace\&. .RE .PP \fBOriginQuiet\fR .RS 4 Deiconify to the window\(cqs original workspace, but does so in the background, without moving you there\&. .RE .RE .RE .PP \fBSetWorkspaceName\fR \fIname\fR / \fBSetWorkspaceNameDialog\fR .RS 4 Sets the name of the current workspace\&. .RE .PP \fBCloseAllWindows\fR .RS 4 Closes all windows on all desktops\&. .RE .SS "Menu Commands" .sp These commands open or close fluxbox popup menus\&. For more information on what these menus contain or how to configure them, see \fIfluxbox(1)\fR\&. .PP \fBRootMenu\fR .RS 4 Opens the root menu\&. See \fBROOT MENU\fR in \fBfluxbox\-menu(5)\fR for details\&. .RE .PP \fBWorkspaceMenu\fR .RS 4 Opens a menu showing all workspaces and windows\&. See \fBWorkspace Menu\fR in \fBfluxbox(1)\fR for details\&. .RE .PP \fBWindowMenu\fR .RS 4 Opens a menu containing actions for the current window\&. See \fBWINDOW MENU\fR in \fBfluxbox\-menu(5)\fR for details\&. .PP \fBClientMenu\fR [\fIpattern\fR] .RS 4 Opens a menu that contains all windows\&. If you specify a \fIpattern\fR, only matching windows will be in the menu\&. Selecting a window will jump to that workspace and raise the window\&. See \fBCLIENT PATTERNS\fR below for more details on the \fIpattern\fR argument\&. .RE .PP \fBCustomMenu\fR \fIpath\fR .RS 4 Opens a custom menu file\&. This \fIpath\fR must be a valid menu file in the same format as detailed by the \fBROOT MENU\fR section of \fBfluxbox\-menu(5)\fR\&. .RE .PP \fBHideMenus\fR .RS 4 Hide all fluxbox popup menus\&. .RE .RE .SS "Window Manager Commands" .sp These commands affect the Window Manager, or more than one window\&. .PP \fBRestart\fR [\fIpath\fR] .RS 4 Restarts fluxbox\&. This does not close any running applications\&. If the optional \fIpath\fR is a path to an executable window manager, that manager is started in place of fluxbox\&. .RE .PP \fBQuit\fR | \fBExit\fR .RS 4 Exits fluxbox\&. This will normally cause X to stop as well and terminate all existing applications, returning you to the login manager or console\&. .RE .PP \fBReconfig\fR | \fBReconfigure\fR .RS 4 Reloads all fluxbox configuration files including the keys file, apps file, and init file, if they have changed\&. .RE .PP \fBSetStyle\fR \fIpath\fR .RS 4 Sets the current style to that given in \fIpath\fR, which must be the full path to a fluxbox style\&. .RE .PP \fBReloadStyle\fR .RS 4 Reloads only the current style\&. Useful after editing a style which is currently in use\&. .RE .PP \fBExecCommand\fR \fIargs \&...\fR | \fBExec\fR \fIargs \&...\fR | \fBExecute\fR \fIargs \&...\fR .RS 4 Probably the most\-used binding of all\&. Passes all the arguments to your \fB$SHELL\fR (or /bin/sh if $SHELL is not set)\&. You can use this to launch applications, run shell scripts, etc\&. Since all arguments are passed verbatim to the shell, you can use environment variables, pipes, or anything else the shell can do\&. Note that processes only see environment variables that were set before fluxbox started (such as in \fB~/\&.fluxbox/startup\fR), or any that are set via the \fBExport\fR or \fBSetEnv\fR commands, below\&. See \fBfluxbox(1)\fR for more details on the \fBENVIRONMENT\fR and \fB\e~/\&.fluxbox/startup\fR file\&. .RE .PP \fBCommandDialog\fR .RS 4 Pops up a dialog box that lets you type in any of these commands manually\&. .RE .PP \fBSetEnv\fR \fIname\fR \fIvalue\fR | \fBExport\fR \fIname\fR=\fIvalue\fR .RS 4 Sets an environment variable in Fluxbox\&. It will be passed to any applications spawned by any future ExecCommand commands\&. .RE .PP \fBSetResourceValue\fR \fIresourcename\fR \fIresourcevalue\fR | \fBSetResourceValueDialog\fR .RS 4 Sets a fluxbox resource value, which are normally stored in the init file\&. See \fIfluxbox(1)\fR for more details on available resources and allowed values\&. .RE .SS "Special Commands" .sp These commands have special meanings or behaviors\&. .PP \fBMacroCmd\fR {\fIcommand1\fR} {\fIcommand2\fR} {\fIcommand3\fR} \fI\&...\fR .RS 4 Allows you to execute more than one command with one keybinding\&. The commands will be executed in series\&. The \fB{\fR \fB}\fR brackets are literally required, as in the following example: .sp .if n \{\ .RS 4 .\} .nf MacroCmd {MoveTo 0 0} {ResizeTo 1280 800} .fi .if n \{\ .RE .\} .RE .PP \fBDelay\fR {\fIcommand\fR} [\fImicroseconds\fR] .RS 4 Delays running \fIcommand\fR for the given amount of time\&. If the same key binding is activated again, the timer will be restarted\&. .RE .PP \fBToggleCmd\fR {\fIcommand1\fR} {\fIcommand2\fR} \fI\&...\fR .RS 4 Alternates between the commands\&. On the first press of the bound key, runs \fIcommand1\fR\&. On the next press, runs \fIcommand2\fR\&. .RE .PP \fBBindKey\fR \fIkeybinding\fR .RS 4 Adds the given \fIkeybinding\fR (which must be a valid key binding as defined in the DESCRIPTION section above) to your keys file\&. .RE .PP \fBKeyMode\fR \fIkeymode\fR [\fIreturn\-keybinding\fR] .RS 4 Activates the named \fIkeymode\fR (or, all key binding lines prefaced with the same \fIkeymode\fR:) and deactivates all others until the \fIreturn\-keybinding\fR (by default \fBEscape\fR) is pressed\&. The default keymode is named \fIdefault\fR\&. .RE .PP \fBForEach\fR {\fIcommand\fR} [{\fIcondition\fR}] | \fBMap\fR {\fIcommand\fR} [{\fIcondition\fR}] .RS 4 Runs the given \fIcommand\fR (normally one from the \fBWindow Commands\fR section above) on each window\&. If you specify a \fIcondition\fR (See \fBConditions\fR, below) the action will be limited to matching windows\&. .RE .PP \fBIf\fR {\fIcondition\fR} {\fIthen\-command\fR} [{\fIelse\-command\fR}] | \fBCond\fR {\fIcondition\fR} {\fIthen\-command\fR} [{\fIelse\-command\fR}] .RS 4 If the \fIcondition\fR command returns \fBtrue\fR, then run the \fIthen\-command\fR, otherwise run the optional \fIelse\-command\fR\&. See \fBConditions\fR below for more information on the \fIcondition\fR argument\&. .RE .SS "Conditions" .sp These special commands are used to match windows conditionally\&. They are commonly used by the \fBIf\fR and \fBForEach\fR command\&. .PP \fBMatches\fR \fIpattern\fR .RS 4 Returns \fBtrue\fR if the current window matches the given \fIpattern\fR\&. See \fBCLIENT PATTERNS\fR below for details on the \fIpattern\fR syntax\&. .sp If your key binding uses the \fBOnWindow\fR modifier, it matches against the window you clicked, not the currently focused window\&. .sp To check other windows besides the currently focused one, see the \fBEvery\fR and \fBSome\fR conditions below\&. .RE .PP \fBSome\fR \fIcondition\fR .RS 4 Returns \fBtrue\fR if any window on any workspace (not just the currently focused one) matches the \fIcondition\fR\&. .RE .PP \fBEvery\fR \fIcondition\fR .RS 4 Returns \fBtrue\fR if every window on every workspace (not just the current one) matches the \fIcondition\fR\&. .RE .PP \fBNot\fR \fIcondition\fR .RS 4 Returns \fBtrue\fR if \fIcondition\fR returns \fBfalse\fR, and vice\-versa\&. .RE .PP \fBAnd\fR {\fIcondition1\fR} {\fIcondition2\fR} [{\fIcondition3\fR} \&...] .RS 4 Returns \fBtrue\fR if and only if all given conditions return \fBtrue\fR\&. .RE .PP \fBOr\fR {\fIcondition1\fR} {\fIcondition2\fR} [{\fIcondition3\fR} \&...] .RS 4 Returns \fBtrue\fR if any of the listed conditions return \fBtrue\fR\&. .RE .PP \fBXor\fR {\fIcondition1\fR} {\fIcondition2\fR} [{\fIcondition3\fR} \&...] .RS 4 Returns the boolean \fBxor\fR of the truth values for all conditions listed\&. .RE .SH "CLIENT PATTERNS" .sp Many of the more advanced commands take a \fIpattern\fR argument, which allows you to direct the action at a specific window or set of windows which match the properties specified in the \fIpattern\fR\&. .PP A \fIpattern\fR looks like this .RS 4 \fB(\fR[\fIpropertyname\fR[!]=]\fIregexp\fR\fB)\fR \&... .RE .sp Match definitions are enclosed in parentheses \fB(\fR\&...\fB)\fR, and if no \fIpropertyname\fR is given then \fBName\fR is assumed\&. The \fIregexp\fR can contain any regular expression, or the special value \fB[current]\fR, which matches the corresponding value of the currently focused window\&. See \fIregex(7)\fR for more information on acceptable regular expressions\&. .sp \fIpropertyname\fR is not case sensitive, whereas the \fIregexp\fR is\&. .sp If you specify multiple \fB(\fR\fB\fIpattern\fR\fR) arguments, this implies an AND condition \- All specified patterns must match\&. .sp You can use \fB=\fR to test for equality or \fB!=\fR to test for inequality\&. .PP The following values are accepted for \fIpropertyname\fR .RS 4 .PP \fBName\fR .RS 4 A string, corresponding to the CLASSNAME property (The first field of WM_CLASS from the output of the \fBxprop(1)\fR utility)\&. .RE .PP \fBClass\fR .RS 4 A string, corresponding to the CLASSCLASS property (The second field of WM_CLASS from the output of the \fBxprop(1)\fR utility)\&. .RE .PP \fBTitle\fR .RS 4 A string, corresponding to the window title (WM_NAME from \fBxprop(1)\fR)\&. .RE .PP \fBRole\fR .RS 4 A string, corresponding to the ROLE property (WM_WINDOW_ROLE from \fBxprop(1)\fR)\&. .RE .PP \fBTransient\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window is transient (typically, a popup dialog) or not\&. .RE .PP \fBMaximized\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window is maximized or not\&. .RE .PP \fBMaximizedHorizontal\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window is maximized horizontally or not\&. .RE .PP \fBMaximizedVertical\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window is maximized vertically or not\&. .RE .PP \fBMinimized\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window is minimized (iconified) or not\&. .RE .PP \fBFullscreen\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window is fullscreen or not\&. .RE .PP \fBShaded\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window is shaded or not\&. .RE .PP \fBStuck\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window is sticky (on all workspaces) or not\&. .RE .PP \fBFocusHidden\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window has asked to be left off the focus list (or, the alt\-tab list), or not\&. .RE .PP \fBIconHidden\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window has asked to be left off the icon list (or, the taskbar), or not\&. .RE .PP \fBUrgent\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window has the urgent hint set\&. .RE .PP \fBWorkspace\fR .RS 4 A number corresponding to the workspace number to which the window is attached\&. The first workspace here is \fB0\fR\&. You may also use \fB[current]\fR to match the currently visible workspace\&. .RE .PP \fBWorkspaceName\fR .RS 4 A string corresponding to the name of the workspace to which the window is attached\&. .RE .PP \fBHead\fR .RS 4 The number of the display head to which the window is attached\&. You may match this against the special value \fB[mouse]\fR which refers to the head where the mouse pointer currently resides\&. .RE .PP \fBLayer\fR .RS 4 The string name of the window\(cqs layer, which is one of \fBAboveDock\fR, \fBDock\fR, \fBTop\fR, \fBNormal\fR, \fBBottom\fR, \fBDesktop\fR .RE .PP \fBScreen\fR .RS 4 The number of the currently used \fIscreen\fR\&. If the setup of the running xserver involves independent screens (\fInot Xinerama\fR), the $DISPLAY environment contains something like \fI:0\&.1\fR or \fI:1\&.0\fR\&. The part after the dot (\fI\&.\fR) is the number of the screen\&. .RE .PP \fB@XPROP\fR .RS 4 A string, corresponding to any xproperty (Use either the \fBxprop(1)\fR utility or the \fISetXProp\fR command to set a xproperty to a window) .RE .RE .PP \fBMatches any windows with the CLASSNAME of "xterm"\fR. .sp .if n \{\ .RS 4 .\} .nf (xterm) .fi .if n \{\ .RE .\} .PP \fBMatches any windows with the same CLASSNAME as the currently focused window\fR. .sp .if n \{\ .RS 4 .\} .nf (Name=[current]) .fi .if n \{\ .RE .\} .PP \fBMatches any windows on the same head as the mouse but on a different layer than the currently focused window\fR. .sp .if n \{\ .RS 4 .\} .nf (Head=[mouse]) (Layer!=[current]) .fi .if n \{\ .RE .\} .PP \fBMatches any windows having a xproperty named FOO with "bar" in it\fR. .sp .if n \{\ .RS 4 .\} .nf (@FOO=\&.*bar\&.*) .fi .if n \{\ .RE .\} .sp .SH "FILES" .PP \fB~/\&.fluxbox/keys\fR .RS 4 This is the default location for the keybinding definitions\&. .RE .PP \fB/usr/X11R6/include/X11/keysymdef\&.h\fR .RS 4 X key names are in this file\&. .RE .PP \fB/usr/X11R6/lib/X11/XKeysymDB\fR .RS 4 X key names are also in this file\&. .RE .SH "RESOURCES" .PP \fBsession\&.keyFile:\fR \fIlocation\fR .RS 4 This may be set to override the location of the keybinding definitions\&. .RE .SH "ENVIRONMENT" .sp Remember that \fBExecCommand\fR command can take advantage of other environment variables if they are set before fluxbox is started, or via the \fBExport\fR or \fBSetEnv\fR commands\&. For example, if \fB$TERM\fR is set, it could be use like this: .sp .if n \{\ .RS 4 .\} .nf Mod1 x :ExecCommand $TERM .fi .if n \{\ .RE .\} .sp For more information about environment variables, see your shell\(cqs manual\&. .SH "EXAMPLES" .sp Here are some interesting and/or useful examples you can do with your keys file\&. .sp .if n \{\ .RS 4 .\} .nf # Mod4+drag moves a window OnWindow Mod4 Mouse1 :StartMoving # If any xterm windows are open, cycle through them\&. If none are open, open # one: Mod4 t :If {Some Matches (xterm)} {NextWindow (xterm)} {Exec xterm} # Set a different wallpaper on every workspace: ChangeWorkspace :Exec fbsetbg ~/\&.fluxbox/bg$(xprop \-root _NET_CURRENT_DESKTOP | awk \*(Aq{print $3}\*(Aq)\&.png # Focusses the next window with it\*(Aqs xproperty \*(AqPROP\*(Aq set to \*(Aqfoo\*(Aq Mod4 p Mod4 Tab :NextWindow (@PROP=foo) .fi .if n \{\ .RE .\} .SH "AUTHORS" .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Jim Ramsay (>fluxbox\-1\&.0\&.0) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Curt Micol (>fluxbox\-0\&.9\&.11) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Tobias Klausmann (\(lafluxbox\-0\&.9\&.11) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Grubert (fluxbox) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Matthew Hawkins (blackbox) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Wilbert Berendsen (blackbox) .RE .SH "SEE ALSO" .sp fluxbox(1) xprop(1) xev(1) xkill(1) regex(7) .SH "AUTHOR" .PP \fBJim Ramsay\fR <\&i\&.am@jimramsay\&.com\&> .RS 4 Author. .RE fluxbox-1.3.5/doc/PaxHeaders.25974/fluxbox-apps.5.in0000644000175000017500000000013212106662425020144 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749874.555812473 30 ctime=1360750008.967811613 fluxbox-1.3.5/doc/fluxbox-apps.5.in0000644000175000017500000003647712106662425016214 0ustar00mgmg00000000000000'\" t .\" Title: fluxbox-apps .\" Author: Jim Ramsay .\" Generator: DocBook XSL Stylesheets v1.76.1 .\" Date: 13 February 2013 .\" Manual: Fluxbox Manual .\" Source: fluxbox-apps.txt .\" Language: English .\" .TH "FLUXBOX\-APPS" "5" "13 February 2013" "fluxbox\-apps\&.txt" "Fluxbox Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" fluxbox-apps \- per\-window attribute configuration for fluxbox(1) .SH "SYNOPSIS" .sp ~/\&.fluxbox/apps .SH "SYNTAX" .sp Variable parameters are shown in emphasis: \fIargument\fR .sp All other characters shown are required verbatim\&. Whitespace is only required to delimit words, but it is fine to add more whitespace\&. .SH "DESCRIPTION" .sp It is possible to force an application to always have the same dimensions, position, and other settings when it is first launched\&. These settings are saved in the \(oqapps\(cq file\&. .sp Most simple settings can be saved using the \(lqRemember\&...\(rq submenu of the window menu, which can usually be opened with a right\-click on the titlebar\&. More advanced features require manually editing the \(oqapps\(cq file\&. This may include using \fBGROUP SECTIONS\fR to set up automatic window tab groups\&. .sp You do not need to \(lqreload\(rq fluxbox after editing the apps file, the changes should be rescanned when the next window is opened\&. .sp The file is made up of two main types of sections, apps and groups, detailed below\&. .SH "APP SECTIONS" .sp \fB[app]\fR sections provide settings for individual application windows\&. .PP These sections begin with a line of the format .RS 4 \fB[app]\fR \fB(\fR\fIpattern\fR\fB)\fR \fB{\fR\fIcount\fR\fB}\fR .RE .sp The \fIpattern\fR can be one or more patterns which match windows\&. For more details, see \fBCLIENT PATTERNS\fR\&. If you specify more than one \fIpattern\fR, they must ALL match for the settings to be applied\&. .sp The \fB{\fR\fIcount\fR\fB}\fR is optional\&. If specified, then the entry will only match at most that many windows at any time\&. If omitted, the default is to apply the settings to all matching windows\&. .sp This opening \fB[apps]\fR line is followed by any number of settings for the application\&. See \fBSETTINGS\fR for more details\&. .PP Each of these sections ends with the single line .RS 4 \fB[end]\fR .RE .SH "GROUP SECTIONS" .sp The primary purpose of \fB[group]\fR sections is to group windows together\&. All windows in a group will be tabbed together automatically\&. .PP These sections begin with a line of the format .RS 4 \fB[group]\fR \fB(\fR\fIpattern\fR\fB)\fR .RE .sp Where the \fIpattern\fR item is optional\&. If specified, this pattern must match for the group to take effect\&. It is common to use non\-window\-specific patterns such as \fB(workspace)\fR here\&. See \fBCLIENT PATTERNS\fR for more details\&. .sp This is followed by any number of \fB[app]\fR lines\&. These have a similar format to the \fB[app]\fR section detailed above in \fBAPP SECTIONS\fR, but do not contain any settings and do not have an associated \fB[end]\fR line\&. .PP Like this .RS 4 \fB[app]\fR \fB(\fR\fIpattern\fR\fB)\fR .RE .sp This section may also contain settings that are applied to every window in the group\&. See the \fBSETTINGS\fR section for details\&. .PP As with \fB[app]\fR sections, each of these sections ends with the single line .RS 4 \fB[end]\fR .RE .SH "SETTINGS" .sp These settings may be stored in the \(oqapps\(cq file\&. A settings line must appear inside either an \fB[app]\fR or \fB[group]\fR section\&. .PP The general format is .RS 4 \fB[\fR\fIsetting\fR\fB]\fR \fB{\fR\fIvalue\fR\fB}\fR .RE .sp All allowed values are described below, except for \fIbool\fR which can simply have the value \fByes\fR or \fBno\fR, which enables or disables the associated setting, respectively\&. .PP \fB[Workspace]\fR {\fInumber\fR} .RS 4 Forces the application to open on the \fInumber\fR workspace specified\&. Workspaces are set by number, beginning with 0\&. .RE .PP \fB[Jump]\fR {\fIbool\fR} .RS 4 Changes the active workspace to the remembered one when the application is opened\&. This is only useful when used in conjunction with \fI[Workspace]\fR\&. See \fBEXAMPLES\fR\&. .RE .PP \fB[Head]\fR {\fInumber\fR} .RS 4 Forces the application to open on the \fInumber\fR head specified (Xinerama only)\&. .RE .PP \fB[Layer]\fR {\fInumber\fR} .RS 4 Specify the layer to open the window on (by number)\&. Each layer has a number\&. The named ones are: 2\-AboveDock, 4\-Dock, 6\-Top, 8\-Normal, 10\-Bottom, 12\-Desktop\&. .RE .PP \fB[Dimensions]\fR {\fIwidth[%]\fR \fIheight[%]\fR} .RS 4 Opens the application with the specified \fIwidth\fR and \fIheight\fR, in pixels\&. If the value is given in percent, then the window size will be based on the current screen\(cqs size\&. .RE .PP \fB[Position]\fR (\fIanchor\fR) {\fIX[%]\fR \fIY[%]\fR} .RS 4 Position the application at a particular spot\&. By default the upper\-left corner is placed at screen coordinates (\fIX\fR,\fIY\fR)\&. If you specify an \fIanchor\fR, say BottomRight, then the lower\-right corner of the window is positioned (\fIX\fR,\fIY\fR) pixels from the lower\-right corner of the screen\&. If the value is given in percent, then the coordinates will be based on the current screen\(cqs size\&. .PP \fIanchor\fR may be set to one of: .RS 4 \fBTopLeft Left BottomLeft Top Center Bottom TopRight Right BottomRight\fR .RE .RE .PP \fB[Deco]\fR {\fIvalue\fR} .RS 4 .PP Specify the decoration state\&. There are several predefined \fIvalue\fR sets: .RS 4 .PP \fBNORMAL\fR .RS 4 Standard decorations .RE .PP \fBNONE\fR .RS 4 No decorations .RE .PP \fBBORDER\fR .RS 4 Like NONE except keep the X window border .RE .PP \fBTAB\fR .RS 4 Like BORDER except keep external tabs (if enabled) .RE .PP \fBTINY\fR .RS 4 Titlebar with only an iconify button .RE .PP \fBTOOL\fR .RS 4 Titlebar only .RE .sp The \fIvalue\fR may also be a bitmask for finer\-grained control\&. The bits are, from (1<<0) to (1<<10): Titlebar, Handle/Grips, Border, Iconify Button, Maximize Button, Close Button, Menu Button, Sticky Button, Shade Button, External Tabs, Focus Enabled\&. .RE .RE .PP \fB[Shaded]\fR {\fIbool\fR} .RS 4 Whether the window is Shaded (rolled\-up) or not\&. .RE .PP \fB[Tab]\fR {\fIbool\fR} .RS 4 Whether the window has tabs enabled\&. .RE .PP \fB[FocusNewWindow]\fR {\fIbool\fR} .RS 4 If enabled, a new window will grab X focus as soon as it is opened\&. If disabled, a new window will not grab X focus as soon as it is opened\&. .RE .PP \fB[FocusHidden]\fR {\fIbool\fR} .RS 4 If enabled, the window will not appear in \fINextWindow\fR/\fIPrevWindow\fR lists\&. .RE .PP \fB[IconHidden]\fR {\fIbool\fR} .RS 4 If enabled, the window will not appear in the icon area of the toolbar\&. .RE .PP \fB[Hidden]\fR {\fIbool\fR} .RS 4 A shortcut for setting both \fBFocusHidden\fR and \fBIconHidden\fR at the same time\&. .RE .PP \fB[Sticky]\fR {\fIbool\fR} .RS 4 Specify if an application should be sticky (shown on all workspaces) or not\&. .RE .PP \fB[Minimized]\fR {\fIbool\fR} .RS 4 Application should start minimized .RE .PP \fB[Maximized]\fR {\fIvalue\fR} .RS 4 .PP Application should start maximized\&. \fIvalue\fR may be: .RS 4 .PP \fByes\fR .RS 4 Fully maximized .RE .PP \fBhorz\fR .RS 4 Horizontally maximized .RE .PP \fBvert\fR .RS 4 Vertically maximized .RE .PP \fBno\fR .RS 4 Not maximized .RE .RE .RE .PP \fB[Fullscreen]\fR {\fIbool\fR} .RS 4 Application should start in fullscreen mode (fully maximized without any decorations)\&. .RE .PP \fB[Close]\fR {\fIbool\fR} .RS 4 Save settings on close\&. By default, application settings are not updated when a window is closed\&. .RE .PP \fB[Alpha]\fR {\fIvalue\fR [\fIvalue\fR]} .RS 4 Set the alpha value for this window\&. If two values are given, they correspond to the focused and unfocused transparency, respectively\&. One number only will be used for both values\&. \fIvalue\fR is an integer between 0 and 255\&. .RE .SH "CLIENT PATTERNS" .PP A \fIpattern\fR looks like this .RS 4 \fB(\fR[\fIpropertyname\fR[!]=]\fIregexp\fR\fB)\fR \&... .RE .sp Match definitions are enclosed in parentheses \fB(\fR\&...\fB)\fR, and if no \fIpropertyname\fR is given then \fBName\fR is assumed\&. The \fIregexp\fR can contain any regular expression, or the special value \fB[current]\fR, which matches the corresponding value of the currently focused window\&. See \fIregex(7)\fR for more information on acceptable regular expressions\&. .sp \fIpropertyname\fR is not case sensitive, whereas the \fIregexp\fR is\&. .sp If you specify multiple \fB(\fR\fB\fIpattern\fR\fR) arguments, this implies an AND condition \- All specified patterns must match\&. .sp You can use \fB=\fR to test for equality or \fB!=\fR to test for inequality\&. .PP The following values are accepted for \fIpropertyname\fR .RS 4 .PP \fBName\fR .RS 4 A string, corresponding to the CLASSNAME property (The first field of WM_CLASS from the output of the \fBxprop(1)\fR utility)\&. .RE .PP \fBClass\fR .RS 4 A string, corresponding to the CLASSCLASS property (The second field of WM_CLASS from the output of the \fBxprop(1)\fR utility)\&. .RE .PP \fBTitle\fR .RS 4 A string, corresponding to the window title (WM_NAME from \fBxprop(1)\fR)\&. .RE .PP \fBRole\fR .RS 4 A string, corresponding to the ROLE property (WM_WINDOW_ROLE from \fBxprop(1)\fR)\&. .RE .PP \fBTransient\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window is transient (typically, a popup dialog) or not\&. .RE .PP \fBMaximized\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window is maximized or not\&. .RE .PP \fBMaximizedHorizontal\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window is maximized horizontally or not\&. .RE .PP \fBMaximizedVertical\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window is maximized vertically or not\&. .RE .PP \fBMinimized\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window is minimized (iconified) or not\&. .RE .PP \fBFullscreen\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window is fullscreen or not\&. .RE .PP \fBShaded\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window is shaded or not\&. .RE .PP \fBStuck\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window is sticky (on all workspaces) or not\&. .RE .PP \fBFocusHidden\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window has asked to be left off the focus list (or, the alt\-tab list), or not\&. .RE .PP \fBIconHidden\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window has asked to be left off the icon list (or, the taskbar), or not\&. .RE .PP \fBUrgent\fR .RS 4 Either \fByes\fR or \fBno\fR, depending on whether the window has the urgent hint set\&. .RE .PP \fBWorkspace\fR .RS 4 A number corresponding to the workspace number to which the window is attached\&. The first workspace here is \fB0\fR\&. You may also use \fB[current]\fR to match the currently visible workspace\&. .RE .PP \fBWorkspaceName\fR .RS 4 A string corresponding to the name of the workspace to which the window is attached\&. .RE .PP \fBHead\fR .RS 4 The number of the display head to which the window is attached\&. You may match this against the special value \fB[mouse]\fR which refers to the head where the mouse pointer currently resides\&. .RE .PP \fBLayer\fR .RS 4 The string name of the window\(cqs layer, which is one of \fBAboveDock\fR, \fBDock\fR, \fBTop\fR, \fBNormal\fR, \fBBottom\fR, \fBDesktop\fR .RE .PP \fBScreen\fR .RS 4 The number of the currently used \fIscreen\fR\&. If the setup of the running xserver involves independent screens (\fInot Xinerama\fR), the $DISPLAY environment contains something like \fI:0\&.1\fR or \fI:1\&.0\fR\&. The part after the dot (\fI\&.\fR) is the number of the screen\&. .RE .PP \fB@XPROP\fR .RS 4 A string, corresponding to any xproperty (Use either the \fBxprop(1)\fR utility or the \fISetXProp\fR command to set a xproperty to a window) .RE .RE .PP \fBMatches any windows with the CLASSNAME of "xterm"\fR. .sp .if n \{\ .RS 4 .\} .nf (xterm) .fi .if n \{\ .RE .\} .PP \fBMatches any windows with the same CLASSNAME as the currently focused window\fR. .sp .if n \{\ .RS 4 .\} .nf (Name=[current]) .fi .if n \{\ .RE .\} .PP \fBMatches any windows on the same head as the mouse but on a different layer than the currently focused window\fR. .sp .if n \{\ .RS 4 .\} .nf (Head=[mouse]) (Layer!=[current]) .fi .if n \{\ .RE .\} .PP \fBMatches any windows having a xproperty named FOO with "bar" in it\fR. .sp .if n \{\ .RS 4 .\} .nf (@FOO=\&.*bar\&.*) .fi .if n \{\ .RE .\} .sp .SH "FILES" .PP \fB~/\&.fluxbox/apps\fR .RS 4 This is the default location for the application settings\&. .RE .SH "RESOURCES" .PP \fBsession\&.appsFile:\fR \fIlocation\fR .RS 4 This may be set to override the location of the application settings\&. .RE .SH "EXAMPLES" .sp Here are some interesting and/or useful examples you can do with your apps file\&. .sp .if n \{\ .RS 4 .\} .nf # Put the first two windows which end with \*(Aqterm\*(Aq on workspace 1 [app] (name=\&.*[tT]erm) {2} [Workspace] {1} [end] # Center kate with a specific size, and update these values when the window is # closed\&. [app] (name=kate) [Dimensions] {1022 747} [Position] (CENTER) {0 0} [Close] {yes} [end] # When starting konqueror, jump to workspace 1 first and start it there\&. [app] (name=konqueror) [Workspace] {1} [Jump] {yes} [end] # start all aterm without decorations [app] (name=aterm) [Deco] {NONE} [end] # a group with the gimp dock and toolbox # appears on layer 4 (bottom) [group] [app] (name=gimp) (role=gimp\-dock) [app] (name=gimp) (role=gimp\-toolbox) [Layer] {4} [end] .fi .if n \{\ .RE .\} .SH "AUTHORS" .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Jim Ramsay (>fluxbox\-1\&.0\&.0) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Curt Micol (>fluxbox\-0\&.9\&.11) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Tobias Klausmann (\(lafluxbox\-0\&.9\&.11) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Grubert (fluxbox) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Matthew Hawkins (blackbox) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Wilbert Berendsen (blackbox) .RE .SH "SEE ALSO" .sp fluxbox(1) xprop(1) regex(7) .SH "AUTHOR" .PP \fBJim Ramsay\fR <\&i\&.am@jimramsay\&.com\&> .RS 4 Author. .RE fluxbox-1.3.5/doc/PaxHeaders.25974/fbsetroot.1.in0000644000175000017500000000013212106662425017517 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749874.555812473 30 ctime=1360750008.971811613 fluxbox-1.3.5/doc/fbsetroot.1.in0000644000175000017500000001016712106662425015553 0ustar00mgmg00000000000000'\" t .\" Title: fbsetroot .\" Author: Jim Ramsay .\" Generator: DocBook XSL Stylesheets v1.76.1 .\" Date: 13 February 2013 .\" Manual: Fluxbox Manual .\" Source: fbsetroot.txt .\" Language: English .\" .TH "FBSETROOT" "1" "13 February 2013" "fbsetroot\&.txt" "Fluxbox Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" fbsetroot \- a simple background utility used by the fluxbox(1) window manager, originally written for and by the original blackbox(1) window manager\&. .SH "SYNOPSIS" .sp \fBfbsetroot\fR [\-display \fIdisplay\fR] \-solid \fIcolor\fR .sp \fBfbsetroot\fR [\-display \fIdisplay\fR] \-mod \fIx\fR \fIy\fR \-fg \fIcolor\fR \-bg \fIcolor\fR .sp \fBfbsetroot\fR [\-display \fIdisplay\fR] \-gradient \fItexture\fR \-from \fIcolor\fR \-to \fIcolor\fR .sp \fBfbsetroot\fR \-help .SH "DESCRIPTION" .sp \fBfbsetroot(1)\fR is a utility that can control the appearance of the root window in three ways: Either give it a solid color, or write a two color modula pattern to it, or render a gradient texture, based on two different colors\&. .sp fbsetroot resembles \fBxsetroot(1)\fR in this functionality but it supports multiple\-screen displays, and gradient textures the same way as blackbox or fluxbox does\&. It doesn\(cqt handle cursors etc\&. fbsetroot was originally part of the Blackbox package and was carried over with the code that became Fluxbox\&. It was called bsetroot back in those days\&. .sp If any errors are encountered, fbsetroot will use either \fBgxmessage(1)\fR or \fBxmessage(1)\fR to inform the user of errors\&. .SH "OPTIONS" .sp fbsetroot operates in three ways, you must choose one of the first 3 options: .PP \fB\-solid\fR \fIcolor\fR .RS 4 Sets the root window to specified color\&. .RE .PP \fB\-mod\fR \fIx\fR \fIy\fR .RS 4 Creates a modula pattern\&. You must specify \fB\-bg\fR and \fB\-fg\fR colors\&. .RE .PP \fB\-gradient\fR \fItexturestring\fR .RS 4 Renders the specified texture string to the root window\&. .PP \fItexturestring\fR may be one of: .RS 4 \fBHorizontal / Vertical / Diagonal / Crossdiagonal / Pipecross / Elliptic / Rectangle / Pyramid\fR .sp Select one of these texture types, they only apply when \fB\-gradient\fR is specified\&. You must also specify both a \fB\-from\fR and a \fB\-to\fR color\&. .RE .RE .PP \fB\-display\fR \fIdisplay\fR .RS 4 Tells fbsetroot to connect to the specified display\&. .RE .PP \fB\-bg, \-background\fR \fIcolor\fR .RS 4 Background color\&. Needed for \fB\-mod\fR patterns\&. .RE .PP \fB\-fg, \-foreground\fR \fIcolor\fR .RS 4 Foreground color\&. Needed for \fB\-mod\fR patterns\&. .RE .PP \fB\-from\fR \fIcolor\fR .RS 4 Start color for rendering textures\&. Needed for \fB\-gradient\fR patterns\&. .RE .PP \fB\-to\fR \fIcolor\fR .RS 4 Ending color for rendering textures\&. Needed for \fB\-gradient\fR patterns\&. .RE .PP \fB\-help\fR .RS 4 Prints version info and short help text\&. .RE .SH "AUTHORS" .sp This manpage was modified by Curt "Asenchi" Micol for the Fluxbox window manager\&. .sp Further updates for fluxbox\-1\&.1\&.2 and conversion to asciidoc format by Jim Ramsay .SH "SEE ALSO" .sp fluxbox(1) fbsetbg(1) xsetroot(1) xmessage(1) gxmessage(1) .SH "AUTHOR" .PP \fBJim Ramsay\fR <\&i\&.am@jimramsay\&.com\&> .RS 4 Author. .RE fluxbox-1.3.5/doc/PaxHeaders.25974/fbsetbg.1.in0000644000175000017500000000013212106662425017124 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749874.555812473 30 ctime=1360750008.971811613 fluxbox-1.3.5/doc/fbsetbg.1.in0000644000175000017500000001044112106662425015153 0ustar00mgmg00000000000000'\" t .\" Title: fbsetbg .\" Author: Jim Ramsay .\" Generator: DocBook XSL Stylesheets v1.76.1 .\" Date: 13 February 2013 .\" Manual: Fluxbox Manual .\" Source: fbsetbg.txt .\" Language: English .\" .TH "FBSETBG" "1" "13 February 2013" "fbsetbg\&.txt" "Fluxbox Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" fbsetbg \- Set a background wallpaper or pattern .SH "SYNOPSIS" .sp \fBfbsetbg\fR [\fB\-uU\fR \fIwallpapersetter\fR] [\fB\-fFcCtTaA\fR] \fIwallpaper\fR .sp \fBfbsetbg\fR [\fB\-uU\fR \fIwallpapersetter\fR] \fB\-rR\fR \fIpath\fR .sp \fBfbsetbg\fR \fB\-bB\fR \fIfbsetrootoptions\&...\fR .sp \fBfbsetbg\fR [\-\fBl\fR|\fBh\fR|\fBi\fR|\fBp\fR] .SH "DESCRIPTION" .sp \fBfbsetbg(1)\fR is a wrapper that tries to find a suitable background\-setting app and then tries to set the wallpaper using that app\&. You don\(cqt have to configure fbsetbg\&. It just uses the first app it can find\&. .sp Furthermore it supports remembering the last set wallpaper so you don\(cqt have to edit the style or init\-file to change the wallpaper\&. .sp It aims to provide clear error messages in a window that make debugging problems easy\&. .SH "OPTIONS" .PP \fB\-f\fR \fIfile\fR .RS 4 Set fullscreen wallpaper\&. .RE .PP \fB\-c\fR \fIfile\fR .RS 4 Set centered wallpaper\&. .RE .PP \fB\-t\fR \fIfile\fR .RS 4 Set tiled wallpaper\&. .RE .PP \fB\-a\fR \fIfile\fR .RS 4 Set maximized wallpaper, preserving aspect (if your bgsetter doesn\(cqt support this option fbsetbg falls back to \fB\-f\fR)\&. .RE .PP \fB\-u\fR \fIwallpapersetter\fR .RS 4 Use specified wallpapersetter, use no argument to forget\&. .RE .PP \fB\-b\fR \fIfbsetrootoptions\fR .RS 4 Forward the options to \fBfbsetroot(1)\fR\&. These can be used to set a solid, pattern, or gradient background texture\&. .RE .PP \fB\-r\fR \fIdirectory\fR .RS 4 Set random wallpaper from a directory\&. .RE .PP \fB\-F\fR, \fB\-C\fR, \fB\-T\fR, \fB\-A\fR, \fB\-U\fR, \fB\-B\fR, \fB\-R\fR .RS 4 Same as the lowercase option but without remembering\&. .RE .PP \fB\-l\fR .RS 4 Set previous wallpaper\&. Or, if the random feature was last used, set another random wallpaper from the same directory\&. .RE .PP \fB\-i\fR .RS 4 Display useful information about best wallpapersetter found\&. .RE .PP \fB\-p\fR .RS 4 Display some useful tips\&. .RE .PP \fB\-h\fR .RS 4 Display a help message\&. .RE .SH "FILES" .PP \fB~/\&.fluxbox/lastwallpaper\fR .RS 4 In this file the wallpaper you set will be stored, for the \fB\-l\fR option\&. .RE .SH "ENVIRONMENT" .PP \fBwpsetters\fR .RS 4 Wallpapersetters to use\&. This can be a space\-delimited list of the applications to try, or just a single name\&. .RE .PP \fBDISPLAY\fR .RS 4 The display you want to set the wallpaper on\&. .RE .SH "EXAMPLES" .sp To use \fBfeh(1)\fR as wallpapersetter and set \fBwallpapper\&.jpg\fR from the current directory as wallpaper\&. .sp .if n \{\ .RS 4 .\} .nf $ wpsetters=feh fbsetbg wallpaper\&.jpg .fi .if n \{\ .RE .\} .sp Recall the last set wallpaper on display \fB:0\&.0\fR with the stored options\&. .sp .if n \{\ .RS 4 .\} .nf $ DISPLAY=:0\&.0 fbsetbg \-l .fi .if n \{\ .RE .\} .SH "BUGS" .sp \fBfbsetbg(1)\fR is not foolproof\&. .SH "AUTHORS" .sp The author of fbsetbg is Han Boetes .sp This manpage was converted to asciidoc format by Jim Ramsay for fluxbox\-1\&.1\&.2 .SH "SEE ALSO" .sp fluxbox(1) fbsetroot(1) .SH "AUTHOR" .PP \fBJim Ramsay\fR <\&i\&.am@jimramsay\&.com\&> .RS 4 Author. .RE fluxbox-1.3.5/doc/PaxHeaders.25974/fbrun.1.in0000644000175000017500000000013212106662425016624 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749874.551812473 30 ctime=1360750008.971811613 fluxbox-1.3.5/doc/fbrun.1.in0000644000175000017500000000705012106662425014655 0ustar00mgmg00000000000000'\" t .\" Title: fbrun .\" Author: Jim Ramsay .\" Generator: DocBook XSL Stylesheets v1.76.1 .\" Date: 13 February 2013 .\" Manual: Fluxbox Manual .\" Source: fbrun.txt .\" Language: English .\" .TH "FBRUN" "1" "13 February 2013" "fbrun\&.txt" "Fluxbox Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" fbrun \- display run dialog window .SH "SYNOPSIS" .sp \fBfbrun\fR [\fIoptions\fR] .SH "DESCRIPTION" .sp \fBfbrun(1)\fR is basically equivalent to the \(lqRun\&...\(rq dialog in other desktop environments\&. This means that it is an easy way to start a program that isn\(cqt contained in the menu (or needs a special set of parameters for this particular invocation)\&. .sp Pressing \(lqEnter\(rq will close the window and execute the command in your present \fB$SHELL\fR\&. Pressing \(lqEsc\(rq will close the window and does not execute anything\&. .sp Another way fbrun can be useful is to be called from the menu with a preloaded command line that you can edit and then execute\&. An example might be sshing to a very long host name with lots of options of which one changes all the time\&. In this case, you could add an entry for fbrun to your menu that contains all the options and the host name\&. When you use said entry, you could edit the line as necessary and execute it\&. .SH "OPTIONS" .PP \fB\-title\fR \fItitle\fR .RS 4 Set title .RE .PP \fB\-text\fR \fItext\fR .RS 4 Text input .RE .PP \fB\-w\fR \fIwidth\fR .RS 4 Window width in pixels .RE .PP \fB\-h\fR \fIheight\fR .RS 4 Window height in pixels .RE .PP \fB\-display\fR \fIdisplay\fR .RS 4 Display name, defaults to \fB$DISPLAY\fR .RE .PP \fB\-pos\fR \fIx\fR \fIy\fR .RS 4 Window position in pixels .RE .PP \fB\-nearmouse\fR .RS 4 Position the window under the mouse cursor .RE .PP \fB\-fg\fR \fIcolor\fR .RS 4 Foreground text color\&. The default is \fBblack\fR .RE .PP \fB\-bg\fR \fIcolor\fR .RS 4 Background color\&. The default is \fBwhite\fR .RE .PP \fB\-font\fR \fIname\fR .RS 4 Text font name .RE .PP \fB\-na\fR .RS 4 Disable font antialias .RE .PP \fB\-hf\fR \fIfilename\fR .RS 4 History file to load\&. The default is \fB~/\&.fluxbox/fbrun_history\fR\&. .RE .PP \fB\-help\fR .RS 4 Show this help .RE .SH "EXAMPLE" .sp .if n \{\ .RS 4 .\} .nf fbrun \-fg black \-bg white \-text xterm \-title "run xterm" .fi .if n \{\ .RE .\} .SH "AUTHORS" .sp This manpage was originally written by Bastian Kleineidam for the Debian distribution of fluxbox (but may be used by others)\&. .sp It was then converted to asciidoc format by Jim Ramsay for fluxbox\-1\&.1\&.2 .SH "SEE ALSO" .sp fluxbox(1) .SH "AUTHOR" .PP \fBJim Ramsay\fR <\&i\&.am@jimramsay\&.com\&> .RS 4 Author. .RE fluxbox-1.3.5/doc/PaxHeaders.25974/fluxbox.1.in0000644000175000017500000000013212106662425017177 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749874.551812473 30 ctime=1360750008.971811613 fluxbox-1.3.5/doc/fluxbox.1.in0000644000175000017500000016312312106662425015234 0ustar00mgmg00000000000000'\" t .\" Title: fluxbox .\" Author: Henrik Kinnunen .\" Generator: DocBook XSL Stylesheets v1.76.1 .\" Date: 13 February 2013 .\" Manual: Fluxbox Manual .\" Source: fluxbox.txt .\" Language: English .\" .TH "FLUXBOX" "1" "13 February 2013" "fluxbox\&.txt" "Fluxbox Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" fluxbox \- A lightweight window manager for the X Windowing System .SH "SYNOPSIS" .sp \fBfluxbox\fR [\-rc \fIrcfile\fR] [\-log \fIlogfile\fR] [\-display \fIdisplay\fR] [\-screen all|\fIscr\fR,\fIscr\fR\&...] [\-verbose] [\-sync] .sp \fBfluxbox\fR [\-v | \-version] | [\-h | \-help] | [\-i | \-info] | [\-list\-commands] .SH "DESCRIPTION" .sp \fBfluxbox(1)\fR is a window manager\&. As such it provides configurable window decorations, a root menu to launch applications and a toolbar that shows the current workspace name, a set of application names and the current time\&. There is also a workspace menu to add or remove workspaces\&. .sp Fluxbox can iconify (or minimize) windows to the toolbar One click and they reappear\&. A double\-click on the titlebar of the window will \fIshade\fR it; i\&.e\&. the window will disappear, and only the titlebar will remain visible\&. .sp There are also two areas commonly used by small applets: the \(oqslit\(cq can be used to dock small applications; e\&.g\&. most of the \(lqbbtools\(rq and \(lqWindow Maker dockapps\(rq can use the slit, and the \(oqsystray\(cq which lives in the toolbar supports standard system tray icons provided by some applications\&. .sp Fluxbox uses its own graphics class to render its images on the fly\&. By using style files, you can determine in great detail how your desktop looks\&. fluxbox styles are compatible with those of Blackbox 0\&.65 or earlier versions, so users migrating can still use their current favourite themes\&. .sp Most of the default keyboard and mouse button actions mentioned in this manual can be changed and configured in the \(oqkeys\(cq file\&. This powerful configuration file can also be used to automate almost any action you may want to perform, from launching applications to moving windows around the screen\&. See \fBfluxbox\-keys(5)\fR for details\&. .sp Fluxbox can also remember certain attributes of individual application windows and restore these settings the next time the window opens\&. See the \fBfluxbox\-apps(5)\fR for details\&. .sp Fluxbox supports the majority of the Extended Window Manager Hints (EWMH) specification, as well as numerous other Window Hinting standards\&. This allows all compliant window managers to provide a common interface to standard features used by applications and desktop utilities\&. .SH "OPTIONS" .PP \fB\-display\fR \fIdisplay\fR .RS 4 Start fluxbox on the specified display\&. Programs started by fluxbox will share the DISPLAY environment variable also\&. .RE .PP \fB\-h\fR, \fB\-help\fR .RS 4 Display command line options\&. .RE .PP \fB\-i\fR, \fB\-info\fR .RS 4 Display useful information concerning the defaults and compiled\-in options\&. .RE .PP \fB\-log\fR \fIlogfile\fR .RS 4 Starting fluxbox with this option will designate a file in which you want to log events to\&. .RE .PP \fB\-rc\fR \fIrcfile\fR .RS 4 Use a different config file other than the default \fB~/\&.fluxbox/init\fR\&. .RE .PP \fB\-v\fR, \fB\-version\fR .RS 4 The version of fluxbox installed\&. .RE .PP \fB\-screen\fR all|\fIscr\fR,\fIscr\fR\&... .RS 4 Run on specified screens only or all (by default)\&. .RE .PP \fB\-verbose\fR .RS 4 Print more information in process\&. .RE .PP \fB\-sync\fR .RS 4 Synchronize with the X server for debugging\&. .RE .PP \fB\-list\-commands\fR .RS 4 Lists all available internal commands\&. .RE .SH "STARTING FLUXBOX" .sp \fBfluxbox(1)\fR comes with a program called \fBstartfluxbox(1)\fR usually located wherever you installed fluxbox\&. This script provides you with many options and variables that can be set when starting fluxbox\&. To actually call fluxbox and begin using it, you should place \(lqexec startfluxbox\(rq in your \fB~/\&.xinitrc\fR as the last executed command\&. This is assuming that the location of \fBfluxbox(1)\fR and \fBstartfluxbox(1)\fR are in your shell\(cqs $PATH\&. Also note that you may need to create the \fB~/\&.xinitrc\fR file or your setup may use \fB~/\&.xsession\fR instead, depending on your X setup\&. Some X login managers like \fBgdm(1)\fR or \fBkdm(1)\fR may simply provide a \(lqFluxbox\(rq session for you without having to alter any settings\&. .sp By using fluxbox \-i you\(cqll see the defaults used by \fBfluxbox(1)\fR\&. These are what fluxbox looks for upon startup\&. In the list of \(lqDefaults:\(rq you\(cqll see a menu file location, this is where you can provide a system\-wide menu file for your users\&. .sp On exit or restart, fluxbox will save user defaults in the file \fB~/\&.fluxbox/init\fR\&. Resources in this file can also be edited by hand, see the \fBRESOURCES\fR section for more details\&. \fBfluxbox(1)\fR also has many tools to edit these; look through the main menu once fluxbox has started to find different ways of managing your session\&. .SH "USING FLUXBOX" .sp When using fluxbox for the first time, users who are more accustomed to full desktop environments such as KDE or Gnome may be a little surprised by the minimal screen content\&. fluxbox is designed to be fast and powerful, so it may take a bit of getting used to \(em however, the rewards are worthwhile\&. .sp In this section, we\(cqll give a quick summary of the common things\&. However, we recommend that you consult the referenced sections of this manual to further develop your understanding of what you can do with fluxbox\&. .SS "Root Window (Main)" .sp Looking at the fluxbox desktop immediately after startup you\(cqll generally see only one thing: the toolbar\&. If you right\-click (mouse button 3) somewhere on the desktop, you can access the Root Menu\&. A middle\-click (mouse button 2) on the desktop shows you the Workspace Menu\&. .SS "Root Menu and Workspace Menu" .sp From the RootMenu you can launch applications and configure fluxbox\&. The WorkspaceMenu shows all windows and on which workspaces they are\&. See section \fBMENUS\fR on how to customize these menus\&. .SS "Toolbar" .sp The toolbar contains any combination of the following tools, by default in this order: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBWorkspace Name\fR: Name of the current visible workspace .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBWorkspace Arrows\fR: Previous/Next Workspace .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBIconbar\fR: List of windows managed by fluxbox .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBWindow Arrows\fR: Previous/Next Application Window .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBSystem Tray\fR: Area for applets .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBClock\fR: Date and Time .RE .sp The contents and behavior of the toolbar can be configured, see the \fBTOOLBAR\fR section for details\&. .SS "Slit" .sp Initially you won\(cqt be able to see the slit\&. It is there, but it isn\(cqt being used yet, which confuses some people initially\&. Think of it as a dock where you can place smaller programs\&. If you\(cqve looked at any screenshots on the official fluxbox web site, you will have noticed some small programs on the edge of some of the screens\&. These were more than likely docked programs in the slit\&. To learn more about the slit, we have an entire \fBSLIT\fR section below that goes into detail about the options you have\&. .SS "Layers" .sp fluxbox manages the following layers (from highest to lowest): .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Above Dock .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Dock .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Top .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Normal .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Bottom .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Desktop .RE .sp Windows on a higher layer will always appear above those on a lower one\&. These layers can be used on application windows, the slit or the toolbar\&. You can assign applications to a certain layer by specifying it in the \(oqapps\(cq file or through the WindowMenu\&. We discuss the \(oqapps\(cq file in \fBfluxbox\-apps(5)\fR\&. We discuss the WindowMenu in the \fBMENUS\fR section\&. We discuss layers in more detail in the \fBLAYERS\fR section\&. .SS "Focus Model" .sp The window that has the focus is the one that receives key and mouse events\&. The focus model is selectable via the Configuration menu located in the root menu\&. We\(cqll discuss the different types of focus below in the \fBFOCUS MODEL\fR section\&. .SS "Windows" .sp A left\-click (mouse button 1) on any part of the window\(cqs border will raise it\&. Dragging then moves the window to another part of the desktop\&. A right click and drag on the border resizes the window\&. Dragging the resize grips at the left and right bottom corners also will resize the window\&. Middle clicking on a border or titlebar will immediately lower the window\&. Right clicking on the titlebar opens the Window menu\&. The commands unique to this menu are discussed in detail in the \fBWindow Menu\fR section\&. .SS "Tabs" .sp fluxbox allows windows to be \(oqgrouped\(cq by middle clicking and holding on a window\(cqs tab and dragging it onto another window\&. This \(oqtabbing\(cq allows you to put multiple applications in one location on the desktop and do several operations (for example, moving or resizing) to all windows in the group\&. By default, tabs are located just above the window, but they may be embedded in the titlebar or moved to other locations on the outside of the window\&. Configuration is discussed in TAB OPTIONS section\&. .sp You can also set up automatic grouping using the \(oqapps\(cq file\&. See \fBGROUP SECTIONS\fR in \fBfluxbox\-apps(5)\fR for details\&. .SS "Key Bindings" .sp There are a number of key bindings set up by default, which can be configured and extended to just about anything you can imagine with the keyboard\&. See \fBfluxbox\-keys(5)\fR for details on how to do this\&. .sp The default bindings set up by fluxbox are as follows: .sp Mouse clicks on the empty desktop: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBLeft\-click\fR (Button 1): hides all fluxbox menus .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBMiddle\-click\fR (Button 2): shows the Workspace Menu .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBRight\-click\fR (Button 3): shows the Root Menu .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBScroll wheel\fR (Buttons 4 and 5): jump to the previous/next workspace .RE .sp Mouse gestures on a window: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBALT+Drag Left\-click\fR anywhere on a window moves the window\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBALT+Drag Right\-click\fR anywhere on a window resizes the window\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBALT+Middle\-click\fR anywhere on a window lowers the current window\&. .RE .sp Mouse gestures on a window\(cqs titlebar: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBCTRL+Drag Left\-click\fR on a window\(cqs titlebar lets you drag to attach the window to another\(cqs tab group .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBDouble Left\-click\fR on a window\(cqs titlebar shades the window .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBMiddle\-click\fR on a window\(cqs titlebar lowers the window .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBRight\-click\fR on a window\(cqs titlebar pops up the \fBWindow Menu\fR .RE .sp Mouse gestures on the toolbar: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBScroll wheel\fR on the toolbar cycles through windows .RE .sp Keyboard bindings: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBALT+Tab\fR / \fBALT+Shift+Tab\fR: Cycle through windows .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBWIN+Tab\fR / \fBWIN+Shift+Tab\fR: Cycle through tabs .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBWIN+1\fR \- \fBWIN+9\fR: Select the 1st \(-> 9th tab in the current window .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBALT+F1\fR: Run \fBxterm(1)\fR to open a new terminal .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBALT+F2\fR: Run \fBfbrun(1)\fR for a small \(lqrun program\(rq dialog .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBALT+F4\fR: Close the current window .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBALT+F5\fR: Kill the current window (like \fBxkill(1)\fR) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBALT+F9\fR: Minimize (iconify) the current window .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBALT+F10\fR: Maximize the current window .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBALT+F11\fR: Full\-screen the current window .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBALT+Space\fR: Open the \fBWindow Menu\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBCTRL+ALT+Del\fR: Exit fluxbox (log out) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBCTRL+ALT+Left\fR / \fBCTRL+ALT+Right\fR: Go to the previous/next workspace .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBWIN+Left\fR / \fBWIN+Right\fR: Send the current window to the previous/next workspace, but remain on this workspace .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBCTRL+WIN+Left\fR / \fBCTRL+WIN+Right\fR: Take the current window to the previous/next workspace, and switch to that workspace .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBCTRL+F1\fR \- \fBCTRL+F12\fR: Switch to the 1st \(-> 12th workspace .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBWIN+F1\fR \- \fBWIN+F12\fR: Send the current window to a specific workspace .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBCTRL+WIN+F1\fR \- \fBCTRL+WIN+F12\fR: Take the current window to a specific workspace .RE .SH "MENUS" .sp fluxbox provides a popup menu facility that is used by a few different types of native menus\&. .sp When a menu is open, you can click on items with the mouse to activate them\&. Some special menu items react slightly differently depending on the mouse button you use, but normally you will want to use a left\-click (button 1)\&. .sp You can also use the the keyboard arrow key to navigate, or even type the first few letters of the item\(cqs label to select it, and \(lqenter\(rq to activate the item\&. .sp Normally activating a menu item should close the menu\&. You can also right\-click the title are of a menu or press \(lqesc\(rq to close it without activating an item\&. .SS "Root Menu" .sp The root menu is where you can launch commonly\-used applications and change different aspects of fluxbox by simply clicking on a menu item\&. By default it is opened by a right\-click on the empty area of the desktop\&. .sp The contents of this menu can be configured, see \fBfluxbox\-menu(5)\fR for details\&. .sp The default menu, which is created by the \(lqfluxbox\-generate_menu\(rq command, contains menus for installed applications, as well as a special \(lqFluxbox menu\(rq item with the items detailed below: .PP \fBConfigure\fR .RS 4 The next level under this menu is where you can set certain resources and really begin to customize the look and feel of your desktop\&. See the \fBConfigure Menu\fR section below for more details\&. .RE .PP \fBSystem Styles\fR .RS 4 This is where the standard styles are listed\&. You can select one of these by clicking on it, and it will be applied immediately\&. System styles are located in \fB@pkgdatadir@/styles/\fR upon a default install\&. Remember that you can confirm this with fluxbox \-i\&. .PP \fBUser Styles\fR .RS 4 This is where your custom styles are listed\&. It will list any styles from \fB~/\&.fluxbox/styles/\fR, which may be styles you grab from the Internet, or your own custom styles, provided you follow the standards described in \fBfluxbox\-style(5)\fR\&. .RE .PP \fBWorkspace List\fR .RS 4 This is the same as the \fBWorkspace Menu\fR detailed below\&. .RE .PP \fBTools\fR .RS 4 Listed here are different tools that you can use\&. You can rename your workspace, run programs from a command line or regenerate your menu\&. .RE .PP \fBWindow Managers\fR .RS 4 Allows you to switch your window manager\&. (Only listed if you have other window managers/desktop environments installed\&.) .RE .PP \fBLock Screen\fR .RS 4 Locks the screen, if a suitable locking program has been detected\&. .RE .PP \fBFluxbox Command\fR .RS 4 A little Commandline will popup where you can enter a fluxbox command\&. These commands are the same as those detailed in \fBfluxbox\-keys(5)\fR\&. .RE .PP \fBReload config\fR .RS 4 Use this to reload the fluxbox configuration files\&. You must do this after editing the \(oqkeys\(cq file, \(oqinit\(cq file, or the current style\&. .RE .PP \fBRestart\fR .RS 4 Restart the whole darn thing\&. This starts a completely new fluxbox process, rereads files and redraws all graphical elements\&. Running applications will remain open, however, and restored to the same workspaces they were previously in once fluxbox returns\&. .RE .PP \fBExit\fR .RS 4 Exits fluxbox, which in turn either shuts down the X Window server or returns you to the graphical login screen\&. .RE .RE .SS "Configuration Menu" .sp This menu offers the opportunity to set up fluxbox\&. It contains many options which can be altered manually in the \(oqinit\(cq file, but this is an easier and faster way to change the most common settings\&. .sp All changes take effect immediately\&. .PP \fBFocus Model\fR .RS 4 Lets you configure the window focus model\&. For details, see \fBFOCUS MODEL\fR, below\&. .RE .PP \fBMaximize Options\fR .RS 4 Lets you configure what happens when you maximize a window\&. The four options are: .PP \fBFull Maximization\fR: .RS 4 Normally, a maximized window will not overlap the toolbar, slit, or any docked windows (like panels)\&. Enabling this option allows maximized windows to be as large as the actual screen resolution\&. .RE .PP \fBIgnore Resize Increment\fR: .RS 4 Normally, terminal windows specify a \(lqresize increment\(rq which mean fluxbox will only resize the window to an even multiple of the character size\&. Enabling this option will ignore this specification when maximizing\&. .RE .PP \fBDisable Moving\fR / \fBDisable Resizing\fR: .RS 4 Normally, maximized windows can still be moved and resized\&. Enabling these options prevents these behaviour\&. .RE .RE .PP \fBTab Options\fR .RS 4 Lets you configure the properties of tabs\&. Detailed in \fBTAB OPTIONS\fR, below\&. .RE .PP \fBSlit\fR .RS 4 This menu can also be found by right\-clicking the slit (if visible)\&. Find more information about this menu\(cqs options in the \fBSlit Menu\fR section, below\&. .RE .PP \fBToolbar\fR .RS 4 This menu can also be found by right\-clicking any non\-icon part of the toolbar\&. Find more information about this menu\(cqs options in the \fBToolbar Menu\fR section, below\&. .RE .PP \fBTransparency\fR .RS 4 This sets the default transparency for a focused windows, unfocused window and the menu\&. Use the left mouse button to decrease and the right mouse button to increase the value\&. 0 is invisible, 255 is not transparent at all\&. .sp The transparency of individual application windows can be overridden in the \(oqapps\(cq file (\fBfluxbox\-apps(5)\fR)\&. .sp The \fBForce Pseudo Transparency\fR option will force fluxbox to ignore the xcomposite extension and use pseudo\-transparency instead of true transparency\&. Note: When pseudo\-transparency is on, the transparency values here only affect titlebars, not window contents\&. .RE .PP \fBOpaque Window Moving\fR .RS 4 If enabled, you will see the window content while dragging it\&. Otherwise only an outline of the window will be shown\&. .RE .PP \fBWorkspace Warping\fR .RS 4 If enabled, you can drag windows from one workspace to another\&. The previous workspace is to the left, the next workspace is to the right\&. .RE .SS "Window Menu" .sp The Window menu is displayed when you right click on the titlebar of a window\&. .sp To customize this menu, see the \fBWINDOW MENU\fR section of \fBfluxbox\-menu(5)\fR\&. .sp By default, this menu contains: .PP \fBShade\fR .RS 4 Shade the window (display the titlebar only)\&. .RE .PP \fBStick\fR .RS 4 (Un)Stick window\&. A \(oqstuck\(cq window will always be displayed on all workspaces\&. .RE .PP \fBSend To\&...\fR .RS 4 Send window to another workspace\&. When you select the workspace with a middle click, fluxbox will send you along with the application to the selected workspace\&. .RE .PP \fBMaximize\fR .RS 4 (Un)Maximize window\&. Depending on your toolbar and slit configuration, maximize may cover them\&. You can use the different mouse buttons for different aspects of maximize function\&. .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Button 1 (Un)Maximize as normal\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Button 2 (Un)Maximize window vertically\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Button 3 (Un)Maximize window horizontally\&. .RE .RE .PP \fBIconify\fR .RS 4 Iconify (or minimize) a window\&. The \(oqicon\(cq can be found in the Icons submenu of the workspace menu as well as in the toolbar (if a Toolbar mode showing Icons is selected)\&. .RE .PP \fBRaise\fR .RS 4 Raise the window above all others in the same layer\&. .RE .PP \fBLower\fR .RS 4 Lower the window below all others in the same layer\&. .RE .PP \fBLayer\&...\fR .RS 4 Change the layer of this window\&. See \fBLAYERS\fR for more details\&. .RE .PP \fBTransparency\fR .RS 4 Change this window\(cqs transparency, overriding the defaults from the \fBConfiguration Menu\fR\&. .RE .PP \fBRemember\&...\fR .RS 4 Specify which window settings should be stored in the \(oqapps\(cq file and resumed the next time this window is opened\&. .sp Specifically the setting you may store are: .PP \fBWorkpace:\fR .RS 4 Open this in the same workspace as where the window currently resides\&. .RE .PP \fBJump to workspace:\fR .RS 4 When \fBWorkspace\fR is selected, fluxbox will jump to the appropriate workspace when this window is opened there\&. If not selected, the window will open in the background\&. .RE .PP \fBHead\fR: .RS 4 For xinerama users only, start this window on the current head (or screen)\&. .RE .PP \fBDimensions\fR: .RS 4 Record the current window height and width\&. .RE .PP \fBPosition\fR: .RS 4 Record the current X and Y coordinates of the window\&. .RE .PP \fBSticky\fR: .RS 4 Record whether the window is on all desktops, or not\&. .RE .PP \fBDecorations\fR: .RS 4 Record the current set of decorations (title bar, grips, tabs, etc) on the window\&. .RE .PP \fBShaded\fR: .RS 4 Record whether the window is shaded (or rolled\-up) or not\&. .RE .PP \fBMinimized\fR: .RS 4 Record whether the window is iconified (or minimized) or not\&. .RE .PP \fBMaximized\fR: .RS 4 Record whether the window is maximized or not\&. .RE .PP \fBFullscreen\fR: .RS 4 Record whether the window is in fullscreen mode or not\&. .RE .PP \fBTransparency\fR: .RS 4 Record the current \fBTransparency\fR settings\&. .RE .PP \fBLayer\fR: .RS 4 Record the current layer\&. .RE .PP \fBSave on close\fR: .RS 4 If selected, any of the above items which are also selected will be updated with the window\(cqs current values as it is closed\&. .RE .sp These are is covered in more detail in \fBfluxbox\-apps(5)\fR\&. .RE .PP \fBClose\fR .RS 4 Close the application softly\&. .RE .PP \fBKill\fR .RS 4 Kill the window\(cqs parent process, like \fBxkill(1)\fR\&. .RE .SS "Workspace Menu" .sp The workspace menu can be found, by default, by middle\-clicking on the background\&. This menu contains entries to explore the currently defined workspaces, windows, and add/remove/rename workspaces\&. .PP \fBIcons\fR .RS 4 This menu shows any iconified (or, minimized) windows\&. Clicking on a window in this menu will raise it on the current workspace\&. .RE .PP \fIWorkspaces\fR .RS 4 The next section provides one submenu per workspace\&. Middle\-clicking on a workspace name will take you to that workspace\&. The submenu contains a list of all open windows on that workspace\&. Clicking on a window name will take you to that window and raise it, changing the active workspace if necessary\&. .RE .PP \fBNew Workspace\fR .RS 4 This entry adds a new workspace to the end of the list of current workspaces\&. .RE .PP \fBEdit current workspace name\fR .RS 4 Pops up a dialog to enter a new name for the current workspace\&. .RE .PP \fBRemove Last\fR .RS 4 Remove the last workspace in the list\&. Any windows currently open there will be sent to the next\-to\-last workspace\&. .RE .SH "TOOLBAR" .sp The toolbar is a small area to display information like a clock, workspace name, a system tray or a taskbar (iconbar) that can contain the running programs\&. The color, look, font etc\&. is defined in the \fBSTYLE\fR\&. .sp The tools in the toolbar can be enabled/disabled in the \(oqinit\(cq file with the \fBsession\&.screen0\&.toolbar\&.tools\fR resource\&. See the \fBRESOURCES\fR section for details on how to alter this value\&. .sp The possible tools are: .PP \fBClock\fR .RS 4 This will show an area to display a clock and the date according to the format specification listed in "man strtftime" .RE .PP \fBIconbar\fR .RS 4 This is the area that contains all windows (all running applications, all minimized windows or maybe no window, all depending on the Toolbar Settings)\&. .RE .PP \fBSystemtray\fR .RS 4 The Systemtray can hold applications that are made to use it\&. .RE .PP \fBWorkspaceName\fR .RS 4 This displays the name of the current workspace\&. .RE .PP \fBPrevWorkspace\fR .RS 4 This displays an arrow that allows one to switch to the workspace left of the current one\&. .RE .PP \fBNextWorkspace\fR .RS 4 This displays an arrow that allows one to switch to the workspace right of the current one\&. .RE .PP \fBPrevWindow\fR .RS 4 This displays an arrow that switches focus to the previous visible window on the current workspace\&. .RE .PP \fBNextWindow\fR .RS 4 This displays an arrow that switches focus to the next visible window on the current workspace\&. .RE .sp Other aspects of the toolbar can be configured in two ways: through the toolbar menu, which is accessible in the Configuration part of the RootMenu or with a right click on the edge the toolbar, or by editing the init file (see the \fBRESOURCES\fR section for more information about that)\&. .SS "Toolbar Menu" .sp This menu can be opened by right\-clicking on the toolbar (though not on a window\(cqs name in the iconbar), or from the \fBConfiguration Menu\fR\&. .sp All changes take effect immediately\&. Here are the settings: .PP \fBVisible\fR .RS 4 Sets the toolbar either to visible or invisible\&. .RE .PP \fBAuto hide\fR .RS 4 If this is enabled the toolbar will disappear after a defined time when the mouse pointer leaves the toolbar\&. It will slide in when the cursor hits the remaining edge of the toolbar\&. See the \fBsession\&.autoRaiseDelay\fR resource for the delay time\&. .RE .PP \fBToolbar width percentage\fR .RS 4 Sets the width of the toolbar in a percentage of your total screen size\&. Use the left mouse button to decrease and the right mouse\-button to increase the value\&. The value can be from 1\-100\&. .RE .PP \fBMaximize Over\fR .RS 4 Enabling this option will allow windows to maximize over the toolbar\&. With this switched on they will only expand to the edge of the bar\&. This option may be overridden by the \(lqFull Maximization\(rq from the \fBConfiguration Menu\fR\&. If that option is enabled, this option will have no effect\&.\&. .RE .PP \fBLayer\&...\fR .RS 4 This sets the layer on which the toolbar is set\&. With this you can set the toolbar to "Always on top"\&. .RE .PP \fBPlacement\fR .RS 4 Sets the toolbar to any edge of the screen, either centered or aligned with a corner\&. .RE .PP \fBAlpha\fR .RS 4 This sets the alpha value for the toolbar\&. Use the left mouse button to decrease and the right mouse button to increase the value\&. 0 is invisible, 255 is not transparent at all\&. .RE .PP \fBIconbar Mode\fR .RS 4 Specifies various modes of the iconbar\(cqs operation\&. .sp The first section outlines what types of windows will be shown in the iconbar: .PP \fBNone\fR: .RS 4 Will not show any windows .RE .PP \fBIcons\fR: .RS 4 Shows windows from all workspaces that are iconified (or, minimized) .RE .PP \fBNoIcons\fR: .RS 4 Shows windows from all workspaces that are not iconified .RE .PP \fBWorkspaceIcons\fR: .RS 4 Shows windows from the current workspace that are iconified .RE .PP \fBWorkspaceNoIcons\fR: .RS 4 Shows windows from the current workspace that are not iconified .RE .PP \fBWorkspace\fR: .RS 4 Shows all windows (iconified or not) from the current workspace .RE .PP \fBAll Windows\fR: .RS 4 Shows all windows (iconified or not) from all workspaces .RE .sp The next section specifies the alignment of the window names shown in the iconbar\&. The width is specified via the \fBsession\&.screen0\&.iconbar\&.iconWidth\fR resource: .PP \fBLeft\fR: .RS 4 All icons will be left\-aligned with the width set in the \(oqinit\(cq file .RE .PP \fBRelative\fR: .RS 4 All icons will be sized evenly to fill the iconbar completely .RE .PP \fBRight\fR: .RS 4 All icons will be right\-aligned with the width set in the \(oqinit\(cq file .RE .sp The last option in this submenu is: .PP \fBShow Pictures\fR: .RS 4 If enabled the iconbar will show the application\(cqs icon (if provided by the application) .RE .RE .PP \fBClock\fR .RS 4 Lets you switch between the 00:00am \- 11:59pm and 00:00 \- 23:59 notation .RE .PP \fBEdit Clock Format\fR .RS 4 clicking this entry will pop up a dialog window in which the clock format can be set according to \fIman strftime\fR (or \fIman date\fR)\&. .RE .SH "FOCUS MODEL" .sp The Focus Model defines how windows gain focus (i\&.e\&. become the active window, which receives keyboard and mouse events)\&. The focus model can be changed in the configuration menu (usually located under \fIfluxbox menu\fR in the Root Menu\&. .sp There are two main aspects of the focus model: how windows gain focus and how tabs gain focus\&. Each of these has two options: focus follows mouse and click to focus\&. Focus follows mouse means that windows will gain focus when the mouse hovers over them\&. Click to focus means that windows will gain focus when the mouse clicks on them\&. .sp Thus, there are four main options when choosing a focus model\&. You should choose one of the first two and one of the last two\&. They are: .PP \fBClick To Focus\fR .RS 4 Click to focus windows\&. .RE .PP \fBMouse Focus\fR .RS 4 Window focus follows mouse\&. .RE .PP \fBClickTabFocus\fR .RS 4 Click to focus tabs\&. .RE .PP \fBMouseTabFocus\fR .RS 4 Tab focus follows mouse\&. .RE .sp There are three more settings in the \(lqFocus Model\(rq menu: .PP \fBFocus New Windows\fR .RS 4 If enabled, a new window will grab X focus as soon as it is opened\&. .PP \fBAuto Raise\fR .RS 4 If enabled, focusing on a new window will automatically raise that window above all others within its layer\&. When disabled, you must explicitly raise a focused window using the window menu, keybinding, or \fBClick Raises\fR\&. .RE .PP \fBClick Raises\fR .RS 4 If enabled, clicking anywhere on a window will raise it above all others within its layer\&. .RE .RE .SH "TAB OPTIONS" .sp This section of fluxbox configuration menu lets you configure many features of tabs\&. Inside of it there are three main options: .PP \fBPlacement\fR .RS 4 You can choose where the external tabs will be positioned relative to the window\&. For these options to work, \fITabs in Titlebar\fR must be off\&. .RE .PP \fBTabs in Titlebar\fR .RS 4 When this option is on, tabs are fixed in window titlebar and the width varies according to the amount of windows grouped\&. .RE .PP \fBMaximize Over\fR .RS 4 When this option is on, maximizing a window will disregard the size and location of external tabs, which means they may be pushed out of the screen entirely\&. .RE .PP \fBExternal Tab Width\fR .RS 4 This specifies in pixels the width of external tabs\&. .RE .SH "STYLES" .sp fluxbox enables you to use specialized files that contain \fBX(1)\fR resources to specify colors, textures, pixmaps and fonts, and thus the overall look of your window borders, menus and the toolbar\&. .sp The default installation of fluxbox provides some of these style files\&. See \fBfluxbox\-style(5)\fR to accommodate the growing number of style components\&. .SS "Style Overlay" .sp In addition to the style file, the overlay file, whose location is specified by \fBsession\&.screen0\&.styleOverlay\fR (default: \fB~/\&.fluxbox/overlay\fR) can be used to set style resources that override all styles\&. For more information about which parts of fluxbox can be controlled by the overlay file, see \fBfluxbox\-style(5)\fR\&. .SH "THE SLIT" .sp The slit is a special fluxbox window frame that can contain dockable applications, such as \(lqbbtools\(rq or \(lqwindow maker dockapps\(rq\&. .sp When applications are run in the slit they have no window borders of their own; instead they are framed in the slit, and they are always visible in the current workspace\&. .sp Most dockable applications use the \-w option to run in the slit\&. For example, you could put in your \fB~/\&.fluxbox/startup\fR: .sp .if n \{\ .RS 4 .\} .nf bbmail \-w & bbpager \-w & wmdrawer & exec fluxbox .fi .if n \{\ .RE .\} .sp To use the slit you must have it compiled into fluxbox\&. This is the default setting\&. .SS "Slit Menu" .sp This menu can be opened by right\-clicking on the slit (though not on an application running within the slit), or from the \fBConfiguration Menu\fR\&. .sp All changes take effect immediately\&. Here are the settings: .PP \fBPlacement\fR .RS 4 This lets you set the position of the slit\&. .RE .PP \fBLayer\fR .RS 4 See \fBLAYERS\fR for details on the layer order\&. .RE .PP \fBAuto hide\fR .RS 4 If this is enabled the slit will disappear after a defined time when the mouse pointer leaves the slit\&. It will slide in when the cursor hits the remaining edge of the slit\&. See the \fBsession\&.autoRaiseDelay\fR resource for the delay time\&. .RE .PP \fBMaximize Over\fR .RS 4 Enabling this option will allow windows to maximizing over the slit\&. With this switched off they will only expand to the edge of the slit\&. This option may be overridden by the \(lqFull Maximization\(rq from the \fBConfiguration Menu\fR\&. If that option is enabled, this option will have no effect\&.\&. .RE .PP \fBAlpha\fR .RS 4 This sets the alpha value for the slit\&. Use the left mouse button to decrease and the right mouse button to increase the value\&. 0 is invisible, 255 is not transparent at all\&. .RE .PP \fBClients\fR .RS 4 This submenu lets you reorder the the applications running in the slit\&. You are able to hide apps from the slit by unselecting them in the list showing\&. This will not kill the app\&. You can make them re\-appear by selecting them in the list\&. The "Save SlitList" option saves the new order to you slitlist located in \fB~/\&.fluxbox/slitlist\fR\&. See the next section for details\&. .RE .SS "Slitlist File" .sp fluxbox\(cqs slitlist file is available for those that use dockapps in the slit\&. This file helps fluxbox keep track of the \fBorder\fR of the dockapps when in the slit\&. The file is generally located at \fB~/\&.fluxbox/slitlist\fR\&. .sp A simple procedure for getting the slit sequences the way you like it is: 1\&. Run fluxbox with no pre\-loaded dockapps 2\&. Run dockapps individually in the order you want them 3\&. Add dockapps to your \fBstartfluxbox(1)\fR script .sp This sequence will be saved by default to \fB~/\&.fluxbox/slitlist\fR and will be remembered for future instances of fluxbox\&. .sp Users are free to manually edit the slitlist file\&. It is a simple list of window names, as given by \fBxprop(1)\fR, one per dockapp\&. Similar to the init file it should not be edited while fluxbox is running\&. Otherwise changes may get overwritten\&. .sp The user also has the option of choosing a different path for the slitlist file, by setting the \fBsession\&.session0\&.slitlistFile\fR resource\&. .SH "LAYERS" .sp Layers affect the way that windows will overlap each other on the screen\&. Windows on a higher layer will always appear above those on a lower one, whether they are focused or not\&. Fluxbox uses 13 layers, starting from 1 (highest)\&. .sp There are two ways to assign a window to a different layer\&. When the window is open, you may select the layer in the \(oqLayer \&...\(cq submenu of the window menu\&. The menu gives six choices for the layer, which fluxbox manages by name\&. The names are (from highest to lowest layer): .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} 2 \- Above Dock .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} 4 \- Dock .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} 6 \- Top .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} 8 \- Normal .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} 10 \- Bottom .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} 12 \- Desktop .RE .sp The other way to set the layer for a window is through the \(oqapps\(cq file\&. This method is described in \fBfluxbox\-apps(5)\fR\&. .SH "RESOURCES" .sp Usually the \fB~/\&.fluxbox/init\fR resource file is created and maintained by fluxbox itself\&. You can use the \fBConfigure Menu\fR, mentioned above, to set most of these options\&. However, we\(cqll cover all of the resource options that are available to the user\&. If you edit this file while fluxbox is running, you must \(lqreconfigure\(rq to reload the resource options\&. .sp When running fluxbox in a multiple\-screen environment the screen0 key can also be screen1, screen2, to customize the behavior of fluxbox on each desktop accordingly\&. Here are the resources that are currently available: .PP \fBsession\&.screen0\&.window\&.{focus|unfocus}\&.alpha\fR: \fIinteger\fR .RS 4 These resources are available to the user to set different levels of transparency for different components of fluxbox\&. Each one accepts a value between 0\-255, 255 being opaque and 0 being completely transparent\&. .sp Default: \fB255\fR .RE .PP \fBsession\&.screen0\&.{slit|toolbar}\&.autoHide\fR: \fIboolean\fR .RS 4 The autoHide resources allow the user to set the behavior of the toolbar and slit\&. This behavior can be that they disappear when they are not being used actively by the user, or they remain visible at all times\&. .sp Default: \fBFalse\fR .RE .PP \fBsession\&.screen0\&.{slit|toolbar}\&.layer\fR: \fIlayer\fR .RS 4 With these two resources, you can set the layer you want the toolbar and the slit to appear on\&. Please read the LAYER section for more information\&. .sp Default: \fBDock\fR .RE .PP \fBsession\&.screen0\&.{slit|toolbar}\&.placement\fR: \fIplacement\fR .RS 4 These allow users to place the slit and toolbar where they like\&. .PP Possible options are: .RS 4 \fBBottomLeft\fR \fBBottomCenter\fR \fBBottomRight\fR \fBLeftBottom\fR \fBLeftCenter\fR \fBLeftTop\fR \fBRightBottom\fR \fBRightCenter\fR \fBRightTop\fR \fBTopLeft\fR \fBTopCenter\fR \fBTopRight\fR .RE .sp Slit default: \fBRightBottom\fR .sp Toolbar default: \fBBottomCenter\fR .RE .PP \fBsession\&.screen0\&.{slit|toolbar|tabs}\&.maxOver\fR: \fIboolean\fR .RS 4 Setting these to True will allow application windows to maximize over the complete screen\&. Setting to False allows the slit, toolbar, and external tabs to hold their territory and will always be visible when an application is maximized\&. .sp Default: \fBFalse\fR .RE .PP \fBsession\&.screen0\&.toolbar\&.height\fR: \fIinteger\fR .RS 4 Set the height of the toolbar\&. If the value is set to 0, the style file will gain control over the toolbar height\&. It is possible to set a fixed height by changing this value to something greater than 0\&. .sp Default: \fB0\fR .RE .PP \fBsession\&.screen0\&.toolbar\&.visible\fR: \fIboolean\fR .RS 4 The user can set whether they want to have a toolbar on screen at all\&. Setting to False removes the toolbar from the screen\&. .sp Default: \fBTrue\fR .RE .PP \fBsession\&.screen0\&.toolbar\&.widthPercent\fR: \fIinteger\fR .RS 4 This resource sets the width percentage of the toolbar on the screen\&. .sp Default: \fB100\fR .RE .PP \fBsession\&.screen0\&.toolbar\&.tools\fR: \fItools\fR .RS 4 This resource specifies the tools plugged into the toolbar\&. Read the TOOLBAR section in this manual for a description of each of these\&. They may be specified in any order, delimited by the \fB,\fR character\&. They will appear in the order given\&. .PP Possible tools: .RS 4 \fBclock\fR \fBiconbar\fR \fBnextwindow\fR \fBprevwindow\fR \fBnextworkspace\fR \fBprevworkspace\fR \fBsystemtray\fR \fBworkspacename\fR .RE .PP Default: .RS 4 \fBworkspacename, prevworkspace, nextworkspace, iconbar, prevwindow, nextwindow, systemtray, clock\fR .RE .RE .PP \fBsession\&.screen0\&.{slit|toolbar}\&.onhead\fR: \fIinteger\fR .RS 4 For those that use xinerama, users can set this value to the number of the head where they would like to see the slit and toolbar, starting from 1\&. Setting this to 0 will ignore xinerama information\&. .sp Default: \fB0\fR for slit, \fB1\fR for toolbar .RE .PP \fBsession\&.screen0\&.iconbar\&.mode\fR: \fIpattern\fR .RS 4 This determines which windows will be displayed in the iconbar\&. Any window pattern is acceptable\&. See the section \fBCLIENT PATTERNS\fR in either \fBfluxbox\-keys(5)\fR or \fBfluxbox\-apps(5)\fR for details\&. .sp Default: \fB{static groups} (workspace)\fR .RE .PP \fBsession\&.screen0\&.iconbar\&.usePixmap\fR: \fIboolean\fR .RS 4 This is also set in the Iconbar Mode menu\&. When set to True, this will show the native icon of applications\&. .sp Default: \fBTrue\fR .RE .PP \fBsession\&.screen0\&.iconbar\&.iconTextPadding\fR: \fIinteger\fR .RS 4 This specifies the space between the window title and the edge of the button\&. .sp Default: \fB10\fR .RE .PP \fBsession\&.screen0\&.iconbar\&.alignment\fR: \fIposition\fR .RS 4 This value should be changed in the Iconbar Mode menu\&. .PP Available options: .RS 4 .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBLeft\fR: Fixed width, aligned left .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBRelative\fR: Width varies to fill the iconbar .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBRight\fR: Fixed width, aligned right .RE .RE .sp Default: \fBRelative\fR .RE .PP \fBsession\&.screen0\&.iconbar\&.iconWidth\fR: \fIinteger\fR .RS 4 Used to specify the iconbar button width for Left/Right alignment\&. .sp Default: \fB128\fR .RE .PP \fBsession\&.screen0\&.strftimeFormat\fR: \fIdate\fR .RS 4 This adjusts the way the current time is displayed in the toolbar\&. The \fBstrftime(3)\fR format is used\&. .sp Default: \fB%k:%M\fR .RE .PP \fBsession\&.screen0\&.tabs\&.intitlebar\fR: \fIboolean\fR .RS 4 This specifies whether tabs should be embedded in the titlebar or placed outside the window\&. .sp Default: \fBTrue\fR .RE .PP \fBsession\&.screen0\&.tab\&.placement\fR: \fIplacement\fR .RS 4 This specifies where external tabs will appear on the window\&. It has the same possible values as \fBsesion\&.screen0\&.{slit|toolbar}\&.placement\fR\&. .sp Default: \fBTopLeft\fR .RE .PP \fBsession\&.screen0\&.tab\&.width\fR: \fIinteger\fR .RS 4 This specifies the width of external tabs in pixels\&. .sp Default: \fB64\fR .RE .PP \fBsession\&.screen0\&.focusModel\fR: \fBClickToFocus|MouseFocus|StrictMouseFocus\fR .RS 4 This controls how windows gain focus via the mouse\&. With \(oqClickToFocus\(cq, the user must click on the window\&. With \(oqMouseFocus\(cq, windows gain focus whenever the mouse moves over them, but only when the mouse is moving\&. With \(oqStrictMouseFocus\(cq, windows gain focus whenever the mouse enters any exposed area, even if this is due to layer changes, window movement, changing desktops, closing windows, etc\&. .sp Default: \fBClickToFocus\fR .RE .PP \fBsession\&.screen0\&.autoRaise\fR: \fIboolean\fR .RS 4 When True, this setting automatically raises any window that gains focus\&. .sp Default: \fBTrue\fR .RE .PP \fBsession\&.autoRaiseDelay\fR: \fIinteger\fR .RS 4 Adjusts the delay (in milli\-sec) before focused windows will raise when using the Autoraise option\&. .sp Default: \fB250\fR .RE .PP \fBsession\&.screen0\&.clickRaises\fR: \fIboolean\fR .RS 4 This setting allows a user to click anywhere on a window to bring it on top of other windows\&. Otherwise, only the titlebar will work\&. .sp Default: \fBTrue\fR .RE .PP \fBsession\&.screen0\&.workspacewarping\fR: \fIboolean\fR .RS 4 This setting enables a user to change workspaces by dragging a window across the edge of the screen\&. .sp Default: \fBTrue\fR .RE .PP \fBsession\&.screen0\&.showwindowposition\fR: \fIboolean\fR .RS 4 Setting this resource to True shows the user, in a little window, the exact position of the application window while the user is dragging it\&. Allows a precise placement of windows on a screen\&. .sp Default: \fBFalse\fR .RE .PP \fBsession\&.screen0\&.defaultDeco\fR: \fIstring\fR .RS 4 This specifies the default window decorations, according to the same options available to the \fB[Deco]\fR option in the \(oqapps\(cq file, described in \fBfluxbox\-apps(5)\fR\&. .sp Default: \fBNORMAL\fR .RE .PP \fBsession\&.screen0\&.menuDelay\fR: \fIinteger\fR .RS 4 This sets the delay in milliseconds for submenus to open when you hover over them or to close when you hover over another item\&. .sp Default: \fB200\fR .RE .PP \fBsession\&.screen0\&.focusNewWindows\fR: \fIboolean\fR .RS 4 This sets whether or not new windows will become focused automatically\&. .sp Default: \fBTrue\fR .RE .PP \fBsession\&.screen0\&.workspaceNames\fR: \fInames\fR .RS 4 Here is where the user can name their workspaces, in a comma\-delimited list\&. However it is recommended to use the tool available in the Workspace Menu to set these\&. .sp Default: \fBWorkspace 1, Workspace 2, Workspace 3, Workspace 4\fR .RE .PP \fBsession\&.screen0\&.edgeSnapThreshold\fR: \fIinteger\fR .RS 4 When moving a window across your screen, fluxbox is able to have it \(oqsnap\(cq to the edges of the screen and other windows for easy placement\&. This variable tells fluxbox the distance (in pixels) at which the window will jump to the edge\&. .sp Default: \fB10\fR .RE .PP \fBsession\&.screen0\&.windowPlacement\fR: \fIstrategy\fR .RS 4 This resource specifies where to place new windows when not otherwise specified (by the program or the \(oqapps\(cq file, for example)\&. .PP Available strategies: .RS 4 .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} RowSmartPlacement: tries to place windows in rows without overlapping .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} ColSmartPlacement: tries to place windows in columns without overlapping .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} CascadePlacement: places windows below the titlebar of the previous one .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} UnderMousePlacement: places new windows underneath the mouse .RE .RE .sp Default: \fBRowSmartPlacement\fR .RE .PP \fBsession\&.screen0\&.rowPlacementDirection\fR: \fBLeftToRight\fR|\fBRightToLeft\fR .RS 4 These settings control the direction in which windows are tiled using the RowSmartPlacement and ColSmartPlacement strategies described above\&. .sp Default: \fBLeftToRight\fR .RE .PP \fBsession\&.screen0\&.colPlacementDirection\fR: \fBTopToBottom\fR|\fBBottomToTop\fR .RS 4 These settings control the direction in which windows are tiled using the RowSmartPlacement and ColSmartPlacement strategies described above\&. .sp Default: \fBTopToBottom\fR .RE .PP \fBsession\&.screen0\&.fullMaximization\fR: \fIboolean\fR .RS 4 If this setting is enabled, windows will maximize over the toolbar, slit, and any other window that creates a strut, no matter what their individual settings are\&. .sp Default: \fBFalse\fR .RE .PP \fBsession\&.screen0\&.opaqueMove\fR: \fIboolean\fR .RS 4 When moving a window, setting this to True will draw the window contents as it moves (this is nasty on slow systems)\&. If False, it will only draw an outline of the window border\&. .sp Default: \fBTrue\fR .RE .PP \fBsession\&.screen0\&.workspaces\fR: \fIinteger\fR .RS 4 Set this to the number of workspaces the users wants\&. .sp Default: \fB4\fR .RE .PP \fBsession\&.cacheLife\fR: \fIminutes\fR .RS 4 This tells fluxbox how long unused pixmaps may stay in the X server\(cqs memory\&. .sp Default: \fB5\fR .RE .PP \fBsession\&.cacheMax\fR: \fIKbSize\fR .RS 4 This tells fluxbox how much memory it may use to store cached pixmaps on the X server\&. If your machine runs short of memory, you may lower this value\&. .sp Default: \fB200\fR .RE .PP \fBsession\&.colorsPerChannel\fR: \fIinteger\fR .RS 4 This tells fluxbox how many colors to take from the X server on pseudo\-color displays\&. A channel would be red, green, or blue\&. fluxbox will allocate this variable ^ 3 and make them always available\&. Value must be between 2\-6\&. When you run fluxbox on an 8bpp display, you must set this resource to 4\&. .sp Default: \fB4\fR .RE .PP \fBsession\&.doubleClickInterval\fR: \fIinteger\fR .RS 4 Adjust the delay in milliseconds between mouse clicks for fluxbox to consider a double click\&. .sp Default: \fB250\fR .RE .PP \fBsession\&.forcePseudoTransparency\fR: \fIboolean\fR .RS 4 If you have Xorg\(cqs composite extension enabled, this setting will force the menu, windows, toolbar, and slit to use pseudo\-transparency instead of true transparency\&. .sp Default: \fBFalse\fR .RE .PP \fBsession\&.ignoreBorder\fR: \fIboolean\fR .RS 4 This configures the ability to move windows by dragging the border\&. .sp Default: \fBFalse\fR .RE .PP \fBsession\&.tabPadding\fR: \fIinteger\fR .RS 4 This specifies the spacing between tabs\&. .sp Default: \fB0\fR .RE .PP \fBsession\&.tabsAttachArea\fR: \fBWindow|Titlebar\fR .RS 4 With this set to \(oqWindow\(cq, windows may be grouped by dragging one tab with the middle mouse button and dropping it anywhere on another window\&. With \(oqTitlebar\(cq, the user must drop the tab on the target window\(cqs titlebar\&. .sp Default: \fBWindow\fR .RE .PP \fBsession\&.titlebar\&.{left|right}\fR: \fIbuttons\fR .RS 4 The buttons or icons to place in the titlebar of decorated windows\&. You may specify any number, space\-delimited\&. .PP The available options are: .RS 4 \fBClose\fR \fBMaximize\fR \fBMenuIcon\fR \fBMinimize\fR \fBShade\fR \fBStick\fR \fBLHalf\fR \fBRHalf\fR .RE .sp Default left: \fBStick\fR .sp Default right: \fBShade Minimize Maximize Close\fR .sp \fILHalf\fR and \fIRHalf\fR are buttons to quickly place a window into the left and right half of the current monitor\&. .RE .sp All of the \fIlocation\fR resources following require a pathname to their specific files\&. This is where you can specify different files\&. Most of the defaults will be located in the user\(cqs \fB~/\&.fluxbox\fR directory\&. .PP \fBsession\&.appsFile\fR: \fIlocation\fR .RS 4 Location of persistent application settings, or the \(oqapps\(cq file\&. See the \fBRemember\&...\fR item in the \fBWindow Menu\fR section above or \fBfluxbox\-apps(5)\fR for details\&. .RE .PP \fBsession\&.groupFile\fR: \fIlocation\fR .RS 4 Deprecated, auto\-grouping is now done in the \(oqapps\(cq file, see \fBfluxbox\-apps(5)\fR for details\&. .RE .PP \fBsession\&.keyFile\fR: \fIlocation\fR .RS 4 Location of the keyboard mapping settings, or the \(oqkeys\(cq file\&. See \fBfluxbox\-keys(5)\fR for details\&. .RE .PP \fBsession\&.menuFile\fR: \fIlocation\fR .RS 4 Location of the Root Menu file\&. See \fBfluxbox\-menu(5)\fR for details\&. .RE .PP \fBsession\&.slitlistFile\fR: \fIlocation\fR .RS 4 Location of the file used to remember slit client ordering\&. See \fBSLIT\fR above for details\&. .RE .PP \fBsession\&.styleFile\fR: \fIlocation\fR .RS 4 Location of the currently selected style\&. See \fBfluxbox\-style(5)\fR for details\&. .RE .PP \fBsession\&.styleOverlay\fR: \fIlocation\fR .RS 4 Location of the style overlay file\&. See \fBfluxbox\-style(5)\fR for details\&. .RE .PP \fBsession\&.screen0\&.windowMenu\fR: \fIlocation\fR .RS 4 This optionally specifies the location of a user\-defined window menu\&. If left blank, it will use \fB~/\&.fluxbox/windowmenu\fR\&. .sp Default: \fBblank\fR .RE .SH "ENVIRONMENT" .PP \fBHOME\fR .RS 4 fluxbox uses \fB$HOME\fR to find the \&.fluxbox/init file and to resolve style file and \-directory names\&. .RE .PP \fBDISPLAY\fR .RS 4 When no other display was given on the command line, fluxbox will start on the display specified by this variable\&. .RE .sp fluxbox can also take advantage of other environment variables if they are set before fluxbox is started\&. For example, if $TERM is set, then it will be available whenever fluxbox uses the shell, such as the \(oqkeys\(cq file \fBExecCommand\fR or the root menu\(cqs \fB[exec]\fR tag\&. See \fBfluxbox\-keys(5)\fR and \fBfluxbox\-menu(5)\fR for details\&. .sp The \(oqkeys\(cq file also provides two commands that can alter the current environment of fluxbox: \fBSetEnv\fR and \fBExport\fR\&. Any changes made by these commands will also affect the environment as seen by fluxbox and all child processes started after that point\&. See \fBfluxbox\-keys(5)\fR for details\&. .sp For more information about environment variables in general, see your shell\(cqs manual\&. .SH "SIGNALS" .sp fluxbox responds to the following signals: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} SIGHUP fluxbox loads the configuration\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} SIGUSR1 Forces reloading of configuration\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} SIGUSR2 Forces reloading of menu file\&. .RE .SH "AUTHORS" .sp fluxbox is written and maintained by Henrik Kinnunen , Simon Bowden , Mathias Gumz , and Mark Tiefenbruck , with contributions and patches merged from many individuals around the world\&. .sp Blackbox was written and maintained by Brad Hughes and Jeff Raven \&. .sp This manpage is the combined work of: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Jim Ramsay (>fluxbox\-1\&.0\&.0) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Curt Micol (>fluxbox\-0\&.9\&.11) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Tobias Klausmann (\(lafluxbox\-0\&.9\&.11) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Grubert (fluxbox) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Matthew Hawkins (blackbox) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Wilbert Berendsen (blackbox) .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Numerous other languages could be available if someone jumps in\&. .RE .SH "ONLINE DOCUMENTATION" .sp The Official fluxbox website: \m[blue]\fBhttp://www\&.fluxbox\&.org\fR\m[] .sp The Official fluxbox wiki: \m[blue]\fBhttp://www\&.fluxbox\-wiki\&.org\fR\m[] .sp Many compatible themes: \m[blue]\fBhttp://tenr\&.de\fR\m[] .SH "BUGS" .sp If you find any bugs, please visit the #fluxbox irc channel on irc\&.freenode\&.net or submit them to the bug tracker at \m[blue]\fBhttp://sf\&.net/projects/fluxbox\fR\m[] \&. Or you may subscribe to one of the mailinglists\&. More information can be found on the official website\&. .SH "SEE ALSO" .sp fluxbox\-apps(5) fluxbox\-keys(5) fluxbox\-style(5) fluxbox\-menu(5) fluxbox\-remote(1) fbsetroot(1) fbsetbg(1) fbrun(1) startfluxbox(1) .SH "AUTHOR" .PP \fBHenrik Kinnunen\fR <\&fluxgen@fluxbox\&.org\&> .RS 4 Author. .RE fluxbox-1.3.5/doc/PaxHeaders.25974/CODESTYLE0000644000175000017500000000013212106662425016277 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749874.547812473 30 ctime=1360750008.975811613 fluxbox-1.3.5/doc/CODESTYLE0000644000175000017500000000740112106662425014330 0ustar00mgmg00000000000000Use 4 space indent Spaces between "," ex: 1, 2, a, 4 if/else-statements: An else clause is joined to any preceding close curly brace that is part of its if. if (....) { .... } else { .... } if the line needs to be splited up, right after an if-statement use { and }, so its clear when the if-statement ends. ex: if (...) { function(....., ......, .... ); } This is ok: if (...) shortline(...); while-statement: while (...) { .... } for-statement: for (init; condition; update) { .... } for (longinit; longcondition; longupdate ) { .... } alt form: init; for (; condition; update) { .... } do-statement: do { .... } while (...); switch-statement: should always have a default value. Enum values is an exception, they should not have a default: , when you add new values to an enum you might forget to add them to switch statement. switch (...) { case ...: ...; break; case ...: { ...; } break; case ...: ...; default: ....; break; } Include guards: For files with namespace: #ifndef NAMESPACE_FILENAME_HH #define NAMESPACE_FILENAME_HH .... #endif //NAMESPACE_FILENAME_HH Without namespace: #ifndef FILENAME_HH #define FILENAME_HH .... #endif //FILENAME_HH preprocessors: The # of all preprocessor commands must always be in column 1, and never use indentation for preprocessor directives They should always have a // PREPROCESSOR to mark where they end #ifdef DEBUG ... ... #endif //DEBUG Don't use preprocessors for constants or macro-functions, they can be cryptic and sometime make it hard to debug. functions: The name starts with a lowercase and then a uppercase for name separation: void functionWithAName(...) { ...; } Use Javadoc style for function description (see www.doxygen.org) Function comments: /** This do that and that @return this on success else this on failure. TODO: if there is something to do. */ void functionDoes(...) { } Class: Order: public, protected and then private Class names always starts with a big letter. Class data members are prefixed by m_ , static data members are prefixed with s_ . Class member function will be organized according to creator, manipulator and accessors categories. class Classname:public AnotherClass { public: //1. public enums, structs //2. constructors and destructor //3. manipulators //4. accessors protected: //1. enums, structs //2. functions //3. variables private: //1. enums, structs //2. functions //3. variables }; struct follows the class style. namespace: namespace TheName { ...; ...; }; //end namespace TheName Don't use "using namespace thenamespace;" in header-file We don't want to force the other files, that include the file, a namespace. try/catch-statement: try { ....; } catch (...) { ....; } Variables: Avoid variables that contain mixtures of the numbers 0 & l and the letters O and 1, because they are hard to tell apart. Having a type name and a variable differing in only in case (such as: String string;) is permitted, but discouraged. Use lowercase for variables and use _ to separate names, ex: int number_of_screens; int num_colors; All constants must be in Upper case letters. enums must be in uppercase letters and not in file scope: enum {WHITE, RED, BLUE}; Other: if (strcmp(...) == 0) //good if (!strcmp()) //bad Don't create free-functions, encapsulate them in a namespace or a class and name filenames so it's clear what they hold so it's easier to find functions, classes and other stuff. ChangeLog format: *year/month/day: * whats changed (who changed it) which file ex: *02/01/01: * Fixed bug workspace change (TheDude) Workspace.cc fluxbox-1.3.5/doc/PaxHeaders.25974/startfluxbox.1.in0000644000175000017500000000013212106662425020255 xustar000000000000000030 mtime=1360749845.883812656 30 atime=1360749874.547812473 30 ctime=1360750008.975811613 fluxbox-1.3.5/doc/startfluxbox.1.in0000644000175000017500000000653112106662425016311 0ustar00mgmg00000000000000'\" t .\" Title: startfluxbox .\" Author: Jim Ramsay .\" Generator: DocBook XSL Stylesheets v1.76.1 .\" Date: 13 February 2013 .\" Manual: Fluxbox Manual .\" Source: startfluxbox.txt .\" Language: English .\" .TH "STARTFLUXBOX" "1" "13 February 2013" "startfluxbox\&.txt" "Fluxbox Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" startfluxbox \- start a fluxbox session .SH "SYNOPSIS" .sp \fBstartfluxbox\fR .SH "DESCRIPTION" .sp \fBstartfluxbox\fR is a script which runs the file \fB~/\&.fluxbox/startup\fR If it doesn\(cqt exist it will be generated\&. .sp \fBstartfluxbox\fR should be started from your \fB~/\&.xinitrc\fR if you use startx, or \fB~/\&.xsession\fR if you run a display manager, like xdm\&. .SH "FILES" .PP \fB~/\&.fluxbox/startup\fR .RS 4 This file contains all commands that should be executed before fluxbox is started\&. The initial file contains helpful comments for beginners\&. It also starts fluxbox\&. .RE .SH "EXAMPLES" .sp The default \fB~/\&.fluxbox/startup\fR is as follows: .sp .if n \{\ .RS 4 .\} .nf #!/bin/sh # # fluxbox startup\-script: # # Lines starting with a \*(Aq#\*(Aq are ignored\&. # Change your keymap: xmodmap "$HOME/\&.Xmodmap" # Applications you want to run with fluxbox\&. # MAKE SURE THAT APPS THAT KEEP RUNNING HAVE AN \*(Aq\*(Aq&\*(Aq\*(Aq AT THE END\&. # # unclutter \-idle 2 & # wmnd & # wmsmixer \-w & # idesk & # And last but not least we start fluxbox\&. # Because it is the last app you have to run it with \*(Aq\*(Aqexec\*(Aq\*(Aq before it\&. exec fluxbox # or if you want to keep a log: # exec fluxbox \-log "$fluxdir/log" .fi .if n \{\ .RE .\} .sp If you need to start applications after fluxbox, you can change the \fBexec fluxbox\fR line above to something like this: .sp .if n \{\ .RS 4 .\} .nf exec fluxbox & fbpid=$! sleep 1 { xsetroot \-cursor_name left_ptr \-fg white \-bg black & ipager & gkrellm2 & } & wait $fbpid .fi .if n \{\ .RE .\} .sp So xsetroot, ipager, and gkrellm2 will all be started after fluxbox, after giving fluxbox 1 second to startup\&. .sp For more details on what else you can do in this script, see \fBsh(1)\fR, or the documentation for your shell\&. .SH "AUTHORS" .sp The author of \fBstartfluxbox(1)\fR is Han Boetes .sp This manpage was converted to asciidoc format by Jim Ramsay for fluxbox\-1\&.1\&.2 .SH "SEE ALSO" .sp fluxbox(1) .SH "AUTHOR" .PP \fBJim Ramsay\fR <\&i\&.am@jimramsay\&.com\&> .RS 4 Author. .RE fluxbox-1.3.5/doc/PaxHeaders.25974/Makefile.in0000644000175000017500000000013212106662603017064 xustar000000000000000030 mtime=1360749955.603811954 30 atime=1360750003.399811648 30 ctime=1360750008.975811613 fluxbox-1.3.5/doc/Makefile.in0000644000175000017500000004027212106662603015120 0ustar00mgmg00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # doc/Makefile.am for Fluxbox 0.9 - an X11 Window manager # Makefile.am for fluxbox/doc VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = doc DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } man1dir = $(mandir)/man1 am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)" man5dir = $(mandir)/man5 NROFF = nroff MANS = $(man_MANS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEBUG = @DEBUG@ DEFAULT_APPS = @DEFAULT_APPS@ DEFAULT_INIT = @DEFAULT_INIT@ DEFAULT_KEYS = @DEFAULT_KEYS@ DEFAULT_MENU = @DEFAULT_MENU@ DEFAULT_OVERLAY = @DEFAULT_OVERLAY@ DEFAULT_STYLE = @DEFAULT_STYLE@ DEFAULT_WINDOWMENU = @DEFAULT_WINDOWMENU@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ IMLIB2_CFLAGS = @IMLIB2_CFLAGS@ IMLIB2_CONFIG = @IMLIB2_CONFIG@ IMLIB2_LIBS = @IMLIB2_LIBS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LOCALE_PATH = @LOCALE_PATH@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NLS = @NLS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ RANLIB = @RANLIB@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ X_CFLAGS = @X_CFLAGS@ X_EXTRA_LIBS = @X_EXTRA_LIBS@ X_LIBS = @X_LIBS@ X_PRE_LIBS = @X_PRE_LIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gencat_cmd = @gencat_cmd@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_prefix = @program_prefix@ program_suffix = @program_suffix@ program_transform_name = @program_transform_name@ psdir = @psdir@ regex_cmd = @regex_cmd@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ CLEANFILES = fluxbox.1 fbrun.1 fbsetbg.1 fbsetroot.1 startfluxbox.1 fluxbox-apps.5 \ fluxbox-keys.5 fluxbox-menu.5 fluxbox-remote.1 fluxbox-style.5 MAINTAINERCLEANFILES = Makefile.in man_MANS = fluxbox.1 fbrun.1 fbsetbg.1 fbsetroot.1 fluxbox-apps.5 \ fluxbox-keys.5 fluxbox-menu.5 fluxbox-remote.1 fluxbox-style.5 \ startfluxbox.1 EXTRA_DIST = startfluxbox.1.in CODESTYLE \ fluxbox.1.in fbrun.1.in fbsetbg.1.in fbsetroot.1.in fluxbox-apps.5.in \ fluxbox-keys.5.in fluxbox-menu.5.in fluxbox-remote.1.in fluxbox-style.5.in all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign doc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-man1: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man1dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.1[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) install-man5: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man5dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man5dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man5dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.5[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man5dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man5dir)" || exit $$?; }; \ done; } uninstall-man5: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man5dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.5[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man5dir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @list='$(MANS)'; if test -n "$$list"; then \ list=`for p in $$list; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ if test -n "$$list" && \ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ echo " typically \`make maintainer-clean' will remove them" >&2; \ exit 1; \ else :; fi; \ else :; fi @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(MANS) installdirs: for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-man install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man1 install-man5 install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-man uninstall-man: uninstall-man1 uninstall-man5 .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distclean-local distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-man1 install-man5 \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-man uninstall-man1 uninstall-man5 distclean-local: rm -f *\~ %: %.in @regex_cmd@ -e "s,@pkgdatadir@,$(pkgdatadir)," $^ > $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: fluxbox-1.3.5/doc/PaxHeaders.25974/Makefile.am0000644000175000017500000000013212106662425017055 xustar000000000000000030 mtime=1360749845.879812656 30 atime=1360749853.455812608 30 ctime=1360750008.975811613 fluxbox-1.3.5/doc/Makefile.am0000644000175000017500000000130312106662425015101 0ustar00mgmg00000000000000# doc/Makefile.am for Fluxbox 0.9 - an X11 Window manager # Makefile.am for fluxbox/doc CLEANFILES = fluxbox.1 fbrun.1 fbsetbg.1 fbsetroot.1 startfluxbox.1 fluxbox-apps.5 \ fluxbox-keys.5 fluxbox-menu.5 fluxbox-remote.1 fluxbox-style.5 MAINTAINERCLEANFILES = Makefile.in man_MANS = fluxbox.1 fbrun.1 fbsetbg.1 fbsetroot.1 fluxbox-apps.5 \ fluxbox-keys.5 fluxbox-menu.5 fluxbox-remote.1 fluxbox-style.5 \ startfluxbox.1 EXTRA_DIST=startfluxbox.1.in CODESTYLE \ fluxbox.1.in fbrun.1.in fbsetbg.1.in fbsetroot.1.in fluxbox-apps.5.in \ fluxbox-keys.5.in fluxbox-menu.5.in fluxbox-remote.1.in fluxbox-style.5.in distclean-local: rm -f *\~ %: %.in @regex_cmd@ -e "s,@pkgdatadir@,$(pkgdatadir)," $^ > $@ fluxbox-1.3.5/PaxHeaders.25974/missing0000644000175000017500000000013212106662434015650 xustar000000000000000030 mtime=1360749852.995812611 30 atime=1360749860.283812564 30 ctime=1360750008.979811612 fluxbox-1.3.5/missing0000744000175000017500000002415212106662434013704 0ustar00mgmg00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2012-01-06.13; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG=\${$#} case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG=\${$#} case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: fluxbox-1.3.5/PaxHeaders.25974/ltmain.sh0000644000175000017500000000013212106662601016070 xustar000000000000000030 mtime=1360749953.651811967 30 atime=1360749953.651811967 30 ctime=1360750005.419811635 fluxbox-1.3.5/ltmain.sh0000644000175000017500000105202612106662601014125 0ustar00mgmg00000000000000 # libtool (GNU libtool) 2.4.2 # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, # 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --no-quiet, --no-silent # print informational messages (default) # --no-warn don't display warning messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print more informational messages than default # --no-verbose don't print the extra informational messages # --version print version information # -h, --help, --help-all print short, long, or detailed help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. When passed as first option, # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.2 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . # GNU libtool home page: . # General help using GNU software: . PROGRAM=libtool PACKAGE=libtool VERSION="2.4.2 Debian-2.4.2-1.2" TIMESTAMP="" package_revision=1.3337 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # NLS nuisances: We save the old values to restore during execute mode. lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done LC_ALL=C LANGUAGE=C export LANGUAGE LC_ALL $lt_unset CDPATH # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" : ${CP="cp -f"} test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_dirname may be replaced by extended shell implementation # func_basename file func_basename () { func_basename_result=`$ECHO "${1}" | $SED "$basename"` } # func_basename may be replaced by extended shell implementation # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` } # func_dirname_and_basename may be replaced by extended shell implementation # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname may be replaced by extended shell implementation # These SED scripts presuppose an absolute path with a trailing slash. pathcar='s,^/\([^/]*\).*$,\1,' pathcdr='s,^/[^/]*,,' removedotparts=':dotsl s@/\./@/@g t dotsl s,/\.$,/,' collapseslashes='s@/\{1,\}@/@g' finalslash='s,/*$,/,' # func_normal_abspath PATH # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. # value returned in "$func_normal_abspath_result" func_normal_abspath () { # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` while :; do # Processed it all yet? if test "$func_normal_abspath_tpath" = / ; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result" ; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_relative_path SRCDIR DSTDIR # generates a relative path from SRCDIR to DSTDIR, with a trailing # slash if non-empty, suitable for immediately appending a filename # without needing to append a separator. # value returned in "$func_relative_path_result" func_relative_path () { func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=${func_dirname_result} if test "x$func_relative_path_tlibdir" = x ; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test "x$func_stripname_result" != x ; then func_relative_path_result=${func_relative_path_result}/${func_stripname_result} fi # Normalisation. If bindir is libdir, return empty string, # else relative path ending with a slash; either way, target # file name can be directly appended. if test ! -z "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result/" func_relative_path_result=$func_stripname_result fi } # The name of this program: func_dirname_and_basename "$progpath" progname=$func_basename_result # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution that turns a string into a regex matching for the # string literally. sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' # Sed substitution that converts a w32 file name or path # which contains forward slashes, into one that contains # (escaped) backslashes. A very naive implementation. lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname: ${opt_mode+$opt_mode: }$*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` done my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "$my_tmpdir" } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "$1" | $SED \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_tr_sh # Turn $1 into a string suitable for a shell variable name. # Result is stored in $func_tr_sh_result. All characters # not in the set a-zA-Z0-9_ are replaced with '_'. Further, # if $1 begins with a digit, a '_' is prepended as well. func_tr_sh () { case $1 in [0-9]* | *[!a-zA-Z0-9_]*) func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` ;; * ) func_tr_sh_result=$1 ;; esac } # func_version # Echo version message to standard output and exit. func_version () { $opt_debug $SED -n '/(C)/!b go :more /\./!{ N s/\n# / / b more } :go /^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $opt_debug $SED -n '/^# Usage:/,/^# *.*--help/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" echo $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help [NOEXIT] # Echo long help message to standard output and exit, # unless 'noexit' is passed as argument. func_help () { $opt_debug $SED -n '/^# Usage:/,/# Report bugs to/ { :print s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ p d } /^# .* home page:/b print /^# General help using/b print ' < "$progpath" ret=$? if test -z "$1"; then exit $ret fi } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { $opt_debug func_error "missing argument for $1." exit_cmd=exit } # func_split_short_opt shortopt # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. func_split_short_opt () { my_sed_short_opt='1s/^\(..\).*$/\1/;q' my_sed_short_rest='1s/^..\(.*\)$/\1/;q' func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` } # func_split_short_opt may be replaced by extended shell implementation # func_split_long_opt longopt # Set func_split_long_opt_name and func_split_long_opt_arg shell # variables after splitting LONGOPT at the `=' sign. func_split_long_opt () { my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^--[^=]*=//' func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` } # func_split_long_opt may be replaced by extended shell implementation exit_cmd=: magic="%%%MAGIC variable%%%" magic_exe="%%%MAGIC EXE variable%%%" # Global variables. nonopt= preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" extracted_archives= extracted_serial=0 # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "${1}=\$${1}\${2}" } # func_append may be replaced by extended shell implementation # func_append_quoted var value # Quote VALUE and append to the end of shell variable VAR, separated # by a space. func_append_quoted () { func_quote_for_eval "${2}" eval "${1}=\$${1}\\ \$func_quote_for_eval_result" } # func_append_quoted may be replaced by extended shell implementation # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "${@}"` } # func_arith may be replaced by extended shell implementation # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` } # func_len may be replaced by extended shell implementation # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` } # func_lo2o may be replaced by extended shell implementation # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` } # func_xform may be replaced by extended shell implementation # func_fatal_configuration arg... # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func_error ${1+"$@"} func_error "See the $PACKAGE documentation for more information." func_fatal_error "Fatal configuration error." } # func_config # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # Display the features supported by this script. func_features () { echo "host: $host" if test "$build_libtool_libs" = yes; then echo "enable shared libraries" else echo "disable shared libraries" fi if test "$build_old_libs" = yes; then echo "enable static libraries" else echo "disable static libraries" fi exit $? } # func_enable_tag tagname # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname="$1" re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf="/$re_begincf/,/$re_endcf/p" # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Option defaults: opt_debug=: opt_dry_run=false opt_config=false opt_preserve_dup_deps=false opt_features=false opt_finish=false opt_help=false opt_help_all=false opt_silent=: opt_warning=: opt_verbose=: opt_silent=false opt_verbose=false # Parse options once, thoroughly. This comes as soon as possible in the # script to make things like `--version' happen as quickly as we can. { # this just eases exit handling while test $# -gt 0; do opt="$1" shift case $opt in --debug|-x) opt_debug='set -x' func_echo "enabling shell trace mode" $opt_debug ;; --dry-run|--dryrun|-n) opt_dry_run=: ;; --config) opt_config=: func_config ;; --dlopen|-dlopen) optarg="$1" opt_dlopen="${opt_dlopen+$opt_dlopen }$optarg" shift ;; --preserve-dup-deps) opt_preserve_dup_deps=: ;; --features) opt_features=: func_features ;; --finish) opt_finish=: set dummy --mode finish ${1+"$@"}; shift ;; --help) opt_help=: ;; --help-all) opt_help_all=: opt_help=': help-all' ;; --mode) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_mode="$optarg" case $optarg in # Valid mode arguments: clean|compile|execute|finish|install|link|relink|uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac shift ;; --no-silent|--no-quiet) opt_silent=false func_append preserve_args " $opt" ;; --no-warning|--no-warn) opt_warning=false func_append preserve_args " $opt" ;; --no-verbose) opt_verbose=false func_append preserve_args " $opt" ;; --silent|--quiet) opt_silent=: func_append preserve_args " $opt" opt_verbose=false ;; --verbose|-v) opt_verbose=: func_append preserve_args " $opt" opt_silent=false ;; --tag) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_tag="$optarg" func_append preserve_args " $opt $optarg" func_enable_tag "$optarg" shift ;; -\?|-h) func_usage ;; --help) func_help ;; --version) func_version ;; # Separate optargs to long options: --*=*) func_split_long_opt "$opt" set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} shift ;; # Separate non-argument short options: -\?*|-h*|-n*|-v*) func_split_short_opt "$opt" set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} shift ;; --) break ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) set dummy "$opt" ${1+"$@"}; shift; break ;; esac done # Validate options: # save first non-option argument if test "$#" -gt 0; then nonopt="$opt" shift fi # preserve --debug test "$opt_debug" = : || func_append preserve_args " --debug" case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$opt_dlopen" && test "$opt_mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$opt_mode' for more information." } # Bail if the options were screwed $exit_cmd $EXIT_FAILURE } ## ----------- ## ## Main. ## ## ----------- ## # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_resolve_sysroot PATH # Replace a leading = in PATH with a sysroot. Store the result into # func_resolve_sysroot_result func_resolve_sysroot () { func_resolve_sysroot_result=$1 case $func_resolve_sysroot_result in =*) func_stripname '=' '' "$func_resolve_sysroot_result" func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ;; esac } # func_replace_sysroot PATH # If PATH begins with the sysroot, replace it with = and # store the result into func_replace_sysroot_result. func_replace_sysroot () { case "$lt_sysroot:$1" in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" func_replace_sysroot_result="=$func_stripname_result" ;; *) # Including no sysroot. func_replace_sysroot_result=$1 ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T </dev/null` if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | $SED -e "$lt_sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi fi } # end: func_convert_core_file_wine_to_w32 # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly # configured wine environment available, with the winepath program in $build's # $PATH. Assumes ARG has no leading or trailing path separator characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result. # Unconvertible file (directory) names in ARG are skipped; if no directory names # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { $opt_debug # unfortunately, winepath doesn't convert paths, only file names func_convert_core_path_wine_to_w32_result="" if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" if test -n "$func_convert_core_file_wine_to_w32_result" ; then if test -z "$func_convert_core_path_wine_to_w32_result"; then func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi fi done IFS=$oldIFS fi } # end: func_convert_core_path_wine_to_w32 # func_cygpath ARGS... # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or # (2), returns the Cygwin file name or path in func_cygpath_result (input # file name or path is assumed to be in w32 format, as previously converted # from $build's *nix or MSYS format). In case (3), returns the w32 file name # or path in func_cygpath_result (input file name or path is assumed to be in # Cygwin format). Returns an empty string on error. # # ARGS are passed to cygpath, with the last one being the file name or path to # be converted. # # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH # environment variable; do not put it in $PATH. func_cygpath () { $opt_debug if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then # on failure, ensure result is empty func_cygpath_result= fi else func_cygpath_result= func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" fi } #end: func_cygpath # func_convert_core_msys_to_w32 ARG # Convert file name or path ARG from MSYS format to w32 format. Return # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { $opt_debug # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 # func_convert_file_check ARG1 ARG2 # Verify that ARG1 (a file name in $build format) was converted to $host # format in ARG2. Otherwise, emit an error message, but continue (resetting # func_to_host_file_result to ARG1). func_convert_file_check () { $opt_debug if test -z "$2" && test -n "$1" ; then func_error "Could not determine host file name corresponding to" func_error " \`$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_file_result="$1" fi } # end func_convert_file_check # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH # Verify that FROM_PATH (a path in $build format) was converted to $host # format in TO_PATH. Otherwise, emit an error message, but continue, resetting # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { $opt_debug if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" func_error " \`$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. if test "x$1" != "x$2"; then lt_replace_pathsep_chars="s|$1|$2|g" func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else func_to_host_path_result="$3" fi fi } # end func_convert_path_check # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { $opt_debug case $4 in $1 ) func_to_host_path_result="$3$func_to_host_path_result" ;; esac case $4 in $2 ) func_append func_to_host_path_result "$3" ;; esac } # end func_convert_path_front_back_pathsep ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## # invoked via `$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. # func_to_host_file ARG # Converts the file name ARG from $build format to $host format. Return result # in func_to_host_file_result. func_to_host_file () { $opt_debug $to_host_file_cmd "$1" } # end func_to_host_file # func_to_tool_file ARG LAZY # converts the file name ARG from $build format to toolchain format. Return # result in func_to_tool_file_result. If the conversion in use is listed # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { $opt_debug case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 ;; *) $to_tool_file_cmd "$1" func_to_tool_file_result=$func_to_host_file_result ;; esac } # end func_to_tool_file # func_convert_file_noop ARG # Copy ARG to func_to_host_file_result. func_convert_file_noop () { func_to_host_file_result="$1" } # end func_convert_file_noop # func_convert_file_msys_to_w32 ARG # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_file_result. func_convert_file_msys_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_to_host_file_result="$func_convert_core_msys_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_w32 # func_convert_file_cygwin_to_w32 ARG # Convert file name ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. func_to_host_file_result=`cygpath -m "$1"` fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_cygwin_to_w32 # func_convert_file_nix_to_w32 ARG # Convert file name ARG from *nix to w32 format. Requires a wine environment # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_w32 # func_convert_file_msys_to_cygwin ARG # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_cygwin # func_convert_file_nix_to_cygwin ARG # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed # in a wine environment, working winepath, and LT_CYGPATH set. Returns result # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_cygwin ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# # invoked via `$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. # # Path separators are also converted from $build format to $host format. If # ARG begins or ends with a path separator character, it is preserved (but # converted to $host format) on output. # # All path conversion functions are named using the following convention: # file name conversion function : func_convert_file_X_to_Y () # path conversion function : func_convert_path_X_to_Y () # where, for any given $build/$host combination the 'X_to_Y' value is the # same. If conversion functions are added for new $build/$host combinations, # the two new functions must follow this pattern, or func_init_to_host_path_cmd # will break. # func_init_to_host_path_cmd # Ensures that function "pointer" variable $to_host_path_cmd is set to the # appropriate value, based on the value of $to_host_file_cmd. to_host_path_cmd= func_init_to_host_path_cmd () { $opt_debug if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" to_host_path_cmd="func_convert_path_${func_stripname_result}" fi } # func_to_host_path ARG # Converts the path ARG from $build format to $host format. Return result # in func_to_host_path_result. func_to_host_path () { $opt_debug func_init_to_host_path_cmd $to_host_path_cmd "$1" } # end func_to_host_path # func_convert_path_noop ARG # Copy ARG to func_to_host_path_result. func_convert_path_noop () { func_to_host_path_result="$1" } # end func_convert_path_noop # func_convert_path_msys_to_w32 ARG # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_path_result. func_convert_path_msys_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from ARG. MSYS # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; # and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_msys_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_msys_to_w32 # func_convert_path_cygwin_to_w32 ARG # Convert path ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_cygwin_to_w32 # func_convert_path_nix_to_w32 ARG # Convert path ARG from *nix to w32 format. Requires a wine environment and # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_nix_to_w32 # func_convert_path_msys_to_cygwin ARG # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_msys_to_cygwin # func_convert_path_nix_to_cygwin ARG # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a # a wine environment, working winepath, and LT_CYGPATH set. Returns result in # func_to_host_file_result. func_convert_path_nix_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_nix_to_cygwin # func_mode_compile arg... func_mode_compile () { $opt_debug # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= pie_flag= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) test -n "$libobj" && \ func_fatal_error "you cannot specify \`-o' more than once" arg_mode=target continue ;; -pie | -fpie | -fPIE) func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) func_append later " $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" func_append_quoted lastarg "$arg" done IFS="$save_ifs" func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. func_append base_compile " $lastarg" continue ;; *) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in arg) func_fatal_error "you must specify an argument for -Xcompile" ;; target) func_fatal_error "you must specify a target with \`-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" libobj="$func_basename_result" } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo case $libobj in *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; esac case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) func_fatal_error "cannot determine name of library object from \`$libobj'" ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no continue ;; -static) build_libtool_libs=no build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir func_append command " -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$opt_mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking -Wc,FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$opt_mode'" ;; esac echo $ECHO "Try \`$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test "$opt_help" = :; then func_mode_help else { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done } | sed -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | sed '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_append_quoted args "$file" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$opt_mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libs= libdirs= admincmds= for opt in "$nonopt" ${1+"$@"} do if test -d "$opt"; then func_append libdirs " $opt" elif test -f "$opt"; then if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else func_warning "\`$opt' is not a valid libtool archive" fi else func_fatal_error "invalid argument \`$opt'" fi done if test -n "$libs"; then if test -n "$lt_sysroot"; then sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" else sysroot_cmd= fi # Remove sysroot references if $opt_dry_run; then for lib in $libs; do echo "removing references to $lt_sysroot and \`=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done ${RM}r "$tmpdir" fi fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || func_append admincmds " $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" echo "specify the full pathname of the library, or use the \`-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the \`$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then echo " - add LIBDIR to the \`$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" echo "pages." ;; *) echo "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac echo "----------------------------------------------------------------------" fi exit $EXIT_SUCCESS } test "$opt_mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. case $nonopt in *shtool*) :;; *) false;; esac; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" func_append install_prog "$func_quote_for_eval_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= no_mode=: for arg do arg2= if test -n "$dest"; then func_append files " $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test "x$prev" = x-m && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" func_append install_prog " $func_quote_for_eval_result" if test -n "$arg2"; then func_quote_for_eval "$arg2" fi func_append install_shared_prog " $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_for_eval "$install_override_mode" func_append install_shared_prog " -m $func_quote_for_eval_result" fi fi if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. func_append staticlibs " $file" ;; *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && func_append staticlibs " $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$opt_mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" dlprefile_dlbasename="" if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` if test -n "$dlprefile_dlname" ; then func_basename "$dlprefile_dlname" dlprefile_dlbasename="$func_basename_result" else # no lafile. user explicitly requested -dlpreopen . $sharedlib_from_linklib_cmd "$dlprefile" dlprefile_dlbasename=$sharedlib_from_linklib_result fi fi $opt_dry_run || { if test -n "$dlprefile_dlbasename" ; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" } else # not an import lib $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } fi ;; *) $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } ;; esac done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) func_append symtab_cflags " $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. # Despite the name, also deal with 64 bit binaries. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then func_to_tool_file "$1" func_convert_file_msys_to_w32 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_cygming_dll_for_implib ARG # # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { $opt_debug sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs # # The is the core of a fallback implementation of a # platform-specific function to extract the name of the # DLL associated with the specified import library LIBNAME. # # SECTION_NAME is either .idata$6 or .idata$7, depending # on the platform and compiler that created the implib. # # Echos the name of the DLL associated with the # specified import library. func_cygming_dll_for_implib_fallback_core () { $opt_debug match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ # Place marker at beginning of archive member dllname section s/.*/====MARK====/ p d } # These lines can sometimes be longer than 43 characters, but # are always uninteresting /:[ ]*file format pe[i]\{,1\}-/d /^In archive [^:]*:/d # Ensure marker is printed /^====MARK====/p # Remove all lines with less than 43 characters /^.\{43\}/!d # From remaining lines, remove first 43 characters s/^.\{43\}//' | $SED -n ' # Join marker and all lines until next marker into a single line /^====MARK====/ b para H $ b para b :para x s/\n//g # Remove the marker s/^====MARK====// # Remove trailing dots and whitespace s/[\. \t]*$// # Print /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the # archive which possess that section. Heuristic: eliminate # all those which have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually # begins with a literal '.' or a single character followed by # a '.'. # # Of those that remain, print the first one. $SED -e '/^\./d;/^.\./d;q' } # func_cygming_gnu_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is a GNU/binutils-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_gnu_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` test -n "$func_cygming_gnu_implib_tmp" } # func_cygming_ms_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is an MS-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_ms_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` test -n "$func_cygming_ms_implib_tmp" } # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # # This fallback implementation is for use when $DLLTOOL # does not support the --identify-strict option. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { $opt_debug if func_cygming_gnu_implib_p "$1" ; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` elif func_cygming_ms_implib_p "$1" ; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown sharedlib_from_linklib_result="" fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" if test "$lock_old_archive_extraction" = yes; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test "$lock_old_archive_extraction" = yes; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=\"$qECHO\" fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ which is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options which match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { case \" \$* \" in *\\ --lt-*) for lt_wr_arg do case \$lt_wr_arg in --lt-*) ;; *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; esac shift done ;; esac func_exec_program_core \${1+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # fixup the dll searchpath if we need to. # # Fix the DLL searchpath if we need to. Do this before prepending # to shlibpath, because on Windows, both are PATH and uninstalled # libraries must come first. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include #else # include # include # ifdef __CYGWIN__ # include # endif #endif #include #include #include #include #include #include #include #include /* declarations of non-ANSI functions */ #if defined(__MINGW32__) # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif #elif defined(__CYGWIN__) # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined (other platforms) ... */ #endif /* portability defines, excluding path handling macros */ #if defined(_MSC_VER) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC # ifndef _INTPTR_T_DEFINED # define _INTPTR_T_DEFINED # define intptr_t int # endif #elif defined(__MINGW32__) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined(__CYGWIN__) # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined (other platforms) ... */ #endif #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif /* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #if defined(LT_DEBUGWRAPPER) static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { lt_debugprintf (__FILE__, __LINE__, "checking path component for symlinks: %s\n", tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF case $host_os in mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -n -e ' s/^\(.\{79\}\)\(..*\)/\1\ \2/ h s/\([\\"]\)/\\\1/g s/$/\\n/ s/\([^\n]*\).*/ fputs ("\1", f);/p g D' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $opt_debug case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no bindir= dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in bindir) bindir="$arg" prev= continue ;; dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then func_append dlfiles " $arg" else func_append dlprefiles " $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # func_append moreargs " $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) func_append xrpath " $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) func_append weak_libs " $arg" prev= continue ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) func_append linker_flags " $qarg" func_append compiler_flags " $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -bindir) prev=bindir continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname "-L" '' "$arg" if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "* | *" $arg "*) # Will only happen for absolute or sysroot arguments ;; *) # Preserve sysroot, but never include relative directories case $dir in [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; *) func_append deplibs " -L$dir" ;; esac func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi func_append deplibs " $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot|--sysroot) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) func_append new_inherited_linker_flags " $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; =*) func_stripname '=' '' "$dir" dir=$lt_sysroot$func_stripname_result ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $func_quote_for_eval_result" func_append compiler_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $wl$func_quote_for_eval_result" func_append compiler_flags " $wl$func_quote_for_eval_result" func_append linker_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # Flags to be passed through unchanged, with rationale: # -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # +DA*, +DD* enable 64-bit mode for the HP compiler # -q* compiler args for the IBM compiler # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-flto*|-fwhopr*|-fuse-linker-plugin) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. func_append objs " $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. func_append deplibs " $arg" func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. func_resolve_sysroot "$arg" if test "$prev" = dlfiles; then # This library was specified with -dlopen. func_append dlfiles " $func_resolve_sysroot_result" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. func_append dlprefiles " $func_resolve_sysroot_result" prev= else func_append deplibs " $func_resolve_sysroot_result" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_preserve_dup_deps ; then case "$libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append libs " $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; esac func_append pre_post_deps " $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS%" test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= func_resolve_sysroot "$lib" case $lib in *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do func_basename "$deplib" deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) func_append deplibs " $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append compiler_flags " $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) func_resolve_sysroot "$deplib" lib=$func_resolve_sysroot_result ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not use here." else echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append newdlfiles " $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && func_append dlfiles " $dlopen" test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi continue fi # $pass = conv # Get the name of the library we link against. linklib= if test -n "$old_library" && { test "$prefer_static_libs" = yes || test "$prefer_static_libs,$installed" = "built,no"; }; then linklib=$old_library else for l in $old_library $library_names; do linklib="$l" done fi if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. func_append dlprefiles " $lib $dependency_libs" else func_append newdlfiles " $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$lt_sysroot$libdir" absdir="$lt_sysroot$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later func_append notinst_path " $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later func_append notinst_path " $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi case "$host" in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both # static and shared are present. Therefore, ensure we extract # symbols from the import library if a shared library is present # (otherwise, the dlopen module name will be incorrect). We do # this by putting the import library name into $newdlprefiles. # We recover the dlopen module name by 'saving' the la file # name in a special purpose variable, and (later) extracting the # dlname from the la file. if test -n "$dlname"; then func_tr_sh "$dir/$linklib" eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" func_append newdlprefiles " $dir/$linklib" else func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" fi ;; * ) # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then func_append newdlprefiles " $dir/$dlname" else func_append newdlprefiles " $dir/$linklib" fi ;; esac fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) func_append temp_rpath "$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded func_append notinst_deplibs " $lib" need_relink=no ;; *) if test "$installed" = no; then func_append notinst_deplibs " $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then echo if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$opt_mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then echo echo "*** And there doesn't seem to be a static archive available" echo "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$absdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$opt_mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo $ECHO "*** Warning: This system can not link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) func_append xrpath " $temp_xrpath";; esac;; *) func_append temp_deplibs " $libdir";; esac done dependency_libs="$temp_deplibs" fi func_append newlib_search_path " $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi func_append tmp_libs " $func_resolve_sysroot_result" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result func_dirname "$deplib" "" "." dir=$func_dirname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) func_append lib_search_path " $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) func_append tmp_libs " $deplib" ;; esac ;; *) func_append tmp_libs " $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" func_append objs "$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" func_append libobjs " $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in # correct linux to gnu/linux during the next big refactor darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|qnx|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; *) func_fatal_configuration "$modename: unknown library version type \`$version_type'" ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. func_append verstring ":${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" func_append libobjs " $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$opt_mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi func_append removelist " $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do func_replace_sysroot "$libdir" func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) func_append dlfiles " $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) func_append dlprefiles " $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework func_append deplibs " System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then func_append deplibs " -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` $nocaseglob else potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` fi for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` done fi case $tmp_deplibs in *[!\ \ ]*) echo if test "X$deplibs_check_method" = "Xnone"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." fi echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes ;; esac ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" echo "*** a static module, that should work as long as the dlopening" echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else echo "*** The inter-library dependencies that have been dropped here will be" echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then # Remove ${wl} instances when linking with ld. # FIXME: should test the right _cmds variable. case $archive_cmds in *\$LD\ *) wl= ;; esac if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$opt_mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do func_append linknames " $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" func_append delfiles " $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd1 in $cmds; do IFS="$save_ifs" # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) try_normal_branch=yes eval cmd=\"$cmd1\" func_len " $cmd" len=$func_len_result ;; *) try_normal_branch=no ;; esac if test "$try_normal_branch" = yes \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then func_show_eval "$cmd" 'exit $?' skipped_export=false elif test -n "$nm_file_list_spec"; then func_basename "$output" output_la=$func_basename_result save_libobjs=$libobjs save_output=$output output=${output_objdir}/${output_la}.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result func_append delfiles " $output" func_verbose "creating $NM input file list: $output" for obj in $save_libobjs; do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > "$output" eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' output=$save_output libobjs=$save_libobjs skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) func_append tmp_deplibs " $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $convenience func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output func_basename "$output" output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done echo ')' >> $output func_append delfiles " $output" func_to_tool_file "$output" output=$func_to_tool_file_result elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done func_append delfiles " $output" func_to_tool_file "$output" output=$firstobj\"$file_list_spec$func_to_tool_file_result\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ reload_objs="$objlist $last_robj" eval concat_cmds=\"\${concat_cmds}$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi func_append delfiles " $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` else gentop="$output_objdir/${obj}x" func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # If we're not building shared, we need to use non_pic_objs test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) func_append compile_command " ${wl}-bind_at_load" func_append finalize_command " ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done compile_deplibs="$new_libs" func_append compile_command " $compile_deplibs" func_append finalize_command " $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) func_append finalize_perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=no ;; *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do func_append rpath "$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output_objdir/$outputname" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then func_append oldobjs " $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $addlibs func_append oldobjs " $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append oldobjs " $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else echo "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" func_append oldobjs " $gentop/$newobj" ;; *) func_append oldobjs " $obj" ;; esac done fi func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds elif test -n "$archiver_list_spec"; then func_verbose "using command file archive linking..." for obj in $oldobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > $output_objdir/$libname.libcmd func_to_tool_file "$output_objdir/$libname.libcmd" oldobjs=" $archiver_list_spec$func_to_tool_file_result" cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" func_resolve_sysroot "$deplib" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ;; -L*) func_stripname -L '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -L$func_replace_sysroot_result" ;; -R*) func_stripname -R '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -R$func_replace_sysroot_result" ;; *) func_append newdependency_libs " $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; *) func_append newdlfiles " $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlfiles " $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlprefiles " $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin # In fact, it would be nice if we could use this code for all target # systems that can't hard-code library paths into their executables # and that have no shared library path variable independent of PATH, # but it turns out we can't easily determine that from inspecting # libtool variables, so we have to hard-code the OSs to which it # applies here; at the moment, that means platforms that use the PE # object format with DLL files. See the long comment at the top of # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test "x$bindir" != x ; then func_relative_path "$install_libdir" "$bindir" tdlname=$func_relative_path_result$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname fi ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$opt_mode" = link || test "$opt_mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) func_append RM " $arg"; rmforce=yes ;; -*) func_append RM " $arg" ;; *) func_append files " $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then odir="$objdir" else odir="$dir/$objdir" fi func_basename "$file" name="$func_basename_result" test "$opt_mode" = uninstall && odir="$dir" # Remember odir for removal later, being careful to avoid duplicates if test "$opt_mode" = clean; then case " $rmdirs " in *" $odir "*) ;; *) func_append rmdirs " $odir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do func_append rmfiles " $odir/$n" done test -n "$old_library" && func_append rmfiles " $odir/$old_library" case "$opt_mode" in clean) case " $library_names " in *" $dlname "*) ;; *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) if test "$opt_mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe func_append rmfiles " $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result func_append rmfiles " $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles func_append rmfiles " $odir/$name $odir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name" ; then func_append rmfiles " $odir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$opt_mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 fluxbox-1.3.5/PaxHeaders.25974/install-sh0000644000175000017500000000013212106662434016255 xustar000000000000000030 mtime=1360749852.991812611 30 atime=1360749874.499812473 30 ctime=1360750008.979811612 fluxbox-1.3.5/install-sh0000744000175000017500000003325612106662434014316 0ustar00mgmg00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2011-01-19.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 # Protect names problematic for `test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for `test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for `test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: fluxbox-1.3.5/PaxHeaders.25974/depcomp0000644000175000017500000000013212106662436015630 xustar000000000000000030 mtime=1360749854.343812602 30 atime=1360749860.599812562 30 ctime=1360750008.979811612 fluxbox-1.3.5/depcomp0000744000175000017500000005064312106662436013670 0ustar00mgmg00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2012-03-27.16; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, # 2011, 2012 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by 'PROGRAMS ARGS'. object Object file output by 'PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac # A tabulation character. tab=' ' # A newline character. nl=' ' if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi if test "$depmode" = msvc7msys; then # This is just like msvc7 but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvc7 fi if test "$depmode" = xlc; then # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations. gccflag=-qmakedep=gcc,-MF depmode=gcc fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the "deleted header file" problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' "$nl" < "$tmpdepfile" | ## Some versions of gcc put a space before the ':'. On the theory ## that the space means something, we add a space to the output as ## well. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like '#:fec' to the end of the # dependency line. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr "$nl" ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; xlc) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts '$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # Each line is of the form 'foo.o: dependent.h'. # Do two passes, one to just change these to # '$object: dependent.h' and one to simply 'dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'. # However on # $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using '\': # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... # tcc 0.9.26 (FIXME still under development at the moment of writing) # will emit a similar output, but also prepend the continuation lines # with horizontal tabulation characters. "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form 'foo.o: dependent.h', # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'. # Do two passes, one to just change these to # '$object: dependent.h' and one to simply 'dependent.h:'. sed -e "s/^[ $tab][ $tab]*/ /" -e "s,^[^:]*:,$object :," \ < "$tmpdepfile" > "$depfile" sed ' s/[ '"$tab"'][ '"$tab"']*/ /g s/^ *// s/ *\\*$// s/^[^:]*: *// /^$/d /:$/d s/$/ :/ ' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add 'dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in 'foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; msvc7) if test "$libtool" = yes; then showIncludes=-Wc,-showIncludes else showIncludes=-showIncludes fi "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" if test "$stat" = 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The first sed program below extracts the file names and escapes # backslashes for cygpath. The second sed program outputs the file # name when reading, but also accumulates all include files in the # hold buffer in order to output them again at the end. This only # works with sed implementations that can handle large buffers. sed < "$tmpdepfile" -n ' /^Note: including file: *\(.*\)/ { s//\1/ s/\\/\\\\/g p }' | $cygpath_u | sort -u | sed -n ' s/ /\\ /g s/\(.*\)/'"$tab"'\1 \\/p s/.\(.*\) \\/\1:/ H $ { s/.*/'"$tab"'/ G p }' >> "$depfile" rm -f "$tmpdepfile" ;; msvc7msys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for ':' # in the target name. This is to cope with DOS-style filenames: # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. "$@" $dashmflag | sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' "$nl" < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" echo "$tab" >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: fluxbox-1.3.5/PaxHeaders.25974/TODO0000644000175000017500000000013212106662425014744 xustar000000000000000030 mtime=1360749845.875812656 30 atime=1360749874.495812473 30 ctime=1360750008.979811612 fluxbox-1.3.5/TODO0000644000175000017500000000051212106662425012771 0ustar00mgmg00000000000000*** Xinerama *** A new kind of mode: "keep on head" Which states all newly created windows should be placed on a specific head. Action: Move all ( or one specific ) windows from one head to another. This is usefull if a head is disabled for some reason. ****** *** Rewrites *** - Menu - Toolbar - Signal system ****** fluxbox-1.3.5/PaxHeaders.25974/NEWS0000644000175000017500000000013212106662425014753 xustar000000000000000030 mtime=1360749845.871812656 30 atime=1360749874.495812473 30 ctime=1360750008.979811612 fluxbox-1.3.5/NEWS0000644000175000017500000000016012106662425012777 0ustar00mgmg00000000000000Version 1.3.5 is a bug fix release. Critical Bugfixes in 1.3.5: * Reenabled 'If' 'Or' 'And' actions again fluxbox-1.3.5/PaxHeaders.25974/INSTALL0000644000175000017500000000013212106662425015305 xustar000000000000000030 mtime=1360749845.871812656 30 atime=1360749874.495812473 30 ctime=1360750008.983811612 fluxbox-1.3.5/INSTALL0000644000175000017500000001061612106662425013340 0ustar00mgmg00000000000000= INSTALL for Fluxbox == TL;DR Instructions $ ./configure $ make and then as root $ make install == Compilation and Installation The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory in the Fluxbox source tree. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, a file `config.cache' that saves the results of its tests to speed up reconfiguring, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). If you need to do unusual things to compile Fluxbox, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to fluxbox-developers list (see www.fluxbox.org) so they can be considered for the next release. If at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.in' is used to create `configure' by a program called `autoconf'. You only need `configure.in' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Type `make install' to install the programs and any data files and documentation. 4. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. == Compilers and Options Some systems require unusual options for compilation or linking that the `configure' script does not know about. You can give `configure' initial values for variables by setting them in the environment. Using a Bourne-compatible shell, you can do that on the command line like this: CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure Or on systems that have the `env' program, you can do it like this: env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure === Cross-Compiler for Microsoft Windows: You'll want mingw-cross-env installed, with libX11 and mingw-catgets built. A configure line that works is: $ ./configure \ --prefix=/ \ --host=i686-pc-mingw32 \ --disable-imlib2 \ --disable-xmb \ --disable-slit \ --disable-remember \ --disable-toolbar \ --disable-fribidi \ --disable-nls \ --disable-xft \ LIBS="-lxcb -lXdmcp -lXau -lpthread -lws2_32" Then, build and install with $ make install DESTDIR=$(pwd)/stage You can then copy the whole "stage" directory to a Windows machine and run it on your choice of X server. == Optional Features Fluxbox supports the XShape extension of X11R6. This support is enabled by default, but may be overridden by specifying `--disable-shape' on the configure script's command line. Fluxbox supports Window Maker dockapps (warning: restarts from wmaker to fluxbox don't always handle dockapps correctly) with a gadget called the Slit. The Slit is compiled into Fluxbox by default, but may be overridden by specifying `--disable-slit' on the configure script's command line. Fluxbox supports a rendering effect called "faked interlacing" which darkens every other line in rendered images. This support works only for gradient images. It is compiled in by default, but may be overridden by specifying `--disable-interlace' on the configure script's command line. Fluxbox uses a timer which allows it to periodically flush its pixmap cache. It is enabled by default, but may be overridden by specifying '--disable-timed-cache' on the configure script's command line. Also, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. fluxbox-1.3.5/PaxHeaders.25974/ChangeLog0000644000175000017500000000013212106662425016026 xustar000000000000000030 mtime=1360749845.871812656 30 atime=1360749874.491812473 30 ctime=1360750008.983811612 fluxbox-1.3.5/ChangeLog0000644000175000017500000065735012106662425014075 0ustar00mgmg00000000000000 (Format: Year/Month/Day) ----------------------------- Changes for 1.3.5 *13/02/13: * Bugfix: reenable 'If', 'Or', 'And' actions. ----------------------------- Changes for 1.3.4 *13/02/10: * More subtle brightening of colors * FbTk::FbTime::mono() yields microseconds since fluxbox started *13/02/06: * Feature: Added 'LHalf' / 'RHalf' buttons for titlebar * Bugfix: Elliptic gradients are rendered correctly now * Bugfix: Avoid integer overflow for some gradients * Code optimization in texture rendering code (RAM, reduced branches) *13/02/01: * Feature: Added 'ClientPatternTest' command to help debugging client patterns via 'fluxbox-remote' * Bugfix: Handle FbTk::Timers with equal end time correctly * Bugfix: Align ClockTool timers with system clock to trigger clock switches when the users expects them *13/01/23: * Improved calculation of brighter colors *13/01/20: * Added 'he_IL' translations (Thanks Genghis Khan) *13/01/17: * Bugfix: Invert a texture correctly *13/01/16: * Cleanup of build-system and .gitignore *13/01/15: * Simplification of FbTK::Timer code *13/01/13: * Simplification of FbTK::TextureRender code * Use the same lookup-tables for solid colors and gradient textures *13/01/12: * Bugfix: Do not handle list of timers in place * Improved documentation of code *13/01/10: * Including the code of the SystemTray into the binary is optional now * Reduce window-movement lagging on slower systems (Thanks Aymeric Vincent) *13/01/02: * Build-system improvements (Thanks Sami Kerola) *12/12/31: * Removed bashisms from fluxbox-generate_menu (Thanks Sami Kerola) *12/12/30: * Build-system improvements (Thanks Sami Kerola) * Combile fix: forgotten parentheses in code for MacOS ----------------------------- Changes for 1.3.3 *12/12/30: * Use WM_WINDOW_ROLE for fluxbox' own windows (Thanks Vladimir Pavlov) * Bugfix: Use window.stuck.pressed.pixmap in (Thanks Vladimir) * Bugfix: Do not render the text twice in FbTk::TextButton (Vladimir) * Bugfix: Replace (deprecated) XKeycodeToKeysym() with XkbKeycodeToKeysym() (Thanks Sami Kerola) *12/12/11: * Bugfix: use expanded style-filename #3576586 (Mathias) *12/12/05: * Simplified build system (Mathias) *12/11/18: * Added option for focus-revert only on current head (Thanks to Hendrik Iben) *12/11/08: * Massive rewrite of FbTk::TextureRenderer (Mathias) much simpler and shorter code, easier to read and to maintain *12/11/06: * Added 'OnTab' modifier for Keys file (Thanks Julien Viard de Galbert) *12/10/02: * Improved vertical alignment of text in FbTk::TextButton (Mathias) New formula: (height - font_ascent) / 2 - 1. Better results when the Iconbar is configured to use different fonts (eg, ClockTool and IconButtons) *12/09/14: * Fixed regression: Use microseconds in DelayCmd (Mathias) * Bugfix: (re)setting timeouts on a running FbTk::Timber corrupts timer list (Mathias) *12/09/09: * Added actions 'NearestCorner', 'NearestEdge', 'NearestCornerOrEdge' (Thanks Michael Abbott) *12/08/28: * Changed timer functions to use a monotonic increasing clock (Mathias) gettimeofday() is subject to be changed on daylight-saving or other ntp-related events (leap-seconds). It might also change back in time. clock_gettime() (or mach_absolute_time() on MacOSX) are monotonic increasing and do not change back in time. See FbTk::FbTime. *12/07/29: * Fix placement of transient Windows (Thanks Peter Hercek) There might be 'holes' in a given multimonitor setup. Windows should not be (mis)placed in such invisible areas. *12/07/27: * Added theme ressources: menu.hilite.font, menu.hilite.justify (Thanks to Vladimir A. Pavlov) *12/07/14: * Improved font related documentation (Mathias) *12/07/08: * Respect WindowState::DECORM_MENU to show the menu button on a window (Mark) * Improved documentation for TAB decoration mask (Mark) *12/07/06: * Make 'Next/PrevWindow' skip modal windows (Mark) *12/07/01: * Added 'fullscreen', 'maximizedhorizontal', 'maximizedvertical' tests to client patterns (Mark) *12/04/10: * Fixed compiler issues (Paul) * Bugfix: Don't draw the interlace lines 1px too far (Mathias) *12/04/06: * Allow percentage values for some Window commands (Thanks Lajos Koszti) *12/01/04: * Changed nls/it_IT/Translation.m to latin1 (Thanks skizzhg) *11/11/15: * Added _MOTIF_WM_INFO atom to advertise mwm hints (Thanks Daniel Diaz) * Removed 0-pointer check before delete[] (Paul) *11/11/02: * Fixed compiler and other code style issues, #3484291 etc (Thanks Ryan Pavlik) *11/10/31: * Fixed build system and code to build on Microsoft Windows (Thanks Ryan Pavlik) Added documentation about cross compiling as well. * Made startup failures more verbose (Thanks to Ryan Pavlik) *11/10/28: * Fixed utils and code to work on Microsoft Windows (Thanks to Ryan Pavlik) * Several fixes in all over the place (string checks, build system, I18n, signal handling, sync() etc; Thanks to Ryan Pavlik) ----------------------------- Changes for 1.3.2 *11/10/22: * Bugfix: possible crash at SIGINT / exit (Mathias) *11/10/17: * Removed (obsolete) Gnome window manager hints (Mathias) *11/10/15: * Cleaned master translation file from obsolete stuff (Thanks skizzhg) Marked obsolete entries as _OBSOLTE to help other translators to identify them. Also, removed entries which are meant for error reporting anyway. * Updated italian translation (Thanks skizzhg) *11/09/17: * Tons of changes all over the place (Pavel) RefCount, FbTk::Timer, const Signals, Documentation fixes etc *11/09/11: * Compilefix: build without 'iconv' support (Thanks to Peter Korsgaard) *11/09/10: * Bugfix: sync the copied config files to the disk before continuing to launch. This avoids possible race conditions, eg. under MacOSX (Mathias) *11/09/01: * Relicense 'ostrich' theme (to please Debian / Ubuntu) (Sven) * Bugfix: Do not change workspaces when using NextWindow/PrevWindow in toolbar (Mathias) *11/08/26: * Mapping keysyms to keycodes after 'MappingNotify', closes #3386257 (Mathias) * Regrab ButtonMotionMask, needed for 'Move' events in .fluxbox/keys (Mathias) *11/08/11: * Fixed using _NET_WM_ICON wrongly, (re)closes #1852693 (Mathias) * Updated 'bloe' and 'arch' styles to work without XPM support (Sven) *11/05/16: * Fixed Textdialog and TooltipWindow style rendering bugs, added parentrelative labels (Thanks Nacitar Sevaht) *11/05/10: * Use the new signal system exclusively (Pavel) In 2010 Henrik introduced a new signal/slot system as a replacement to the observer/subject code. That transition was never completed. Pavel cleaned up the missing parts, fixed some crashes related to restart() / shutdown of fluxbox. *11/05/09: * Fix build system (Pavel) *11/05/08: * Added check for CARDINAL via client patterns (Thanks to Nacitar Sevaht) *11/04/27: * Fixed build system issues, tuned .gitignore (Thanks Pavel) *11/04/25: * Bugfix: do not warp workspaces with only one workspace (Mathias) *11/04/15: * Fixed some compiler warnings (Thanks Pavel) *11/04/14: * Bugfix: crash on Sparc64, closes #3285968 (Thanks David Coppa) * Fixed typo on style 'MerleyKay', closes #3286430 (Thanks David Coppa) *11/04/11: * Adjusted tips of 'fbsetbg' to current behavior (Thanks skizzhg) *11/04/09: * Fixed some clang-compiler warnings (Thanks to Pavel) * Fixed VPATH builds (Thanks to Pavel) *11/04/03: * Bugfix: correct calculation of height if container is rotated vertically, closes #3195728 (Thanks to Gediminas Liktaras) *11/04/02: * Fixed some typos in the manpages (Thanks to Pavel Labath) *11/03/29: * fluxbox-generate_menu cleanups (Thanks slakmagic at gmail com) *11/03/28: * Compile fix: gcc-4.6.x needs for 'size_t' (Thanks Danial Diaz) * Updated turkish translations (Thanks Mesutcan Kurt) *11/03/23: * Compile fixes for Sunstudio12 (sunCC 5.1), cosmetics (Mathias) * Fix 'sstream' configure test (Mathias) *11/03/19: * Bugfix: delete configmenu first at shutdown (Henrik) * Bugfix: reposition windows only if invisible (Mathias) * API cleanup (Mathias) * Reduced code deduplication (Mathias) *11/03/18: * Bugfix: crash when using ClientMenu after changing the client, closes #3210493 (Mathias) * Bugfix: misordered Toolbarplacmenet strings, closes #3195721 (Mathias) * Compiler patting, closed #3204402, love for src/tests and manpages (Mathias) *11/02/27: * removed (outdated) russian documentation (Thanks Slava Semushin) ----------------------------- Changes for 1.3.1 *11/02/25: * Bugfix: submenus didn't hide if session*menuDelay was > 0 (Mathias) *11/02/24: * Bugfix: do not crash when moving transient windows between Workspaces (Mathias) * Bugfix: correct calculation of SystemTray width / height, closes #3150939 (Mathias) * Bugfix: place WindowMenu correctly upon first call, closes #2731524 (Mathias) * Code cleanup (Mathias) *11/02/23: * Bugfix: possible crash when getting an Unmap before a FocusIn event (Henrik) * Code cleanup (Mathias) *11/02/22: * Bugfix: crash for Textures with dimension == 0, closes #3188223 (Mathias) * Bugfix: render 'sunken' Textures correctly (Mathias) * Bugfix: AlphaMenu did not show correct alpha values (#3187373) (Mathias) g++ -Os triggered strange conflict with returning 'int' values from an 'unsigned char' function. Changed fluxbox to hold alpha values as ints. * General code cleanup (Mathias) *11/02/21: * Better option for 'feh' when keeping aspect ration (thanks Jeremiah Mahler) *11/02/20: * Bugfix: possible crash if m_holder == 0 (Henrik) * Spelling fixes (thanks Paul) ----------------------------- Changes for 1.3.0 *11/02/19: * Readded default style to data/init (Henrik) *11/02/15: * updated pt_BR translations (thanks to Sergia Cipolla) *11/02/03: * Allow to override 'Focus New Windows' via .fluxbox/apps (thanks Peter Hercek) * Bugfix: semantical difference between WinState::Decoration and Remember::save() (thanks Peter) *11/02/25: * Added 'fontconfig' as link dependency if Xft is used (Mathias) *11/01/24: * Added syntax / coloring for 'Vim' to '3rd/vim' *11/01/18: * Bugfix: Prevent SIGFPE when using nxserver, closes #2813828 (Mathias) *11/01/15: * Code cleanup (Mathias) *11/01/06: * Bugfix: handle result of DisplayString() correctly, bug #3136775 (Mathias) fluxbox assumed that the result of DisplayString() contains always the screen number. This is not the case in some (newer) versions of libX11. *10/10/13: * Bugfix: handle situation when DISPLAY is not set (Mathias) *10/09/21: * Bugfix: use system() for launching 'fluxbox-update_configs' (Mathias) FbCommands::ExecuteCmd() was used before. This changes the config while fluxbox is loading (from the config), this caused some nasty effects on 'slower' systems. system() now blocks until 'fluxbox-update_configs' is done and then launches flubox. *10/09/19: * Compile fix: fluxbox loves g++-4.1 again (Mathias) *10/09/18: * Bugfix: redesigned bootstrapping (Mathias) The old bootstrap could lead to corrupt files. We now first bootstrap, then try to upgrade potentially old config files and after that we bring up flubox. This eliminates to signal USR2 from 'fluxbox-update_configs' the current running fluxbox instance and retriggering bootstrapping and updating the config files which could again lead to resignal fluxbox. *10/09/17: * New command 'ArrangeWindowsVertical' (thanks John K Pate) * Code clean up (Mathias) * Bugfix: do use soon-to-be-dead pointers for putenv() (Mathias) *10/09/15: * Bugfix: correct refcounting of the corner shapes (Mathias) * Code clean up (Mathias) *10/09/14: * Bugfix: create corner pixmaps of FbTk::Shape only once per Screen (Mathias) * Bugfix: correctly free corner pixmaps of FbTk::Shape (Mathias) * Continue to clean up code (Mathias) *10/09/13: * Continue to clean up code (Mathias) *10/09/11: * Implemented simple tagging mechanism (Mathias) Apply (or delete) a 'tag' with the new command "SetXProp TAG1=yes", then use the client pattern mechanism to match such 'tagged' windows, eg. "NextWindow (@TAG1=yes)" * Add '(workspace=[current])' to default keys-file (Mathias) Upgraded the config version to '13', also updated 'fluxbox-update_configs' to add '(workspace=[current])' to old '~/.fluxbox/keys' for lines having 'NextWindow/PrevWindow/NextGroup/PrevGroup'. * Code cleanup for 'fluxbox-update_configs' (Mathias) Moved the code for each 'update step' into its own function. *10/09/10: * Do not limit cycleFocus() to windows on the current workspace (Mathias) This could be achieved by adding '(workspace=[current])' to the client pattern of the command anyway. Closes #1732115: 'focus urgent (chat) windows on other workspaces' * Continue to clean up code (Mathias) *10/09/09: * Bugfix: 'Shape' of a menu was created before the parent window (Mathias) * Continue to clean up the code base, mostly by using FbTk::Util::clamp() *10/09/08: * Introduced 'FbTk::BidiString' which holds both the logical content and the visual reordered version of the content of a string. this helps to reduce the number of calls to reorder the string before drawing it (as introduced in the patch from Ken Bloom) and to be more consistent in menus and textboxes (drawing cursors and underlining text). (Mathias) * Minor changes all over the place, mostly by using simpler or shared code (Mathias) *10/09/05: * Added support for bidirectional text (thanx to Ken Bloom), bug #2801836 *10/08/24: * Code deduplication and simplification (Mathias) *10/08/20: * Added new action 'ActivateTab' (Mathias) *10/06/01: * Added new focus model 'StrictMouseFocus'. This will affect focus when closing, moving, lowering windows, changing desktops, etc, whereas the 'MouseFocus' model will only change focus when you move the mouse (Jim) *10/05/01: * Fixed placement bug of maximized windows when moved out of a xinerama screen (Mathias) *10/04/30: * Bugfix: _NET_WM_STATE was not set correctly on 64bit systems (Mathias) *10/03/26: * Changed title signal from Focusable to use the new signal system (Henrik) *10/03/17: * Changed debug output to use fbdbg instead of cerr (Henrik) *10/01/19: * Reduce clock update checks (modified patch of Thomas Habets, thanx) *10/01/14: * Fixed spelling in documentation (thanx Paul Tagliamonte) *09/12/18: * Implemented new 'MoveN' and 'ClickN' support for keys file (Mathias) *09/12/15: * Updated fluxbox-keys documentation, added 'Fullscreen' (thanx Paul Tagliamonte) *09/11/23: * Keep 'maximized/fullscreen' state when moving a window between heads window (thanks Michal Zimen) *09/10/03: * Build system cleanup: Check for extension headers (Mathias) *09/10/02: * Bugfix: fluxbox-update_configs wiped out keys file (Mathias) *09/10/01: * Cleanup, compiler fixes, simplification all over the source (Mathias) *09/09/23: * Bugfix: Empty submenus lead to misfunction of the 'HideMenus' command (Mathias) *09/09/12: * Implemented visibility of titlebar buttons via the apps file (Mathias) *09/06/28: * Allow matching screen number in ClientPattern (thanks Peter Hercek) * Hide the menu when you click on a window (Mark) * Make Raise/LowerLayer commands accept integer argument, default 2 (Mark) * Change default toolbar head to 1 (Mark) * Add window menu and alt-tab to error case for keys file (Mark) * Revert to relative iconbar alignment when too many windows are open (Mark) *09/05/26: * Fixed unexpected window focus changes under "focus follows mouse" (Jim) * Make fbsetbg quieter on '-z' if there's no lastwallpaper (Jim) * Add new "background: unset" property for use in overlays. (Jim) * Key file parsing error for MacroCmd with unterminated {...} pairs (Jim) * Many documentation updates (Jim): * Rewrote most manpages into asciidoc format * Split monolithic fluxbox(1) into fluxbox-apps(5), fluxbox-menu(5) * Renamed fluxstyle(1) to fluxbox-style(5) *08/11/01: * Don't reload keys file when modifier map changes, just regrab (Mark) *08/10/15: * Don't allow resizing to negative dimensions (Mathias) * Ignore XRandr events that don't change the screen size (Mark) *08/10/13: * Merge menuDelay and menuDelayClose options in init (Mark) *08/10/07: * Allow relative paths for background images in style files (Mark) *08/10/05: * Remove menu modes (Mark) * Remove follow models (Mark) * Remove line style resources from init file (Mark) * Remove rootcommand from init, as fbsetbg is run automatically nowadays. For other purposes, use startup instead. (Mark) *08/10/04: * Recognize --option in addition to -option for long option names (Mark) * Add -print option to fbrun that sends the result to stdout instead of running it (Mark) * Fix CustomMenu and ClientMenu commands from fluxbox-remote (Mark) * Break emacs-style keychains after one invalid key has been pressed (Mark) * Fix flickering of shaped windows, #2131548 and #2001027 (Mark) *08/10/01: * Don't flash original window while cycling (Mark) * Reset background when screen changes resolution (Mark) * Restore missing config files on reconfigure (Mark) *08/09/28: * Changed resize signal, in screen, to use the new signal system (Henrik) * Changed workspace area signal to use the new signal system (Henrik) * Changed focused window signal to use the new signal system (Henrik) *08/09/25: * Fixed issues with round corners on restart, #2110455 (Mark) *08/09/21: * Changed signals 'icon list', 'client list', background changed', 'workspace names', 'current workspace' signal in BScreen to use the new signal system (Henrik) *08/09/23: * Fix crashes when analyzing bad constructed _NET_WM_ICON data (Mathias) *08/09/18: * Changed workspace count signal in BScreen to use the new signal system. (Henrik) * Added new Signal/Slot system to FbTk (Henrik) This is suppose to replace the obsolete Subject/Observer classes. * Fix crash when using SetTitleDialog on a window that's been closed (Mark) ----------------------------- Changes for 1.1.1 *08/09/14: * Fixed a minor pixmap resource leak (Henrik) *08/09/11: * Fixed unshading crash (Mark) * Be aware of badly specified _NET_WM_ICONS (Mathias) *08/09/03: * Added windowmenu to distpackage (Mark) ----------------------------- Changes for 1.1.0 *08/09/01: * When the current menu item gets disabled, highlight its nearest neighbor and add separators to the focus model menu (Mark) *08/08/22: * Remove borders from maximized windows (Mark) * Add -sync command line option for debugging X issues (Mark) *08/08/21: * Added SendToNextHead and SendToPrevHead commands (Mark) *08/08/20: * Added SetDecor key command (Mark) *08/08/19: * Add new [transient] tag to apps file to match transient windows (Mark) *08/08/18: * Combined code for MoveTo key command and saved window positions (Mark) Side effects: - both now have the following options: TopLeft Left BottomLeft Top Center Bottom TopRight Right BottomRight - the CENTER reference in apps now behaves like WINCENTER - some previously saved positions will be wrong, since they are now computed relative to the toolbar and slit - CENTER/WINCENTER will now work properly with Xinerama when placing the window on a head other than the top left one * Add Top Center, Left Center, Right Center, and Bottom Center tab placement options (Mark) *08/08/17: * Add new key commands SetTitle and SetTitleDialog (thanks Matteo Galiazzo) *08/08/06: * Created manual for fluxbox-remote (Mark) * Automatically restore the previous background on startup (Mark) *08/08/05: * Fixed Focus key command (Mark) * Added new SetLayer key command (Mark) * Make ShowDesktop command toggle between showing windows and desktop (Mark) * Created new `fluxbox-keys' man page (thanks Jim Ramsay) * Make resize cursors consistent (thanks Dmitry E. Oboukhov) *08/08/04: * Add selection box to various "choose one of these" menu items (Mark) * Add window list argument to ArrangeWindows (Mark) *08/06/26: * Remove antiquated dithering code (Mark) *08/06/20: * Move default window menu to ~/.fluxbox/windowmenu (Mark) *08/06/08: * Add (urgent=yes|no) option to client patterns (Mark) *08/06/06: * Allow window menu items in ordinary menus (Mark) *08/06/04: * Leave titlebar and handle borders alone with borderless windows (Mark) *08/06/03: * Add -list-commands command line option, which prints a list of valid fluxbox commands (Mark) *08/05/13: * Only reload custom menus when necessary (Mark) *08/05/12: * Only reload the keys file if the contents have changed (Mark) * Modifying the apps file no longer requires a reconfigure (Mark) *08/05/09: * Made tooltip in toolbar update when the title changes (Henrik) *08/05/05: * Add tooltips for iconbar buttons (thanks Matteo Galiazzo) *08/05/02: * Minor changes for fluxbox-generate_menu (thanks skiidoo) *08/05/01: * Notice when user replaces a non-existent menu file (Mark) *08/04/30: * Don't allow empty root menu (Mark) *08/04/27: * Added SimpleObserver class. (Henrik) *08/01/27: * Reload the Xinerama layout on RandR signal (Tomas) * Move windows out of inactive heads upon Xinerama layout change (Tomas) *07/12/28: * Added new key command :Delay {} [], which runs the command after a delay of microseconds (default is 200 milliseconds) (Mark) *07/12/25: * Updated german translations for maximization menu (thanks Christian Loosli) * Removed KDE configure option, since it didn't do anything (Mark) * Added resource session.screen.slit.acceptKdeDockapps: (Mark) *07/12/23: * Added new style items window.(un)focus.border{Width,Color} (Mark) *07/12/21: * Added new key command :StartTabbing (Mark) *07/12/20: * Added new key command :ForEach (or :Map) (Mark) - :ForEach {} [{ [{}] [] }] - For example, the following command will shade all windows on the current workspace: ForEach {shade} {{groups} Matches (workspace=[current])} - can be any combination of `static' and `groups' where static means windows are listed in creation order, and groups means individual tabs are not considered separately - This replaces syntax such as `:Minimize (layer)', which no longer works *07/12/19: * Don't let transient windows steal focus from other programs (Mark) *07/12/18: * NLS entries for Mouse Tab Focus and Click Tab Focus were switched - please make sure they're right now in your language, bug #1786566 (Mark) * Open transient windows on same workspace as parent (thanks Sascha Hunold) * Holding control while clicking on a menu item will now keep the menu open (Mark) *07/12/17: * Fix startup items in apps file with specified screen number, bug #1843325 (thanks Martin) *07/12/14: * Fix compiling with gcc 4.3 (thanks Dmitry E. Oboukhov) *07/12/13: * Fix configure option --with-style (thanks Slava Semushin) * Close menus only when they lose focus (Mark) * Moved command parsing code all over the place -- expect any patches that add new commands to be broken (Mark, Simon) *07/12/11: * Added new resize modes for key command StartResizing: NearestEdge, Left, Right, Top, Bottom (Mark) * Only allow one menu to be open at a time (Mark) *07/12/09: * Added OnTitlebar and Double modifiers to the keys file for clicks on the titlebar and double clicks, respectively (Mark, thanks Matteo Galiazzo) - For example, `OnTitlebar Double Mouse3 :Maximize' will maximize a window when you double click on the titlebar with the right mouse button - Note: if you have commands bound to both a single and double click, the single click command will still be executed on the first half of a double click - Added new key commands ShadeOn and ShadeOff that set whether or not a window is shaded, rather than toggling the current state *07/11/22: * Added some new special keys to the keys file: FocusIn, FocusOut, MouseOver, MouseOut, ChangeWorkspace (Mark) - FocusIn/FocusOut correspond to a window gaining or losing focus, e.g. the following will raise all xterms when one gains focus: FocusIn :If {Matches (xterm)} {Raise (xterm)} {} - MouseOver/MouseOut correspond to the mouse moving over the window or toolbar (when used with OnToolbar) -- OnDesktop not yet supported, e.g. the following will unshade a window when you move your mouse over it with alt pressed: Mod1 MouseOver :If {Matches (shaded=yes)} {Shade} {} - ChangeWorkspace corresponds to the workspace being changed, e.g. the following will set a different wallpaper for each workspace: ChangeWorkspace :Exec fbsetbg ~/.fluxbox/bg$(xprop -root _NET_CURRENT_DESKTOP | awk '{print $3}').png * Added translations for zh_TW (thanks Wei-Lun Chao) * Fix division by 0 error when resize increments are set to 0 by an application, bug #1836182 * Added conditional statements to key commands (Mark) - for example, this will search for an open xterm window, cycle through them if there are any, or else open one: Mod4 t :If {Some Matches (xterm)} {NextWindow (xterm)} {Exec xterm} - the syntax is :If {} {} {} - `Matches ' is currently the only test you can make; when used alone, it tests the focused window or the clicked window for OnWindow mouse events - there are many ways to combine tests: - `Some ' returns true if any open client matches - `Every ' returns true if every open client matches - `Not ' negates the value of - `Or {} {} ...' returns true if any of the tests is true - `And {} {} ...' returns true if all of the tests are true - `Xor {} {} ...' returns the boolean xor of the truth values *07/11/16: * Added new key command :Focus [] that focuses a window (e.g., using OnWindow or specified using a window pattern) (Mark, thanks Tomas Janousek) * Using ToggleDecor from Deco=TAB should hide tabs (thanks Tomas Janousek) *07/11/12: * Allow arbitrary window patterns for the iconbar mode (Mark) - Note: for now, if you match against the current head of a window, it will not be updated as expected in the toolbar *07/11/08: * Fix crash when cycling focus and window closes, bug #1787345 (Mark) *07/11/04: * Update autoraise delay on reconfigure (Mark) *07/10/31: * Move fullscreen windows to normal layer when they lose focus (Mark) *07/10/24: * Fixed some gcc 2.96 compile issues ( Henrik ) * Introduced (workspacename=...) for pattern matching and changed (workspace=...) to use the workspace number, indexed from 0 (Mark) * Reenabled raising window if window was moved by mouse by 0 pixels (Mathias) *07/10/23: * Adding/removing workspaces wasn't updating menu (Mark) * Support remembering maximized, minimized, and fullscreen state (Mark) - [Maximized] {yes|no|horz|vert} - [Minimized] {yes|no} - [Fullscreen] {yes|no} - also fixed window placement when remembering head but not position * Allow negated patterns, e.g. (name!=xterm) (Mark) *07/10/22: * Added option "mouse" to client pattern ( Henrik ) This is usefull for xinerama. For example: Mod1 Tab :NextWindow (head=[mouse]) This will cycle focus through windows that are on the same head as the mouse pointer. * Fixed crash bug at restart. ( Henrik ) * Replaced modKey with new commands StartMoving and StartResizing (Mark) - your keys file should be updated automatically - they must be used with a mouse button, or they won't work - StartResizing takes one or none of the following arguments: NearestCorner, Center, TopLeft, TopRight, BottomLeft, BottomRight *07/10/21: * Allow decorations bitmask to be specified using '0x' (Mark) *07/10/18: * Fixed gcc 2.96 compile problem ( Thanks rumpole at hotmail ) bug #1809786 *07/10/15: * Added OnWindow modifier to keys file (Mark) *07/10/14: * Added support for transient windows in window patterns, e.g. (transient=yes|no), defaulting to "no" for the apps file (Mark) * Bugfix for SendToPrevWorkspace/TakeToPrevWorkspace (Mathias) *07/10/13: * Merged pre-devel branch; see all Changes since 1.0.0 (Mark) * Updated ru_RU (Thanks Konstantin Shashkin) * deiconify windows via :Deiconify in reverse order (Mathias) *07/05/23: * Added key command :Attach which groups all windows matching the given pattern (Mark) *07/05/20: * Added resources session.screen.maxDisable{Move,Resize}: , which prevent maximized windows from being moved/resized (Mark) *07/05/19: * Changed behavior of resource session.screen.followModel (Mark) - now only options are Ignore and Follow, the latter using the setting in session.screen.userFollowModel *07/05/16: * Added new resource session.screen.noFocusWhileTypingDelay: (Mark) - specifies a time in milliseconds that new windows should not gain focus while the user is typing in the focused window *07/05/13: * Added new placement policies {Row,Col}MinOverlapPlacement. They behave the same as {Row,Col}SmartPlacement when the window fits but fall back on minimizing overlap with other windows instead of CascadePlacement (Mark) *07/04/23: * Set IconicState on all unmapped clients and unmap clients with frames, as per ICCCM 4.1.4 (Mark) * Added ClientMenu key command, which pops up a menu of open windows, based on a pattern match - e.g. :ClientMenu (workspace=[current]) (minimized=no) *07/04/11: * Added resource session.screen.maxIgnoreIncrement: , to disable size checking when maximizing a window (e.g. terminals) (Mark) - Also added a new configuration submenu for maximize options, to be filled at a later date *07/04/08: * Added OnToolbar modifier to keys file (Mark) *07/04/06: * More changes to theme handling (Mark) - introduced window.label.(un)focused.{justify,border{Color,Width}}, which fallback to window.label.{justify,border{Color,Width}} before window.{justify,border{Color,Width}} - this has the backwards-incompatible effect that toolbar.iconbar.(un)focused.* fallback first to toolbar.iconbar.* and then to window.label.* *07/04/03: * Added window.label.(un)focused.font to styles (Mark) *07/03/31: * [group] tag in apps file may now have a pattern appended to it, and a new window will only be automatically attached to the group if the group matches that pattern -- e.g. [group] (workspace) (shaded=no) will only automatically group with windows on the current workspace that are not shaded (Mark) * Lots of window commands now take a client pattern as an additional argument, and the command will then be applied to all matching windows (Mark) - For example: `SendToWorkspace 2 (xterm)' will send all xterm windows to workspace 2 - Here is the full list of affected commands (which is not to imply they all necessarily make sense to do): Fullscreen, Minimize, Maximize, MaximizeVertical, MaximizeHorizontal, SetAlpha, Resize, ResizeTo, ResizeHorizontal, ResizeVertical, MoveTo, Move, MoveRight, MoveLeft, MoveUp, MoveDown, Raise, RaiseLayer, Lower, LowerLayer, Close, Kill, Shade, Stick, ToggleDecor, SetHead, Tab, SendToNextWorkspace, SendToPrevWorkspace, TakeToNextWorkspace, TakeToPrevWorkspace, SendToWorkspace, TakeToWorkspace, NextTab, PrevTab, MoveTabLeft, MoveTabRight, DetachClient *07/03/30: * Changed syntax for window cycling (Mark) - Instead of a bitmask, the window cycling functions NextWindow, PrevWindow, TypeAheadFocus, and GoToWindow now take a list of options enclosed in {} followed by a pattern similar to those used in the apps file. - Examples: * NextWindow {static groups} (shaded=yes) (name=xterm) - cycles through all shaded xterms in creation order, only focusing the active tab in the group * GoToWindow 3 (title=[current]) - focuses the third client in last-focused order with the same title as the currently focused window - The options are: name, class, title, role, maximized, minimized, shaded, stuck, focushidden (can't be disabled), iconhidden, workspace (matches workspace names, not numbers), head (numbers), and layer (names) - Parsing is a pain, so you'll have to update your keys file yourself for now. *07/03/29: * Removed groups file; entries will be added to the apps file automatically (Mark) * Fixed a problem with programs starting in IconicState (Mark) *07/03/27: * Added new resource session.screen.clientMenu.usePixmap that puts the window's icon in the workspace and icons menus: default true. (Mark) - For some reason, it doesn't work with un-shaped icons yet, but I've spent way too many hours already trying to figure out why * Use IconTitle in iconbar for minimized windows (Mark) *07/03/25: * Added new resource session.screen.tabs.usePixmap that puts the window's icon in the tab, if available. This is on by default. (Mark) *07/03/24: * Added new key command GoToWindow (Mark) - Syntax is GoToWindow [], where the int gives the position of the desired window with respect to a list of windows, and the bitmask is the same as for NextWindow. A negative number for will count back from the end of the list. - Particularly useful examples are GoToWindow 9 and GoToWindow 25, which will focus the window at position in the iconbar modes Workspace and WorkspaceNoIcons, respectively. * Fixed creation order window cycling with tabbed windows (Mark) *07/03/21: * Added new command TypeAheadFocus (Mark) - syntax is the same as for NextWindow; when you run the command, you can start typing the title of the window, and it will gain focus; pressing tab will cycle through all matching entries using the options specified; when you've found the window you want, just press return or escape -------------------------------- Changes for 1.0.0: *07/10/08: * Changed default style to bloe *07/10/07: * Added new style: bloe ( Thanks Sven Michel ) * minor addons to fbgm (Thanks Patrik Wenger ) *07/09/30: * Removed some old styles ( Henrik ) Clean, Cthulhain, Spiff, Carbondioxide, Rampage, Minimal * Added new styles: ( Thanks Sven Michel ) ostrich zimek_darkblue, zimek_green, zimek_bisque, carp, arch, bora_black, bora_blue, bora_green, green_tea * Load menu and workspacemenu mouse bindings if error when loading initial key bindings. Else can't get to menu to reload config (Simon) *07/09/20: * Updated ru_RU ( Thanks Slava Semushin ) *07/09/13: * Move dock windows to Dock layer and remove decorations (Mark) *07/09/09: * Added support for Slovak language ( Thanks Martin Lukac ) *07/09/07: * Fix crash when changing toolbar visibility, #1786765 (Mark) *07/08/27: * Fix hardcoded Mod1, use ModKey() now (Mathias) *07/08/20: * Fix some focus issues with moving windows between workspaces (Mark) *07/08/12: * Updated de_* translations, #1767986 ( Thanks Christian Loosli ) *07/08/11: * Updated Swedish translation sv_SE ( Henrik ) *07/08/10: * Update Chinese translation zh_CN, thanks yhlfh *07/08/09: * Fix shaping handling, stage 2, (Simon) - rewrite the core of the Shape handling so that it properly merges client and frame shapes. Fixes all sorts of odd shaping behaviour, and incidentally xeyes now gets a visible frame (not having the frame was actually a bug). * Fix shaping handling, stage 1, (Simon) - do borders properly with rounded corners - propagate client clip mask as well as bounding mask *07/08/07: * Rotate toolbar background texture along with toolbar, bug #1694959 (Mark) *07/08/06: * Fix KDE Dockapps on restart (dont unmap), and some minor tweaks (Simon) *07/08/05: * When saving window info for remember use class name AND instance name, AND role if present. (Simon) - This should fix firefox/thunderbird issues, but note that mplayer (nogui) sets the vo driver name as the instance name. * Fix menu heading encoding (Simon) sf.net bug #1712583: NLS:Non-latin characters displayed incorrectly in menu title * Fix error passing --with-locale path in ./configure (Simon) sf.net bug #1708859 * Add missing translation strings (Simon) - Thanks tenner (de_*) - Thanks bobbens (es_ES) - Thanks Guillermo Patterer (es_AR) - Thanks me (C/en_US/en_GB) - Thanks izhirahider (pt_*) * Fix System Tray restart issues (Simon) (including gaim/pidgin crash-on-restart) sf.net #1524098, #1633718 (and older?) *07/07/31: * Change _NET_WM_WINDOW_TYPE_MENU to use TOOL decoration type (Mark) *07/07/24: * Don't allow ToggleDecor with fullscreen windows, and make it show decorations for windows that don't have a titlebar by default (Mark) *07/07/08: * Clean up state and workspace window properties on client close (Mark) *07/07/07: * Don't overwrite changes to init file on reconfigure (Mark) * Make things work a little better with configure script's --program-prefix and --program-suffix options (Mark) * Allow negative numbers in :Workspace command, which counts backwards from the last one (Mark) * Right clicking on a submenu didn't revert focus to its parent (Mark) * Pressing escape in a torn menu didn't work (Mark) * Save workspace names when changing through menu, bug #1748967 (Mark) *07/07/06: * When saving window information, use the class name instead of instance name by default (Mark) * Prevent apps (e.g. MPlayer) from moving/resizing just after creation if the position/size is saved in the apps file (Mark) *07/07/03: * Avoid some problems with tabbed windows and resize increments (Mark) * Added utility fluxbox-remote, which allows script access to most fluxbox commands; support must be turned on in the init file with session.screen.allowRemoteActions; the syntax is, e.g., fluxbox-remote "CustomMenu ~/.fluxbox/custommenu" (Mark) * Update systemtray and KDE dockapps in slit when background changes (Mark) * Fixed resource usage due to Skype 1.4, bug #1745678 (Mark) *07/07/02: * Remember original size/position in apps file for shaded or maximized windows (Mark) * Enabled Xinerama and Imlib2 support by default (Mark) * Fixed handle rendering when switching from a style without them (Mark) * Changed :Tab key command so that the last tab is focused if is larger than the number of tabs (or first if is negative and || is too large) (Mark) * Fixed some rendering problems when toolbar item borderwidth is too large and toolbar bevelwidth is set (Mark) * Moved the `Transparency' submenu next to the rest of the submenus (Mark) *07/07/01: * Added keycommands :AddWorkspace and :RemoveLastWorkspace (Mark) * More fixes for _NET_WM_STATE_MODAL and _NET_WM_STATE_DEMANDS_ATTENTION, plus a minor fix for pixmap styles (Mark) *07/06/30: * Fixed implementation of _NET_WM_STATE_MODAL (Mark) * Fixed the groups file, even though it's deprecated (Mark) * Fix _NET_WM_STATE_DEMANDS_ATTENTION with tabbed windows, #1732392 (Mark) *07/06/29: * Updates for compiling with gcc 4.3 (thanks Dmitry E. Oboukhov) *07/06/28: * Strip off additional bits in event state set by Xorg, bug #1736252 (Mark) * Added some missing Open Office entries and window managers, plus some other minor changes in fluxbox-generate_menu *07/06/16: * Fixed compile error with --disable-remember (Mark) *07/06/09: * Minor change to the /bin/sh - solution (Mathias) we are using now just $SHELL -c *07/06/08: * Fix transient windows getting tabbed from apps file and not changing layers when main window is in a lowered tab (Mark) *07/06/06: * Fix to avoid rogue instances of /bin/sh after forking away programs (Mathias) *07/06/04: * Fix fluxbox.1.in, and asciidoc, menu command is "wallpapers" not "wallpaper". asciidoc manpages are stale. * Fix submenu placement with xinerama after moving the menu between heads, bug #1479517 (Mark) *07/06/03: * Deiconify when automatically tabbing to a minimized window with focus new windows on, bug #1716899 (Mark) * Submenus of slit menu were misbehaving with xinerama (Mark) * Also send transient windows when sending a window to another workspace, bug #1716900 (Mark) * Only change layer to normal when removing _NET_WM_STATE_{ABOVE,BELOW} if the window is actually above/below the normal layer (thanks Jim Ramsay) *07/06/01: * Fixed infinite loop caused by removing the last workspace when it contains windows (Mark) *07/05/20: * Fixed bug #1717782, Bad fullscreen in ooimpress2 ( Henrik ) mwm hint had no-resize which made resizing with FluxboxWindow::setFullscreen impossible. *07/05/19: * Fixed bug #1718112, memory leak in FbWindow::textProperty ( Henrik ) *07/05/17: * Fixed some window placement issues (thanks Tomas Janousek) *07/05/16: * Fixed bug with fluxbox-generate_menu -is (thanks Jim Ramsay) *07/05/12: * Changed interpretation of Horizontal/Vertical maximization of a window that is already maximized (Mark) * Fixed tabs disappearing with [Deco] {TAB} and tabs in titlebar (Mark) *07/05/04: * Fixed infinite loop caused by deiconify command (Mark) *07/04/24: * Fixed a bug in parsing cli (Mathias, thanks to Steven Kah Hien Wong for pointing out the issue) *07/04/23: * Use asciidoc-generated manpages as the default from now on (Mathias) * Disabled resizing shaded windows (Mark) *07/04/20: * Fix slit.onhead with BOTTOMLEFT placement.(Thanks Tomas Janousek ) *07/04/19: * Fixed crash when CustomMenu command doesn't point to a file (Mark) *07/04/17: * cosmetic changes (Mathias, thanks Slava Semushin) *07/04/11: * updated asciidoc-docs, (Mathias, thanks Christian Loosli for fluxbox.de.txt) *07/04/08: * Menu when clicking workspacename in toolbar wasn't getting focused (Mark) * Buttons with different textures when pressed weren't getting reset properly (Mark) * Only replace numbers with zeros when calculating clock width (Simon) Otherwise width of things in proportional fonts can be way out. sf.net bug #1545066. *07/04/05: * Adjusted detection of Caps Lock key (Mark) *07/04/01: * Fixed a problem with windows being created in iconic state (Mark) *07/03/31: * Fix window menu context when opened by clicking on tab (Simon) sf.net bug #1652185 * Default value for $LAUNCHER, plus add util and util/fbrun to the PATH when generating install menu so it can find fbrun (Simon) * Make fluxbox-generate_menu emit [encoding] tags around all of its menus. Please check that it is the right encoding, I had to guess some as it wasn't recorded (Simon) *07/03/30: * Added fi_FI support (Thanks Pasi Juvonen, loudvr at yahoo ca) *07/03/28: * Startup file wasn't being run properly when created the first time (Mark) *07/03/24: * Updated French translations (thanks Ulrich Etile) * Fixed a little bug in fbsetbg (Mark) * Workspace Menu wasn't updating when windows changed titles (Mark) *07/03/21: * HideMenus didn't work on CustomMenus, and also fixed a memleak with CustomMenu (Mark + thanks Julien Trolet) -------------------------------- Changes for 1.0rc3: *07/03/20: * Updated doc/asciidoc/fluxbox.txt (Mathias) *07/03/19: * Active menu item wasn't getting reset properly when menu closed (Mark) * Fixed some problems with toolbar sizing (Mark + thanks Julien Trolet) *07/03/18: * Changed position remembering so it only remembers position relative to the current head (Mark) * Fixed problem with new mouse binding code when using emacs keychains (Mark) *07/03/17: * Iconified, stuck windows weren't being moved to different workspaces (Mark) *07/03/16: * Maximizing a window with aspect ratio requirements was making windows too large (thanks Tomas Janousek) * Added key command to open a custom menu file (thanks Matteo Galiazzo) - :CustomMenu /path/to/file *07/03/11: * Fixed display bug with ParentRelative menu highlight (thanks Julien Trolet) *07/03/10: * Autogrouped windows weren't getting added to the workspace menu (Mark) * Changed default toolbar layer to DOCK, as a large window could render fluxbox useless to a new user otherwise (Mark) * Fixed changing iconbar text padding requiring a toolbar refresh (Mark) * Fixed stealing focus from unmanaged windows (Mark) *07/03/07: * Fixed a little bug with reverting focus after closing menu (Mark) *07/03/06: * Changed some handling of focusing/raising transient windows (Mark) * session.screen.defaultDeco now allows same strings as apps file (Mark) *07/03/03: * Added typeahead support to menus (patch by Philipp Goedl, modified by Mark and Matteo Galiazzo) - Added new style item menu.frame.underlineColor: for displaying matching items *07/03/02: * Added support for keypad enter key in menu (Mark) *07/02/28: * Fixed some strange menu behaviors (Mark) *07/02/27: * Respect external tabs in ArrangeWindows (thanks to Tomas Janousek *07/02/25: * Update systemtray alpha along with toolbar alpha (Mark) *07/02/23: * Update EWMH state atom when maximizing windows (Mark) * Update titlebar buttons on reconfigure (Mark) *07/02/22: * Make systemtray support XEMBED protocol (Mark) *07/02/21: * Buttons should only run a command if the mouse was clicked down on the same button, e.g. bug #1437864 (Mark) *07/02/17: * Slit was creating a strut even when it wasn't visible (Mark) * Update workspace names on reconfigure, and don't overwrite workspace names not being used (Mark) * Fixed some issues with transients of inactive tabs (Mark) *07/02/10: * MaxSize and MinSize hints weren't getting updated properly -- bug #1560803 (Mark + thanks Jim Ramsay) * Fixed a bug with `session.ignoreBorder: true' (Mark) * Fixed a bug with resizing windows for clients when only the width is specified (Mark) *07/02/09: * Introduced support for mouse buttons in the keys file (Mark) - Mouse buttons are bound to new `keys' Mouse1, Mouse2, etc. - Also a new modifier `OnDesktop' to specify actions that should take place when you click on the desktop -- without this, mouse bindings are global - Obviously, more modifiers are planned, so don't ask - Introduced new command HideMenus - Added a utility to the project that automatically updates configuration files when we change the syntax -- your current mouse bindings on the desktop will be added to your keys file automatically *07/02/06: * Wrong window was being raised when attaching an unfocused window (Mark) * Make selecting `close' from the workspace menu close the correct client, rather than the active tab in the window -- selecting `close' from right clicking on a tab is still wrong, as there are complications (Mark) *07/02/05: * Made some changes to the way autogrouping in the apps file works (Mark) - Introduced new syntax [group] (workspace) to group new windows only with windows on the current workspace - Fixed an unreported bug with grouping windows on multiple screens - Groups are now associated with clients rather than windows, so they will be more robust when attaching or detaching tabs and when restarting fluxbox *07/02/04: * Layer wasn't set properly on remembered windows, and the layer menu wasn't getting updated properly, bugs #1535304, #1572683, #1646740 (Mark) * Clicking on the edge of a button didn't work, bugs #1060891, #1517747 (Mark) *07/02/02: * Reverted patch from svn 4684, allowing transparency in window buttons, until we get it working with titlebar transparency, since the old buggy behavior at least didn't break settings already in use (Mark) * Update window transparency immediately when using pseudotransparency, also introduced new key command: SetAlpha [[+-] [[+-]]] (Mark) - with no arguments, returns the focused window to default settings - with one argument, changes both focused and unfocused settings the same way - with two arguments, the first changes the focused alpha, and the second changes the unfocused alpha E.g. SetAlpha 127 +5 will set the focused alpha to 127 and increment the unfocused alpha by 5 (until it reaches 255) *07/01/26: * Fix default workspace names, and don't show empty menus (Mark) * Opening a window on a different workspace with Focus New Windows enabled should focus the window when you get to that workspace -- as a free bonus, stacking order should be more stable on fluxbox restart (Mark) *07/01/25: * Don't raise any windows above OverrideRedirect windows, otherwise they eventually get pushed to the bottomm, bug #1447583 (Mark) *07/01/24: * Detect user's shell from environment rather than assuming /bin/sh (Mark) *07/01/21: * Little fix for closing tabs with non-default gravity (Mark) Window.cc * Several fixes for menu behavior (Mark) - always give focus to the menu with the highlighted item - revert focus to menu when no other windows will take it - don't reopen closed submenus when moving the menu *07/01/20: * Make sure styles don't change the lastwallpaper in fbsetbg (Mark) * Let styles override rootCommand in init file -- for the old behavior, add `background: none' to the overlay file (Mark) * Don't place windows over toolbar at the top of the screen (Mark) *07/01/16: * Make right-clicking on iconbar button behave the same way as tabs (Mark) * Don't force user to reconfigure manually in order to apply menu and default window transparency changes; instead, in order to conserve system resources, do it a half-second after the user stops changing them (Mark) *07/01/15: * Prevent per-window alpha menu from scrolling past 0 or 255 (Mark) * Fix rootmenu disappearing on reconfigure (Mark) *07/01/14: * Stay on the same workspace after a restart (Mark) * Properly 'properly fix' shaded and stuck windows on restart -- i.e. allow windows to deiconify themselves the rest of the time (Mark) * Several changes for background style option: (Mark) - now support `background: mod' to coincide with fbsetroot -mod -- In addition to `background.color' and `background.colorTo', this option must also set `background.modX' and `background.modY' to integers - added `background: none' for styles that do not include a background - fixed bug with style backgrounds not getting set when changing styles - updated default styles to be valid wrt background options * Minor fix for window cycling on multiple screens (Mark) *07/01/13: * Only change focus order when user specifically focuses a window (Mark) *07/01/11: * Added option to :Minimize key command to lower all windows in the same layer as the focused window -- syntax is `:Minimize (layer)' (Mark) *07/01/08: * Fix another 64-bit window property (Mark/Simon) *07/01/07: * Update Iconbar Mode menu when updating settings (Mark) * Fixed workspace warping going crazy, bug #1467124 (Mark) * Fix little bug with iconbar rendering, bug #1549209 (Mark) * Fix RefCount crash and Slit deconstruction ordering (Simon) * Support per-window transparency settings. (Simon and thanks Julien Trolet, dmxen at sourceforge dot net) sf.net patch #1511042, feature #1108692 - new "Transparency" menu in the window menu - new apps file attribute: [alpha] {int int} (or just {int}) Where numbers represent focused and unfocused transparency, respectively. One number only will be used for both. - Also, show toggle status for shade and stick in window menu. *07/01/06: * Updated nb_NO translations (thanks emptydoor at users dot sf dot net) * Changing session.forcePseudotransparency no longer requires restart, also a little code cleanup in FbTk/Transparent.cc/hh (Mark) * Move triangle drawing into a generic function in FbDrawable (Simon) Make submenu triangles in MenuItems proportional to the icon size (alternate implementation of sf.net patch #1526813) *07/01/05: * When a client in an unfocused tab creates a transient window, set that client to the active tab (Mark) * Window wasn't staying focused when dragging across workspaces with outline window moving (Mark) * Fix placement of window menu with toolbar at the top of the screen, and remove titlebar from window menu (Mark) * Don't change focus to a window that doesn't accept focus (Mark) * Only grab keybindings on screens managed by fluxbox (Mark) * Fix locale being applied to the clock. (Simon) - Also fixed a likely locale-killer for BSDs (without nl_langinfo) * Fix nls digit strings to prefix with zero "%4d" => "%04d" for proper spacing (Simon) * Fix loading of rotated fonts on style change (Simon) * Change default Xft font to "monospace" (was "fixed") (Simon) - The "fixed" font loads a bitmap Xfont - Note that bitmap fonts do not rotate properly, and especially the baseline isn't adjusted for the lack of rotation. Thus we recommend that if you are using a bitmapped font (e.g. artwiz), then specify it using xfld style (-*-snap-*-*-* ...etc) so that fluxbox loads it with traditional XFont/XmbFont calls, resulting in correct placement and rotation. *07/01/04: * Added new resource for init file to control default window decorations: session.screenN.defaultDeco: , where the bitmask corresponds to the one used for [Deco] in the apps file (Mark) * Move minimized windows to the back of the focused list (Mark) *07/01/03: * Don't run [startup] items in apps file on fluxbox restart (Mark) *07/01/02: * Don't escape regular expression metacharacters in apps file, bug #1595497 (Mark) *07/01/01: * Happy New Year! * Don't draw style's menu icon pixmap underneath the program's icon (Mark) * Don't run [startup] items in apps file if fluxbox fails to start (Mark) * Don't run [startup] items in apps file on reconfigure (Mark) * Fix data type of data passed to set _NET_FRAME_EXTENTS (Simon) (sf.net #1621980) Similar fix for gnome current workspace... remember that XA_CARDINAL "32-bit" type is actually a "long array" argument (=64bit on 64 systems) *06/12/31: * Update window scroll action (and direction) on reconfigure (Mark) * Update toolbar visibility on reconfigure (Mark) *06/12/28: * Don't add 2 pixels to a specified toolbar height, bug #1528646 (Mark) * Allow focus to revert to stuck windows (Mark) *06/12/27: * Don't assume "Jump" and "*Hidden" say "yes" in apps file (Mark) * Jump to autogrouped windows on another workspace if set to do so in apps file (Mark) *06/12/20: * Fixed a few bugs with tabbed windows on restart (Mark) *06/12/19: * Little simplification of data structure for keybindings (Mark) Side effects: - "Mod4 a b" now behaves like "Mod4 a None b" -- in fact, "None" is now completely obsolete - You can press "Escape" to cancel any Emacs-style keychain in progress (unless it's bound to something else) - If there is a conflict between bindings, the first one in the file wins - Fixes handling of keychains like "Mod4 a Mod1 b" - Should fix some issues with "None" modifier *06/12/18: * Rotate items in toolbar the same way as tabs (Mark) *06/12/17: * Stop cycling focus when any other command is run, e.g. bug #1595336 (Mark) *06/12/16: * Remove useless stuff from code that reloads configuration (Mark) *06/11/07: * Cosmetic patch from Slava Semushin *06/10/30: * Cosmetic patch from Slava Semushin *06/10/27: * Changed mode for .fluxbox/startup to 644 (Mathias) some people on noexec-mounted partitions ran into problems * Small updates to the asciidoc-docs (Mathias) * Cosmetic patch from Slava Semushin *06/10/16: * Added CachedPixmap (Henrik) *06/09/20: * Fixed bug #1561482, (Henrik) Crash when clicking on the workspacename to get the tbarmenu. Fixed so it recreated toolbar menu if needed in Toolbar::reconfigure. * fixed little issue in fbsetbg (Mathias) if someone has no wpsetters installed at all but only wants to use fbsetroot thru fbsetbg then the warning would pop up, telling her to install a wpsetter .. which she doenst want *06/08/27: * Translations and addons to fbgm (thanks to Antonio Gomes) *06/08/14: * Fix minor menu separator highlight issue (Simon) *06/08/12: * Fix placement of restored fullscreen windows (Mark) *06/08/10: * Fix crash in ClientPattern when more than one pattern in [app] line (Simon) * Implement _NET_WM_WINDOW_TYPE_MENU and _NET_WM_WINDOW_TYPE_TOOLBAR (Mark) * Fix duplicated UTF-8 encoding in el_GR (thanks Slava Semushin) *06/08/09: * Remove some old code that messed up placing submenus (Mark) *06/08/07: * Documented background style option (Mark) *06/08/06: * Distinguish between startup and restart (Mark) *06/08/05: * Don't call placement strategy on maximized or fullscreen windows (Mark) * Updated man fluxstyle (thanks Guillermo Patterer) *06/08/04: * Allow aspect/centered/tiled options with random background in fbsetbg (thanks Julien Trolet) * Don't re-apply remembered settings on restart if they are set as window properties (Mark) * Updated spanish translations (thanks bobbens) * Updated german translations (thanks tenner) * Updated portuguese translations (thanks Fábio C. P. Navarro) * Updated spanish translations (thanks Guillermo Patterer) *06/08/03: * Don't raise a window after cycling if it has been minimized (Mark) * Added support for negative arguments to the `Tab' key command to count backwards from the last tab in the group (Mark) * Updated documentation (Mark) *06/08/02: * Rename session.screen*.iconbar.deiconifyMode to session.screen*.userFollowModel (Mark) This resource is used for: - clicking a window on a different workspace in the iconbar - _NET_ACTIVE_WINDOW messages where the source is a pager - clicking a client in the workspace menu (and the opposite is used for right clicks) Possible values are: - Follow: go to the workspace of the selected window - Current: bring the window to the current workspace - SemiFollow: act like Current for iconified windows, else Follow - Ignore: leave it alone * Update _NET_WORKAREA on screen dimension change (Mark) * Fix ClickTabFocus and MouseTabFocus in nls (Thanks Antonio Gomes) *06/07/30: * List windows in iconbar in creation order (Mark) *06/07/29: * Don't jump to remembered apps on restart (Mark) * Make _NET_CLIENT_LIST report windows in creation order - still need to fix _NET_CLIENT_LIST_STACKING (Mark) * Set _NET_WM_DESKTOP appropriately on remembered windows (Mark) *06/07/27: * Don't change the order of creating windows with transients on restart. Rather, just move the transient to the end of the list. This preserves the focused order and also reduces the complexity to O(n). (Mark) *06/07/26: * Fixed torn menus so they don't close on exec items (Mark) * Updated pt_PT translations (Thanx Antonio Gomes) * Added resource and menu item for maximizing over external tabs (Mark) *06/07/25: * Fix so that focus doesn't revert away from command dialogs (Mark) * Fix background style item so that it works when the previous style didn't have one set (Mark) *06/07/23: * Use a timer to make sure focus always reverts if possible (Mark) fluxbox.cc/hh and reverse patch from 06/07/20 *06/07/22: * Ewmh compliance updates: (Mark) - implemented _NET_WM_MOVERESIZE_CANCEL (new in version 1.4.draft-1) - move windows to last remaining workspace when a workspace is removed - implemented _NET_REQUEST_FRAME_EXTENTS *06/07/21: * Stop using fixed values for num/caps/scroll lock, and ignore scroll lock as a modifier (Mark) *06/07/20: * Fix _NET_WM_MOVERESIZE, bug #1525404 (Mark) * Properly revert focus when two windows close simultaneously (Mark) *06/07/19: * Preserve order of focused windows on restart (Mark) *06/07/16: * Fix a bug in Transparent.cc, (Henrik) #1362913 Fluxbox core dumps on Solaris *06/07/14: * Fix a possible bug with window cycling on multiple screens (Mark) * Include minimized windows when "alt-tabbing", added 16 to the Next/PrevWindow bitmask to disable the behavior (Mark) *06/07/13: * Remove some redundant code for loading styles (Mark) * Fix background: random (Mark) *06/07/10: * Next/PrevWindow toolbar buttons break MouseFocus: bug #1519913 (Mark) *06/07/08: * Fix implementation of _NET_MOVERESIZE_WINDOW (Mark) *06/07/06: * Fixed bug #1069909, Incorrect window dimensions (Henrik) It created strut even if it didnt have any clients * Fixed bug #1491571, Round corners badly rendered (Henrik) Update shape in FbWinFrame after a shade() * Changing between internal and external tabs didn't affect iconified windows (Mark) * Still trying to get the focus right: bug #1517750 (Mark) *06/07/05: * Fix crash on startup on some platforms (Simon) *06/07/04: * Fix some sizing issues from gravity change patch (Simon) FbWinFrame.hh/cc Window.cc * Auto-grouped windows using groups file didn't raise (Thanks ac2dc, bug #1449608) Workspace.cc * New windows don't steal focus from fullscreen windows; instead, flash the titlebar and iconbar button (Mark) Window.cc *06/07/03: * fix+improve handling of window gravity, was very broken (Simon) - caused (among others) windows with gravity set to get relocated on close. - gravity is now taken into account on style change * make our default locale, init, menu, and style paths properly expand PREFIX in the make install stage, so that make prefix=elsewhere works properly (Simon) configure.in ----------------------------------------------------------- Changes for 1.0rc2: *06/07/03: * call waitpid() on SIGCHLD until no more children (thanks Devin/dlab) sf.net #1514843, #1447782 - fluxbox leaves zombies *06/07/02: * Updated documentation (Mark) *06/06/29: * Make fbsetroot set one screen at a time (Mark) * Fix fbsetroot segfault when DISPLAY is unset (Mark) *06/06/28: * Linear cycling wasn't affecting normal cycling order (Mark) * Little cleanup of dead functions (Mark) * Fixed more focus issues with linear cycling and tabbed windows (Mark) * Fixed some focus issues on detach and restart (Mark) *06/06/27: * Some minor cleaning (thanks Slava Semushin + Mikhail Gusarov) * Fix slit menu so it closes when you press escape (Mark) *06/06/26: * Fix _NET_FRAME_EXTENTS implementation (Simon) * Fix FocusHidden (Mark) *06/06/25: * Fix [ 1512046 ] "window.label.unfocus.pixmap" doesn't update (Simon) - FbPixmap::copy was keeping the same pixmap if they had same dimensions. This effectively broke the image cache. * Explicitly map NoSymbol to keycode 0 (thanks Julien Trolet) (seems to be assigned to several keycodes) * Menu aware of text encodings (Simon) - new menu file options: [encoding] {CODESET} ... [endencoding] - All distributions are encouraged to use these inside any auto-generated menu files, so that they are independent of user encoding. - Encoding defaults to user's current encoding * Fix crash when unable to convert between local and utf-8 encodings (Simon) * Fix DetachClient key command so new window is visible (Mark) *06/06/24: * Make Urgency Hint flash the correct tab in a group (Mark) * Fix some more X-errors (Simon) - window was resized, triggering background re-render, but background is invalid sometimes (during reconfiguring) * Fix bug #1362463, menu selection pixmaps disappear (Simon) - pixmap from image cache was put into FbPixmap, which freed it. *06/06/23: * Make startfluxbox aware of --program-prefix and --program-suffix (Mark) *06/06/22: * new Resource: session.modKey: (thanks Jim Ramsay i dot am at jimramsay dot com) new Command: SetModKey eg: session.modKey: Mod4 allows to use the winkey to resize and move windows and have Mod1 (Alt) free for using blender or Maya. *06/06/21: * Fix de_DE translation (thanks Michael Bueker) * Fix nls (Simon) - file location was wrong. nls wouldn't have worked, why did no-one say? - Messages output on stdout/err now properly in local encoding - Check for existence of catalog file, if it doesn't exist, and we can convert from UTF-8, try loading that one instead. - bunch of files changed due to macro name change: + Use _FB_XTEXT if the text will go out to X (for X fonts) + Use _FB_CONSOLETEXT if the text will go to console (stdout/err) - add tab options and some other missing bits to C translation *06/06/20: * Fix window placement when apps remembers size but not location (Simon) *06/06/19: * Add EUC-KR to ko_KR encodings (Simon) * Try ignoring NotifyUngrab EnterNotify events for focus (Simon) - should fix incorrect focus reverts when menus etc closed with mouse focus, but possibly have side effects, do tell...) * Fix menu placement issue with (vertical) xinerama (Simon) - note, doesn't fix "submenus open on wrong screen" issue, that requires some more serious data movement. * Fix bug #1507671, clock not updating on multiple screens (Simon) - time() and gettimeofday() are inconsistent, only use gettimeofday - clean up Timer stuff a bit, fixed some other bugs *06/06/18: * Fixed bug #1507754 iconbar text was not updated to match titlebar (Henrik) * Added support for _NET_WM_WINDOW_TYPE_DIALOG and _NET_FRAME_EXTENTS (Henrik) * Updated german translation (Thanks Michael Bueker m.bueker at berlin de) *06/06/16: * Fix crash when closing a window while cycling (Mark) ------------------------------------------------------------- Changes for 1.0rc: *06/06/11: * Added support for _NET_WM_MOVERESIZE (Henrik) * Added support for urgency hint. This make apps, that support this hint, flash the titlebar and iconbar when they want attention. For example gaim. (Thanks Mark Tiefenbruck) *06/06/10: * Added new command: ToggleCmd Works like a macro but executes the commands one at the time in order. Example: Mod1 T :ToggleCmd {Exec xterm} {NextWindow} When Mod1 T is press the first time it will start xterm, the second time it will do NextWindow. When it reaches end it will start at the beginning. (Thanks Mark Tiefenbruck) * Fixed resize box bug. The text used to determine the size used space, which could have different width than characters on some fonts. (Thanks Thanks Scott Kuhl) * Pressing shift while pressing enter in menu item will fake a right mouse button press. Usefull when inc/decrease alpha/size in menu. (Thanks Mark Tiefenbruck) * Added docs for session.titlebar.left/right. Added docs about middle click on workspace menu. Improved danish translation. (Thanks Jonas Koelker) * Fix building on machines without iconv [sf.net #1499402] (Simon) * Fix some external tab alignment on shade (Simon) * Fix container size rounding for right alignment (Simon) *06/06/01: * Update of new manpage (thanx Guillermo Patterer) *06/05/23: * Spanish Translation of the new manpage (thanx Guillermo Patterer) *06/05/22: * Fix handling of ParentRelative background (Simon) *06/05/21: * Fix build on cygwin (iconv const error) (Simon) * Fix background of external tabs when label background is ParentRelative (Simon) * Improve native language support handling, especially relating to codesets (Simon) *** Please report any oddness (Esp regressions) in native text - Makefile.am can now specify several target codesets - generated-*.m files are automatically generated, but not on every build, only on new additions. - I18N::getMessage now returns FbString's - Menu labels are passed as FbString&e s, not char *s. *06/05/17: * Fix transparency on multiple screens & possibly bad root bg atom reading (Simon) *06/05/16: * Fix bug with horizontal maximisation when quadrant resizing (Mathias) *06/05/13: * Fixed some title redraw issues (Thanks Mark Tiefenbruck) * Added support for _NET_WM_STATE_DEMANDS_ATTENTION . (Henrik) When this state is set fluxbox will start flashing the titlebar and button in the toolbar. It will stop when the window is focused. The blink rate can be configured with the following resource: session.screen0.demandsAttentionTimeout: Default value is 500. If the value is zero this feature will be disabled. *06/05/07: * Handle EMWH window and icon titles, plus localise workspace names (Simon) - FbTk::FbWindow::textProperty now handles utf8 type, and always returns UTF-8 encoded strings (for internal use) * Handle UTF-8 strings properly (Simon) - still need to integrate EWMH strings properly (they are utf8) - still need to fix up TextBox *06/05/01: * Make apps file keywords case insensitive, plus reload it (if newer) before save on close and remember menu events (Simon) *06/04/26: * Fix resizing of client window when autogroup from apps (Simon) *06/04/25: * Cleanup unneeded headers (thanks Semushin Slava) * Fix occasional highlighting of menu nops+separators, sf.net patch #1475268 (thanks Scott Kuhl; skuhl AT cs utah edu) * fbrun: Move the cursor to the end when tab completing (Simon + thanks Jonas Koelker), sf.net rfe #1333003, patch #1475578 * Fix up comments for doxygen (Thanks Jonas Koelker) * Output the error message on fallback restart execs (sf patch#1475213) (Thanks Jonas Kölker, jonaskoelker at users.sourceforge.net). *06/04/24: * Use -Wall when --enable-debug and some warning fixes (Simon + thanks Jonas Koelker) * Fix memory leaks & other errors in Menu code (Simon) * Use external tabs by default (Simon) - they provide a unique look to fluxbox - backwards compatible with 0.1.14 ("stable") - new users will wonder what they are :) *06/04/23: * Fixed typos in new docs (thanks Semushin Slava) * Added support for _NET_WM_ALLOWED_ACTIONS and all the _NET_WM_ACTION_*, _NET_WM_STATE_MODAL, _NET_WM_WINDOW_TYPE_SPLASH, _NET_RESTACK_WINDOW (Henrik) * Reload the apps file on fluxbox reload (Simon) * Update documentation for Next/PrevWindow (Simon / thanks Jonas Koelker), sf.net patch #1474825 * Focus singular windows on a workspace (Simon / thanks Jonas Koelker) sf.net patch #1474722 * Tidy up window cycling, and make linear mode work in order of creation (Thanks Mark Tiefenbruck, mark at tiefenbruck dot org) *06/04/22: * Fix workspace menu corruption when window title changes (Simon) sf.net bug #1113668 * Fix crash when toolbar disabled (Simon) * Couple of memory-based fixes from valgrind (Simon) * Applied #1467926 and #1458069, minor other changes (Mathias) * static CommandParser could be used after destruction (Simon) Fixes sf.net #1474444, segfault when DISPLAY not set * Minor cosmetic changes, thanks Semushin Slava (php-coder AT ngs ru) * First draft of new docs in docs/asciidoc (Mathias) * Cosmetics to Workspace.hh CurrentWindowCmd.cc *06/04/21: * Minor fixes to slit transparency (esp if autohidden) (Simon) * php_coder tells me that the nb_NO patch was somewhat broken Revert it for now, pending another update ... (Simon) * Update all transparent things when bg changes (Simon) (fixes sf.net #1446516 - slit transparency on start) * Make border between tabs same width/color as window border (Simon) (sf.net #1473870) *06/04/19: * Add a bunch of apps to fluxbox-generate_menu, plus a new System Tools menu (thanks Ku8aZ at users.sourceforge.net) * Update Norwegian Bokml translation, nb_NO, sf.net patch #1393780 (Thanks Alexander N. Sornes, emptydoor at users.sourceforge.net) * Update Danish translation, da_DK, sf.net patch #1455023 (Thanks Jonas Kölker, jonaskoelker at users.sourceforge.net). * Fixes to Mouse Focus (thanks Scott Kuhl; skuhl AT cs utah edu) * Allow ~ in "background" pixmap options (Simon + thanks Mark Tiefenbruck) * Windows keep relative position in ArrangeWindows (Mathias) * Made fbgm more pure bourne-compatibel (Mathias) *06/04/18: * Add new timer ability - interval - to reduce clock update checks (Simon) * Fix system tray resize looping/livelock, sf.net bug #1359442 (Simon) * Fix iconbar updates (icon and title) (Thanks Mark Tiefenbruck, mark at tiefenbruck dot org) *06/04/17: * Fix toolbar transparency when autohide enabled (Simon) * Fix toolbar transparency (frame and empty iconbar) (Simon) * Fix display of label for dialog-type boxes (Simon) (only when external tabs are enabled, but not for particular window) * Fix fbrun position setting (-pos and -nearmouse args) (Simon) * Resize the clock if the text gets too big, sf.net patch #1436406 (thanks Geoff Lywood - glywood at users.sourceforge.net) * Fix some rotated toolbar+textbutton issues (Simon) * Fix /bin/sh portability for fbsetbg and startfluxbox (Simon) (fluxbox-generate_menu is seriously broken wrt portability atm though :-/) * Make autogen.sh properly /bin/sh portable (Simon) Fixes #1445464 * patchset missed my fbrun -Wall fixes (Simon) *06/04/16: * Add option to reverse desktop wheeling, patch #1034287 session.screen0.reversewheeling: true|false (thanks Kalle - ice_jkpg at users.sourceforge.net) * Missing space in translation (thanks... anonymous, sf.net #1455024) * Set (take|send)to(next|prev)workspace offset default value to 1 instead of the current 0 (which makes them look non-functional). Similarly for tab and (|next|prev|left|right)workspace. - Thanks Jonas Koelker (sf.net 1467926) * Add "CloseAllWindows" key binding (thanks Adriano Dal Bosco - adbosco at users.sourceforge.net) - Useful to trigger all "close" actions before flux exit (or other) to catch any pending file saves etc... * Fix all warnings with (gcc 3.4.6) -Wall, mainly sign comparisons (Simon) * signedness fix in Container moveItem (thanks Mark Tiefenbruck) * Vertical toolbar (Simon) *06/04/14: * Fix type of last_release_time, affected double click functions on 64-bit platforms (sf.net #1467871, thanks davidhi) (Simon) * Fix updating of button state (esp stick/shade) (Simon) (sf.net #1281724, #1213257) *06/04/13: * Provide "Key Modes" (Thanks Mark Tiefenbruck, mark at tiefenbruck dot org) - New action in keys file: Modifier Key :Keymode Will define a keybinding namespace activated by the given mod/key combination. The End Modifier and key are optional. They define the key combination that quits the given key mode. They default to just 'Escape'. - New keys file optional prefix: : Modifier Key :Command will only work when the keymode is activated. - is "default" if not specified - so: **default commands will not be activated inside another keymode** - Handy Example: Mod1 X :KeyMode XNest XNest: Mod1 X :KeyMode default Will switch to XNest keymode when you press Alt-X. Then the default bindings will not be caught by normal fluxbox, and will pass through to an Xnested one! Groovy... Alt-X will switch back to normal. *06/04/11: * Ensure applying of size hints while maximizing (Mathias) * Fix calculation of prevWorkspace (Mathias) * Cosmetic, close #1467926 (thanx Jonas Koelker) *06/04/09: * Fix label background update with external tabs (Simon) *06/04/06: * Fix build on amd64 - some more size_t propagation and includes (Simon) *06/04/05: * Fix gcc 2.95.4 build error in ScreenPlacement.hh (Simon) * Fix tabs on other workspaces being shown on placement change (Simon) + Fix XmbFonts for multiple screens. Still need to fix XFontImp, it's quite a bit more convoluted. *06/04/04: * Rotated Xmb Fonts (Simon) - rotated when drawn. Probably not very efficient for parentrelative backgrounds. If it proves an issue, we should probably cache recently-drawn strings so we can just re-stipple. * Rotated X Fonts again, plus minor external tab alignment fixes (Simon) - Still need to do XmbFonts. Most people probably load those instead of XFont these days. Will need yet another approach... *06/04/02: * size_t fixes. (Thanks Semushin Slava aka php-coder) *06/03/27: * Fix crash when deiconifying stuck windows with Follow mode (Simon) * Don't Follow stuck windows on deiconify, since they're stuck (thanks Mark Tiefenbruck) *06/03/26: * Related to external (Simon) - Fix title alignment - Fix "jumpy" vertical tabs on tab size change & other change-related - Fix alignment error for left-hand vertical tabs * More external tabs work AND rotated Xft text (Simon) - new tab positions (LeftTop, LeftBottom, etc) - TextButtons and Containers can have orientation set on them - XftFonts store all rotated versions (if used), so the theme doesn't need to know about it. Pixmaps are also auto-rotated. - TODO: Update XFontImp rotation code - Note: many files touched because constness removed from many fonts *06/03/24: * Fix compile error in Theme.cc (sf.net bug #1454204) * Fixed apps filename on save (Thanks mal at komcept com) *06/03/23: * Fixed duplicate ClickToFocus menu item (Thanks Mark Tiefenbruck) * Fix some tab stacking alignment and rendering on tab resize (Simon) (and very minor tidying) *06/03/22: * More external tabs work (Simon) - Can now be placed TopLeft/TopRight/BottomLeft/BottomRight - New "Tab Options" config menu, with (efficient) runtime updating - New tab.width config option to control external tab width - edge snapping includes tabs - decoration fixes where some missed the tab option - label text color was not updated *06/03/20: * Fixed some minor typos (Thanks Semushin Slava) * Fix placement config (some compilers resulted in ignoring of placement policy setting), and a minor ext. tabs placement bug * External tabs (Simon) - option in Configure menu to enable - restart require at present when toggling this option - New apps pnemonic for "Deco" option: TAB, which is like NONE, but with an external tab Notes: - tab width currently hardcoded - only alignment is topleft ------------------------------------------------------------- Changes for 0.9.15: *06/03/19: * Fixed some wrong fbsetroot nls (Thanks Semushin Slava ) * Cleaned up some nls and help text in ./fluxbox -h (Thanks Semushin Slava [php-coder at ngs ru] ) * Titlebar button configuration changed from session.titlbar.left/right to screen specific: session.screen.titlbar.left/right (Henrik) *06/03/14: * Fixed memory leak when XCreateImage failes in XFontImp (Thanks Semushin Slava [php-coder] ) * Fixes for nls/da_DK and nls/ko_KR (Thanks php-coder) *06/03/09: * Enhanced :NextWindow and :PrevWindow to accept a ,see :RightWindow and :LeftWindow (Thanks Marcus Obst, marcus dot obst at s2003 dot tu minus chemnitz dot de) * Bugfix for _net_wm_state_hidden (Thanks Mark) * Updated ko_KR translations (Thanks Jo Hyunseok) * Added zh_CN translationas (Thanks Andyliu, liudeyan at gmail dot com) *06/03/07: * Bugfix for stuck icons (Thanks Mark Tiefenbruck, mark at tiefenbruck dot org) *06/03/05: * Update da_DK (danish) translation. (Thanks Jonas Kölker, jonaskoelker at users.sourceforge.net). *06/03/02: * closed bug #1409775, gcc4.1 problems (thanx to Andreas Bierfert) *06/03/01: * corrections for translation files (thanx php-coder) *06/02/27: * minor cosmetic issues (thanx php-coder) *06/02/20: * Moved resource helper class Layer out from class Fluxbox. Reduced some dependencies (Henrik) *06/02/19: * Added new resize mode: Center This mode will move all corners at the same time with equal distance. Set resource: session.screen0.resizeMode: Center (Henrik) * Moved Window placement code from Workspace to different PlacementStrategy classes. The main class is ScreenPlacement which selects the right placement class to use. (Henrik) *06/02/18: * Moved focus handling code to class FocusControl (Henrik) *06/02/15: * updated copyright info (Mathias) *06/02/14: * Fix nls compilation (Mathias) *06/02/12: * Fixed #bug #1417688, remember apps keeps incrementing vertical dimension (Henrik) * Fixed root pixmap problem. Using fbsetroot to set background. (Henrik) *06/02/01: * fbsetroot copyright/help fixes (Thanks php-coder) *06/01/29: * Changed bsetroot to fbsetroot in documentation (Thanks OpenBSD) *06/01/25: * Added norwegian bokmal, nb_NO (Thanks Alexander Sornes) *06/01/23: * minor fix for fbsetbg (thanx Mark Tiefenbruck) *06/01/16: * minor changes to fix some warnings (Thanks php-coder) *06/01/07: * minor addons to fbgm, close Gentoo #74523 and #110677 (Mathias) *06/01/03: * Improved style loading (Henrik) *05/12/28: * Fix url in fbsetbg.1. *05/12/23: * Fixed some compiler warnings (Thanks php-coder) *05/12/03: * Added 'random' and 'aspect' options to background theme (Thanks Shashkin Konstantin) *05/11/22: * New theme item: background: background.pixmap: background.color: background.colorTo: The background.pixmap filename will be sent to "fbsetbg" which in turn sets the background. The following options will be available for the background.pixmap: - tiled - centered For example: background: tiled background.pixmap: someimage.png and it can also generate a normal texture: background: gradient background.color: blue background.colorTo: green The rootCommand in the style is now obsolete and if the "background" item is not found in the style then the default background will be black and with a warning text. (Henrik) *05/11/16: * Added styleOverlay resource to init-file (Mathias) session.styleOverlay: ~/.fluxbox/overlay Style settings in this file override any settings from a regular style *05/11/13: * Fixed #1307877 fbsetbg did not create ~/.fluxbox/lastwallpaper (Henrik) *05/10/23: * Fixed #1335255 (Gentoo #110197) fbgm had some globbing related probs (thanx t35t0r) *05/10/21: * Fixed #1223878, Style reloading on USR2 (thanx Zan) *05/10/20: * Fixed bug #1327878. (Henrik) Appending backslash to () and [] characters in the apps file *05/10/19: * Fixed reordering of tabs (thanx Rob Stevens) *05/10/12: * Small changes, coming from fbsd-ports (thanx Jeremy Messenger ) *05/10/04: * Avoid drawing the resize outline if not really resizing (Mathias) *05/09/25: * added nls for "-screen" argument (Thanks php-coder) *05/09/13: * Fixes #1267076, cygwin link problems (Mathias) * Use fbsetroot in Default-Styles (Mathias) ------------------------------------------------------------- Changes for 0.9.14: *05/09/12: * Fixes #1281708, MenuIcon doesnt scale properly (thanx Erik-Jan) *05/09/08: * Fixed bug in client menu. Window menu did not open. (Henrik) * Add titlebar scrolling options (thanks Krzysiek Pawlik ) New init options: session.screenN.windowScrollAction: Shade|NextTab - set the action that happens when scrolling on the titlebar session.screenN.windowScrollReverse: true|false - reverse the action direction *05/09/04: * Added Feature Request #1084510 (Mathias) When Mod1 + LeftMouse are clicked on a Window and the mouse is not moved, the window is raised at LeftMouseRelease *05/09/03: * Exchanged the hardcoded 3200 pixel limit for texture size to a calculated value based on screen dimensions (Mathias) *05/08/31: * Added SVN Revision number output in info output (Thanks php-coder) *05/08/30: * Added el_GR (greek) Translation (thanx to Theofilos Intzoglou) *05/08/23: * Fixed unresolved symbols when configure --disable-regexp (Mathias) *05/08/17: * Added the 'Education' submenu to fbgm (thanx Lam) *05/08/15 * Added uk_UA locales (Thanks Anatoli Sakhnik and php-coder) *05/07/25: Fix for #1240248, Segfaults for :MoveTabLeft/Right (Mathias) *05/07/20: Changed some *Focus options (Mathias) removed SloppyFocus, SemiSloppyFocus and ClickToFocus options added MouseFocus, ClickFocus, MouseTabFocus, ClickTabFocus - MouseFocus - change the focus to the window under the mouse (almost similar to the 'old' SloppyFocus) - ClickFocus - change the focus to the window the user clicks - MouseTabFocus - change active tabclient to the one under the mouse in titlebar, does NOT change the focus - ClickTabFocus - change active tabclient when clicked onto a tabbutton to achieve former SemiSloppyFocus behavior one needs MouseFocus and ClickTabFocus *05/07/13: Dragging a tab button from current titlebar onto current client area will detach that client (Mathias) *05/07/12: Renaming of 'bsetroot' to 'fbsetroot' (Mathias) blackbox's 'bsetroot' and fluxbox's 'bsetroot' have different syntax nowadays and collide when you install fluxbox and blackbox. hence the renaming updated manpage, helper utils (fbgm, startfluxbox, fbsetbg), nls etc *05/07/06: Added even more applications to fbgm (Mathias) * Added info about locale path in -info argument (Thanks php-coder) *05/07/05: * Respect border size in the MoveTo action (Mathias) * Added kcommander, Valknut, dcgui-qt, quickdc, asami, amsn to fbgm (Mathias) *05/06/30: * Fix #1223780, fbgm updated (Mathias) - added gnome-alsamixer - use "kfmclient openProfile filemanagement" for konqueror as filebrowser * Fix for clock displaying %S too late sometimes (Mathias) *05/06/28: * Fix for toggling the toolbar doesnt update strut (thanx C. Monti) * Little reordering of ToolbarMenu items (Mathias) *05/06/23: * Moved window menu from FluxboxWindow to BScreen, so we now use one window menu per screen instead of one menu per window, thus saving memory and increasing speed. (Henrik) *05/06/19: * Fix shaded + iconic windows + restart (Simon) - use ATTRIB_HIDDEN, can't use IconicState * Revert shaded window fix. Wrong approach and caused crashes (Simon) * Change FbWinFrame to use a Container (Simon) *05/06/18: * Fixes #1206821, unportable usage of grep in fbgm (thanx Dung) * Fixes #1116965, #1047529, shaded windows on restart (Mathias) * little Fix for font effects (Mathias) *05/06/15: * Enhanced MoveTo, fixes #1074568 (Mathias) MoveTo - * means "use current value" - Reference Corner is one of: - UpperLeft, Upper, UpperRight - Left, Right - LowerLeft, Lower, Right examples: MoveTo 0 * Left -> snap to left workspace edge MoveTo * 0 Lower -> snap to lower workspace edge MoveTo 0 0 UpperRight -> snap to upper right workspace corner * Fixes #1198192, vlc to fbgm (Mathias) * Fixes #1213003, SendToWorkspace shouldnt follow (Mathias) - SendToWorkspace silently changes the workspace of the window - TakeToWorkspace takes the window and puts it onto the ws * Fixes #1216020, *.font.effect wont get cleared if not defined in style (Mathias) *05/06/09: * Reordering of the WorkspaceMenu (Mathias) Icon submenu ontop, workspaces below, new|edit|remove on bottom *05/06/07: * Fixed justification in WorkspaceNameTool #1213262 (Mathias) *05/06/03: * Massive change of font handling (Mathias) - Usage of xft-fonts is prefered, except a font-description starts with '-' - Removed "antialias"-option completly, to enable/disable "antialias" use either :antialias= in the style or use Xft.antialias: in your .Xdefaults - Added new styleresources: *.font.effect: *.font.shadow.x : - shadow x offset *.font.shadow.y : - shadow y offset *.font.shadow.color : - color of shadow *.font.halo.color : - color of halo - Removed 'shadow' and 'halo' options from fontdefinitions: !! Style authors have to update their styles !! - Simplified XmbFontImp to not try all possible fonts to match locale - Style authors may specify multiple fonts: || if loading of font1 fails, fluxbox probes , etc. The last font is "fixed". Hints for style authors: - if xft tries to load a font it will _ALWAYS_ return a valid font, it doesnt have to look like the one you want to have, read more about it: http://fontconfig.org/fontconfig-user.html - export XFT_DEBUG=1 before running fluxbox helps to see which fonts are picked. eg: *.font: Verdana,Arial-12:antialias=true|-artwiz-snap-*- if fluxbox is compiled with xft this will NEVER try to load "-artwiz-snap-*-" since xft gives for sure a font, most likely Verdana or Arial but noone knows. So, if fluxbox has no xft support the first fontpattern fails and fluxbox tries the next one, which might be successful. if everything fails, it will use "fixed" - Added caching of fonts, fonts are only loaded once. - Fixed #1090902 *05/06/02: * Fixed _BLACKBOX_NOTIFY_WINDOW_ADD issue (thanx Vadim) _BLACKBOX_NOTIFY_WINDOW_ADD was emited before _NET_CLIENT_LIST and _NET_CLIENT_LIST_STACKING lists updates. * Fixed iconified windows disappear from _NET_CLIENT_LIST (thanx Vadim) * Fixes for _NET* hints (Mathias + thanx Vadim) - _NET_WM_STATE_HIDDEN now correctly used - _NET_WM_STATE_SKIP_PAGER not longer deleted from state - _NET_WM_STATE_SKIP_TASKBAR not longer mixed with _HIDDEN *05/05/27: * Bugfix, install directory for keys, menu, init (Thanks php-coder) * Belarusian language translation (Thanks Kirill A. Shutemov, k.shutemov at sam-solutions d0t net) *05/05/21: * Keycodes can now be used in the keys file. Example: None 10 :NextWorkspace (10 - keycode for '1') Usefull for keys that have no symbol. (Thanks Matus Telgarsky, catachresis at cmu [d0t] edu) *05/05/18: * Added new configure option --with-locale=path redirects location of nls directories. (Thanks php-coder at altlinux dot ru) *05/05/17: * Fix systemtray overlap (Simon + Thanks Vadim) *05/05/14: * Fix some Ewmh/Gnome issues (Mathias + thanx Vadim) + _NET_CLIENT_LIST and _NET_CLIENT_LIST_STACKING not updated when sending _BLACKBOX_NOTIFY_WINDOW_DEL + _NET_WM_DESKTOP and _WIN_WORKSPACE had wrong initial values (-1), which lead to probems with (eg) fbpager ------------------------------------------------------------- Changes for 0.9.13 *05/05/13: * Fix a segfault crash, and a similar potential one (Simon) *05/05/12: * Fixed configure.in for iconv for different platforms (Mathias) * Fixed setenv/putenv issues on platforms which dont support setenv (Mathias) we now use only putenv() and manage the used values on our own * Fixed compile issues on Darwin/MacOSX (Mathias) * Fixed problem when app changes the app-pixmap (Mathias) * Fixed missing header (Mathias) * Fixed some FbTk_istringstream issues for gcc295* (Mathias) *05/05/10: * Cache root pixmap, watch for property changes (Simon) (previously was checked EVERY time = lots) * minor tweak to configure.in (thanx php-coder) *05/05/09: * Fix for fbrun and completion (thanx Vadim) * Fix for gentoo-bug #91955 (thanx Julien Trolet) Remembering the position of a window didnt store the reference corner *05/05/07: * Fix isses in patch from Vadim (thanx Vadim) * Remove default "gray" background (Simon) * Fix titlebar transparency in some (tabbed) cases (Simon) *05/05/06: * Added new Buttons for the Titlebar of a Window (Mathias) - Shade - just like the "Stick"-button Styleresources: window.shade.pixmap, window.shade.unfocus.pixmap, window.shade.pressed.pixmap window.unshade.pixmap, window.unshade.unfocus.pixmap, window.unshade.pressed.pixmap etc. - MenuIcon - click on it provides the windowmenu, if the app contains a pixmap (gvim, konqueror etc etc) the pixmap is displayed, a little menu otherwise. Styleresources: window.menuicon.pixmap, window.menuicon.unfocus.pixmap window.menuicon.pressed.pixmap etc. Example ~/.fluxbox/init - entry: session.titlebar.left: MenuIcon Stick session.titlebar.right: Shade Minimize Maximize Close * xrestop should now display "Fluxbox" (Simon) * Fix potential segfault menu bug, thanks chenfeng (Simon) * Added more KeyActions to TextBox (thanx to Vadim Control + LeftArrow -> Moves cursor to the left direction, up to next word. Control + RightArrow -> to the right direction. Control + BackSpace -> Removes everything from the cursor left side, up to next left word. Control + Delete -> like above but removes to the right direction. *05/05/05: * Fix #1160244, #1099704, #1094107 Mutiple keyboard layout (Mathias + thanx to Vadim) Switching to a secondary/third keyboard layout via the xkb-extensions leads to broken NextWindow/PrevWindow and broken fbrun/CommandDialog: - be aware of what xkb is doing to the event.state - minor cleaning *05/05/03: * Fix drawing of no-title menus, plus updating of int menu items (Simon) * Code cleaning. (Henrik) Fluxbox::associateClient; creates tab and maps WinClient to label button. *05/05/02: * Added FbTk::Select2nd + more code cleaning (Henrik) This returns .second from operator ()(Someclass &a) Usefull for std::map loops. * Cleaning, (Henrik) Create/delete tabs with FbWinFrame::createTab/removeTab *05/04/30: * Fix #1086673 ArrangeWindows on shaded aterms causes inconsistency (Mathias) we now place shaded Windows above the normal windows. ArrangeWindows touches only windows on the current (xinerama)-head. *05/04/29: * Added new IconbarModes: (Mathias) NoIcons - all but iconified windows WorkspaceNoIcons - all but iconified windows on the current ws * Fixed transient bug. (Henrik) #1157361 inconsistent behavior of Java dialogs. Transients that are created before the transient_for window gets copied to a transient_for waiting list and when the transient_for window is created the transients are updated, When raising a transient window the window gets placed last in the transient list so it gets raised last and thus gets places above. *05/04/28: * Revert Mathias's little change to my patch, and fix it properly :) (Simon) *05/04/27: * Fix some initialisation, plus setting background too much (Simon + Mathias) * Add some extremely basic handling for icon pixmaps that aren't the same depth as the screen (treat all as 1-bit, easy to handle) (Simon) * Fix a bunch more issues with recent patches (Simon) - Clock text colour on start - Resizing not updating in some cases - menu separators not being drawn * Close #1107216, minor fbgm-issue, cosmetic startfluxbox (from the OpenBSD patches) * Fix #1182770 (Mathias) session.screen*.workspaces: and the number of workspaces in the running fluxbox were out of sync and lead to segfault on a "reloadconfig"-Command. * Fix drawing when transparency off (Simon) *05/04/26: * Fix systray icon sizing (send a configurenotify on resize) (Simon) * Extension of previous patch, pushing various bits of menu items and text buttons onto the background, and fixing various issues (Simon) + Incidentally, adds some new theme items (due to backwards compatibility fix): - menu.hilite.submenu.pixmap: - menu.hilite.selected.pixmap: - menu.hilite.unselected.pixmap: These are equivalent to the no-.hilite ones, except are shown when the item is highlighted... *05/04/25: * Fixed #1188690, fbrun segfault (Mathias) *05/04/23: * Close of #956325 (Mathias) WorkspaceMenu -> left click on a item will jump TO that workspace -> middle click will fetch it to the current workspac SendToMenu -> left click send it quietly -> middle click send it and follows to that workspace This should now match whats written in the manpage. * Fixed #960535 aka Deiconify with apps set 'sticky' (Mathias) * Fixed #1020399 aka broken ShowDesktop - command (Mathias) *05/04/22: * clear maximized-Flags of a resized/moved Window (Mathias) * fixed Iconified+Sticky Windows not shown in Iconbar (Mathias) (when in WorkspaceIcons-Mode *05/04/21: * Fixed iconv-issues on *BSD/MacOSX (Mathias) * Fixed #1133809, ArrangeWindows covers Toolbar/Slit (Mathias) *05/04/20: * Fixed problem with _NET_WM_STRUT (Mathias) *05/04/18: * Fixed problem with WindowSnapping (Mathias) *05/04/15: * Fixed #1170056, Moving tab beyong last right tab causes malfunction (Mathias) * Fixed a few drawing bugs created by last patch (Simon) (titlebar no clear on resize, menu opening offscreen...) *05/04/11: * Rework lots of stuff relating to transparency, esp menus+frame (Simon) + Massively reduce pixmap memory usage (view with xrestop) + Should also improve startup+style change times, esp for large menus + This introduces a few rendering bugs, but I'd like stuff tested + Transparency is done differently now. People shouldn't need to call updateTransparent. + Do not use persistent pixmap buffers unless you're sure! XSetWindowBackground already copies/buffers the set pixmap, so things need to be rendered to a temp pixmap once, then can be freed. Known bugs (please report others to Rathnor on #fluxbox): - different focus/unfocus transparency doesn't update labelbuttons properly. Workaround: use same transparency for both. - Text sometimes gets overdrawn a lot. Probably should render it to background using a virtual hook in FbWindow::updateBackground - Changing style resizes things, not all pixmaps updated properly Workaround: restart fluxbox after changing style - Probably breaks Composite support. Let me know how. TODO: + FbPixmap::getRootPixmap called very often. It should cache the result and watch the relevant properties. *05/04/09: * minor fix to startfluxbox (Mathias) *05/04/07: * Minor tweak for the buildsystem so it doesnt compile defaults.cc every time (Mathias) *05/04/03: * Tidy up some redundant pixmap allocations (Simon) *05/03/23: * added "Fullscreen" as a command (Mathias) *05/03/17: * some additions to fbgm, mostly cosmetic (Mathias) *05/03/16: * added -c to 'startfluxbox' (Mathias) * fix for gravity field on _NET_MOVERESIZE_WINDOW (thanx to Rob Stevens) * added new option to specify, on which screen fluxbox should handle the windows. default behavior is to handle each available screen. closes #1159809. (Mathias) -screen <"all"|int[,int]> eg: $> fluxbox -screen 0,2 will run fluxbox on 0.0 and 0.2 so one can run any other wm on 0.1. $> fluxbox -screen all default, fluxbox manages all screens * Fix for #1152450 (Mathias) when having multiple screens the rootCommand's were called too often * added --with-init, --with-keys, --with-style, --with-menu configure options (Thanks php-coder at ngs dot ru) *05/03/11: * Remove trailing whitespaces from any command (Mathias) * Fix usage of 'which' - test behaviour of which to choose usage method, rather than guessing based on system (Simon) *05/02/13: * Romanian translation update for fluxbox-generate_menu (Thanks Costin Stroie) * Added stringstream.hh to FbTk (Henrik) using FbTk_istringstream from this one. *05/02/09: * Fixed portability issues with fbgm (thanx to Dung) *05/02/04: * Fixed possible bug for invalid tools (Mathias) *05/02/03: * Added 'revision-number' to fluxbox -info (Mathias) the revision-number only occurs in build based on svn, builds based on normal tarballs dont display it *05/02/01: * Added apps to fbgm, minor other changes (thanx to Dung) closes #1107234, #1105034 * Change of SIGNAL-behavior (Mathias) SIGHUP - restart of fluxbox SIGUSR1 - load configuration SIGUSR2 - reload configuration * Fix a problem with configure (Mathias) imlib2 is now really default-off * Minor changes to ru_RU (thanx php-coder) *05/01/31: * Close #1107213, 64bit issues (thanx to Matthieu Herrb ) * Close #1111378, -S (smooth) to wmsetbg's aspect-setting * Added cs_CZ (thanx to Radek Kubicek) *05/01/29: * Added icon-support for fbgm (thanx to Dung N. Lam) new options: -d path(s) to search for *.desktop files -ds wider search for *.desktop files (takes more time) -i path(s) to search for icons -is wider search for icons (worth the extra time) *05/01/24: * Fix a compileproblem for FreeBSD4.x (Mathias) * Updated a lot of Copyright dates and mail-info (Mathias) * Close #1107227, #1107222 *05/01/21: * Fix tab detaching - the window wasn't shown (Simon) *05/01/20: * Close #1105048 (thanx to the openbsd-folks) minor issues with fluxbox-generate_menu * Close #1105041 (thanx to the openbsd-folks) execl needs NULL termination, on 64-bit-systems '0' would expand expand to a 32bit integer, not a 64bit pointer. ------------------------------------------------------------- Changes for 0.9.12 *05/01/15: * Added menutest.cc to src/tests (Henrik) testing menu parser and theme *05/01/14: * Fix for #1091710 (SystemTray is not covered by StyleStuff) (Mathias) SystemTray is now configurable via styles thru the *05/01/12: * Fix for #1099278, #1099950 (Warnings on amd64) (thanx Barry Schwartz) * Updated ko_KR - (thanx Jo Hyunseok) *05/01/10: * Fix for #1087220 (WithdrawnState handling) (Mathias) * Fix position initialisation from apps file (Simon) *05/01/05: * Tidy up initialisation a bit better. Handlers can still use "action" functions (e.g. stick()), but those functions should now check if isInitialised and only set the state variables (not send signals etc) if not. * Fix for BScreen::reassociateWindow (Mathias) Simon's last changes made fluxbox crash when "Sticky" or "Workspace" options in the apps-file where used. This fix also solves and -Deiconifymode for Iconbar, when Iconbar is in -mode *05/01/04: * Added apps to fluxbox-generate_menu (thanx to Uwe Weissenbacher ) * Added ko_KR (thanx Jo Hyunseok ) * Added --with-style=/path/to/default/style (thanx php-coder) * Updated ru_RU (thanx php-coder) * Fix some initialisation states, especially window placement with no decorations through apps (e.g. aterm) (Simon) *05/01/02: * Fix for #996298, Windows dont respect toolbar.border.width (Mathias) * Snapping to Screenedges, even when "maxover" is disabled (Mathias) *05/01/02: * Updated pl_PL (thanx to Meltir and Cheester ) * Fixed restart/memory problems with Imlib2 (Mathias) *04/12/30: * Fixed "remove last workspace" bug (Henrik) *04/12/28: * Fixed minor shape bug (Henrik) *04/12/21: * Added Imlib2 support to fluxbox (Mathias) allows us to load other image-formats than just xpm, but we need the help of an external (popular) library for that: http://www.enlightenment.org/pages/imlib2.html to have imlib2 support, you have to ./configure --enable-imlib2 * Cleaner code for global Font- and Imagestuff (Mathias) * Fixed problems with gtk2-fullscreen-mode (gimp2, galeon etc) (Mathias) - synchronize _NET_WM_STATE in Ewmh-Handler - disable shape (aka round corners) in fullscreen-mode * Added new command, which sets the current window onto head (Mathias) SetHead *04/12/18: * Fix possible segfault when new text in TextBox is smaller than the old one (Mathias) * Some reordering/renaming of functions/files (Mathias) * Some updates to ru_RU (thanx to ) *04/12/13: * Some updates to the man page (Gruber) * Fixed a minor issue with icc (intel compiler) (Mathias) * Added nls/vi_VN (thanx Phan Vinh Thinh) * Fixed DragNDrop - Sorting of tabs (thanx Rob Stevens) *04/12/10: * Added Tab command, which goes to a specific tab number action: Tab ex: Mod1 1 :Tab 1 Mod2 3 :Tab 3 (Thanks Steeve Lennmark ) * Close #1080323, missing header (Mathias) * Fix issue with maximizing shaded windows, #1082671 (Mathias) * Added some apps and items to fluxbox-generate_menu (Mathias) * Added support for hsetroot to fbsetbg (Mathias) * Update ClockTool when timeformat changed, close #1026096 (Mathias) * SlitClientMenu had with wheelup/down sometimes (Mathias) ------------------------------------------------------------- Changes for 0.9.11 *04/12/02: * New features for the Slit (Mathias) - left click on Slitclient-menu enables/disables item - wheel or middle/right-click on the items move them up / down in the slit - minor visual change of the menu, added a "Save SlitList" - entry *04/11/30: * Fix for notworking bsetroot (thanx Rob Stevens) * Fix to avoid gentoo bug #72703 (Mathias, thanx Rob Stevens) also reported at http://www.securityfocus.com/archive/1/382398/2004-11-24/2004-11-30/2 * Fix for a java-bug (wrong opened subwindows) (thanx Scott Moser) surprisingly this also fixes the grab-of-death-bug as it seems * Update of the fluxstyle-manpage (thanx Curt Micol) * Added "kill" to the windowmenu-commands (Mathias) closes #1075142 *04/11/28: * Fix for possible segfaults in *.iconbar.deiconifyMode (Mathias) *04/11/25: * Applied patch #1072818 (thanx Glyn Kennington) * (Re)added dragNdrop ordering of tabs (thanx Rob Stevens) *04/11/24: * Fix for hiding menu when menufile changed (Mathias) * Fix for segfault at startup (Mathias) *04/11/22: * fbrun doesnt overlap screenborders anymore (Mathias) * Ensure sane values for ResizeCmd (Mathias) * Fixed Wine + Paradise Poker Client problem. Do not handle Configure Request event while iconified. (Henrik) * Fix UnderMousePlacement, patch #1052534, close #1048000 (thanx Mike) *04/11/20: * Fix for (possible) segfaults at Restart/Exit and fix start of former iconic windows (Mathias) should close #1067582, #1067580, #1060912 * Fix for adding/removing Workspaces via Menu (thanx Øyvind Albrigtsen) *04/11/19: * Some changes to avoid invisible fonts (Mathias) *04/11/17: * Fix memleaks (thanx to Thomas Weidner) * Fix for possible segfault at exit/restart (Mathias) *04/11/15: * Moved CVS-Repository from sourceforge.net over to Subversion on berlios.de * Updated swedish locales and a few new menu-entries from Jonas Ericsson (jmaster at telia.com) *04/11/09: * Better visualisation of the RememberState in RememberMenu, #1024498 (Mathias) *04/11/07: * Fix a problem with snapping windows (Mathias) decorationless windows have a borderWidth of 0 -> problems at the right and bottom border. *04/11/01: * Fix for #1057499 and #1046472 (Mathias) *04/10/28: * Fix for #1052095 (Mathias) the windowmenu didnt close, when the current tab changed somehow (was closed, become detached, another window attached etc) * Fix for #1034522 (Mathias) * Fix for #1036982 aka defaults.hh wasnt distcleaned (Mathias) *04/10/22: * Fix for #1039658 (Mathias) * Added new resources: (Mathias + SemiFollow from Erik Postma,thanx) - session.*.iconbar.wheelMode: On - enable mousewheeling on the iconbuttons Off - disables mousewheeling on the iconbuttons Screen - uses the settings of desktopWheeling session.*.iconbar.deiconifyMode: Current - deiconifies the window on current workspace Follow - deiconifies the window on the workspace it was iconified from and jumps to that workspace SemiFollow - acts as 'Current' for windows that were actually iconified, and as 'follow' for the others *04/10/21: * A few fixes to compile fluxbox with icc and mipspro(irix) (Mathias) still some open issues with mipspro but to solve them i need a mipspro 7.4, but closes #1045785 *04/10/18: * Added session.appsFile to the resources (Mathias) * Fixed a problem when system-date is set back (Mathias) *04/10/17: * Disabled resizing for shaded/iconic windows (Mathias) * Rewrote the restart-procedure of fluxbox so it calls the destructors correctly (Mathias) * cosmetic changes (Mathias) *04/10/16: * Added option to specify what to do with windows, that got activated on a different workspaces than the current one (thru NET_ACTIVE_WINDOW for example, guinotification-plugin from gaim) (Mathias) session.screen0.followModel: with one of : Ignore - ignore the activated window Follow - go to the workspace of the window Current | CurrentWorkspace | Fetch - get the window onto the current workspace *04/10/11: * Fix a bad nls string name - it ended with Set, but was a string (Simon) *04/10/10: * Fix for a minor fbrun - problem (Mathias) * Added session.screen0.iconbar.iconTextPadding and session.tabPadding (Mathias) - defines the space between the text and the border of the buttons * Added session.focusTabMinWidth (Thanx Ciaran McCreesh) - defines the guaranteed minimize size of the focuessed tab in % of the whole window (1-90) * Update de_DE Translation and add some missing NLS values (Thanks Christian Storm) - also a tiny cleanup of weird nls set *04/10/08: * Fix some TextBox issues with some "untypeable" keys (Mathias) *04/10/07: * Fixed bug #1033903 (Thanks to Christian Storm) *04/10/06: * Memory allocation improvements in TextureRender. (Henrik) The texture render doesn't need to allocate red, green and blue buffers if it doesn't render gradients * Fixed gradient bug in bsetroot (Henrik) * Fixed multiple TextButton issues (Mathias): - fixed some keymovement issues inside TextButtons - a ButtonPress into a TextButton places the Cursor to the right place now - cleaned the CommandDialog a bit * New command: export | setenv (Mathias) sets the environment of fluxbox to a given value: export NAME=VALUE setenv NAME VALUE *04/10/04: * Don't require [begin] tag for included menu files (Simon) * Fix handling of setlocale return (Thanks Victor Yegorov) *04/09/30: * Fix to show title of current tabbed-window as the label of the iconbar-button-group (Mathias) * Fixed typo nls/pl_PL/Translation.m (Mathias) *04/09/29: * Fix to make menuseparators not selectable (Mathias) * Fix bug #1026929 (Mathias) *04/09/19: * Fix a tiny bug that leads to high cpuload under some circumstances (Mathias) *04/09/16: * Fix restart command not reading its args (Simon) *04/09/12: * Preliminary support for Composite extension (Simon) - Relies on external compositing manager using _NET_WM_WINDOW_OPACITY - NOTE: Also make alpha resource setting more consistent. Alpha values are no longer in theme, but are in init file. Possible values are (all beginning with session.screenN.), * means changed/new: - menu.alpha (*) - slit.alpha - window.focus.alpha (*) - window.unfocus.alpha (*) - toolbar.alpha (*) - Changed menu around a bit. If you don't have/want a compositing manager, but Composite is enabled, you can override it by setting session.forcePseudoTransparency: true - Fix a couple of bugs with transparency in toolbar/buttons * Minor cleaning, moved Resource<> from fluxbox.cc to Resources.cc (Henrik) *04/09/11: * The include directive in menu can now take a director as argument [include] (path) It will include each file in the path into the menu (Thanks Ciaran McCreesh) * Fix for backup of empty or non existing menu (Thanks php-coder ) * Font::drawText now takes a referens to FbTk::FbDrawable as first argument instead of X Drawable (Henrik) * Code cleaning (Henrik) * display() access function for FbDrawable (Henrik) * Fix some more X errors from XRender calls (Simon) - also fixes some menu background update issues * Ignore 32-bit visuals for now when selecting (Simon) - should fix problems with Composite being enabled in X.org * Fixed issues with Strut and multiple heads (Thanks Mathieu De Zutter) * Fix issues that caused unnecessary X errors (Simon) *04/09/10: * Cosmetic and cleanup changes to FbTk/* (Mathias) - tabs -> spaces, wrong indention etc in all mentioned files and - using FbDrawable::s_display now instead of FbTk::App::instance()->display() - added warning about "wrong" wallpapersetter - removed old codefragment from XmbFontImp * Clean up some unused variables (thanks Ryan O'Hara) *04/09/09: * tidy+replace qiv with display in screenshot, add jpg option (Han) * Added forgotten [macrocmd] to menuitems (Mathias) * Cleanup of code (Mathias) - removed codeduplicates of ::getRootPixmap, added FbPixmap::getRootPixmap instead *04/09/04: * Fix duplicate icons in icon list with amsn (Henrik) - Check Fluxbox::update(FluxboxWindow::stateSig), the win.screen().addIcon * Fix crash on shutdown (Henrik) - workspacemenu must be destroyed before clientlists *04/09/03: * Fix crash on startup on amd64 (Simon) - We may need to review usages of 0 as opposed to NULL - Thanks to Jason Johnston (xoritor) for assistance debugging * Added -nearmouse to FbRun (Mathias) *04/09/02: * Fix crash when in windowmenu->submenu and closing the app (Mathias) ------------------------------------------------------- Changes for 0.9.10: *04/09/01: * Fix width of a menuentry (Mathias) *04/08/31: * Fixed restart issue with system tray (Henrik) * Fixed multiple screen issues with system tray (Henrik) * Check for iconv function (Henrik) * Fix for gcc 2.95.4 issues with "typeid" and "make_pair", Fix for a MIPSPro 7.30 issue (Mathias) * Check for C++ std headers, some older machines dont have them (Simon) *04/08/30: * Changed session.screen.iconbar.clientWidth to session.screen.iconbar.iconWidth (Henrik) IconbarTool.cc * Added RaiseLayer and LowerLayer to the commands (Mathias) * Close bug #1013735, #1012314, #977054 (Mathias) * Fix bug in menu-closing with keys (Mathias) *04/08/29: * Added [wallpapers|wallpapermenu|rootcommands] to possible menuitems (Mathias) [wallpapers] (directory) {rootcommand} creates a submenu in the menu to click on the wallpaper one wants. default rootcommand is fbsetbg * Fix cycling using keys in menus (didn't wrap upwards) (Simon) * Fix rendering bug when revisiting >1 column menus (Simon) * Fix crash when extramenus not attached to windowmenu (Simon) - and add checking that windowmenu file exists and sorta parses * Tweak toolbar size/position (esp when 100% width) (Simon) - and fix menu size bug when initialising with no style * Add back Workspace actions with deprecated message (Simon) - need transition time, remove when 1.0 has been widely used for a while * More random render fixes (Simon) (font alignment in menu, menu optimisation, toolbar font/render) *04/08/28: * Some more menu rendering fixes (Simon) Thanks Florian Pigorsch for nice bug reports + debugging * Fix some blank fonts problem for i18n (I think) (Simon) * Fix menu render bug with previously highlighted items (Simon) *04/08/27: * Protect Fluxbox::shutdown better from being double-called (Simon) * Improve fallback if toolbar button style item missing (Simon) *04/08/26: * Tiny unification (Mathias) - theme.cfg and style.cfg allowed - in menufiles: [stylesdir] and [themesdir] allowed [stylesmenu] and [themesmenu] allowed * Fix bevel on solid colour textures (Simon) * Make arrow in toolbar buttons scalable size (Simon) - new theme item: toolbar.button.scale: The number is a scale factor, which is divided into 100 to give the size relative to the button. 100 gives a arrow the same size as button, 200 gives half the size, 300 a third, etc. - default is now 300, not 200 - also fix size balance with left/right arrows * Fixed 2 possible Memleaks (Mathias) * Re-implement bevels in toolbar, plus numerous toolbar-related theme fixes => old styles now look like they used to! (Simon) *04/08/25: * Fix to draw Cursors in Textboxes correctly again (Mathias) *04/08/22: * Preliminary basic support for icons in fluxbox-generate_menu (Han) - put a .xpm into ~/.fluxbox/icons. e.g. Eterm.xpm *04/08/19: * Fixes to make nroff not report errors for fbsetbg.1 (Han) *04/08/18: * Fix handling of font encodings, and related bugs (Simon) *04/08/17: * New manpage for startfluxbox (Han) *04/08/13: * Fixed slow resize of windows like xmms playlist. We called setupWindow() in XA_WM_NORMAL_HINTS even if nothing was changed -> slow!. (Henrik) *04/08/12: * Moved fluxstyle.1 to fluxstyle.1.in and using regexp to replace pkgdatadir (Thanks php-coder at ngs dot ru) *04/08/11: * Updated Cthulhain style for toolbar.workspace.* and fixed a minor error in fluxbox.1.in (Thanks php-coder (php-coder at ngs dot ru) * Fixed bug: fbrun segfaults when history item is bigger than entry box patch: [ 1005182 ] fix for Bug with RequestID #877004 bug: [ 877004 ] fbrun segfaults when history item is bigger than entry box (Thanks Mangala) *04/08/10: * Fixed minor bug when generating buttons for titlebar, it didn't call setupWindow unless we had a special option like remember enabled (Henrik) * Fixed so one can use to use this in the apps-file: [Layer] {number | literal} example: [Layer] {BOTTOM} while literal is one of (DESKTOP, BOTTOM, NORMAL, TOP, DOCK, ABOVEDOCK, MENU) (Thanks Mathias Gumz) * Added some new options font loading: *.font: fontname-size:option,specoption1:key=val;key2=val2 etc eg: *.font: Verdana-10:bold,shadow:offsetx=2;offsety=4;color=green *.font: Verdana-10:halo:color=blue possible specoptions atm: halo: color=colorname shadow: color=colorname offsetx=number (negative allowed) offsety=number (negative allowed) (Thanks Mathiaz Gumz and C. Mccreesh) * Fixed utf-8 problems, needs testing. (Patch from Sergey Kuleshov) *04/08/05: * Enable dutch menu for flemish people as well. (Thanks Mathieu De Zutter ) * Check if init is consistent with menufile location (Han) * Russion translation updates (thanks Roman Yepishev) *04/08/03: * Fixed pixmap filename expansion for menu pixmaps (Thanks Mathias Gumz) * Fixed so menu separators are unclickable (Thanks Mathias Gumz) * Fixed menu move bug (Thanks Mathias Gumz) *04/07/19: * Some EMX fixes (Thanks dave_yeo at paralynx com) *04/07/18: * Fixed fallback for toolbar.button.pressed (Henrik) *04/07/15: * Click on handle bar raises window even if "click raises" = false, Consistent with the title bar. (Henrik) * Mouse scroll on icons in toolbar changes workspace (Henrik) * Minor fix for Resource (Thanks David Júlio) * Fixed so the delete key is working for fbrun (Henrik) * Fixed minor bug when time_t is long long (Henrik) * Removed ugly toolbar at startup (Henrik) it'll show up once all the windows are created. *04/07/14: * Fixed menu draw bug while doing keyboard navigation (Henrik) * Fixed transient window bug at startup (Henrik) *04/07/06: * Applied tiled texture fix patch (Thanks dhx (xyx@gm...)) *04/07/05: * Fixed minor bug: (Thanks Mathias Gumz) - menutitle and menulables drawn to close to screen-bottom * Fixed minor bug: (Thanks Mathias Gumz) - menu reload if filename changed *04/06/29: * manpage updates (thanks Curt Micol) * Fix rectangle cleaning on attaching tabs (Simon) *04/06/27: * Fixed bug in systray (Henrik) (this fixes the problem with "sim" in systray) - It didn't force client position on configure request * Added toggle menu (Henrik) - redraws each time a toggle menu item changes * Fixed bug in Iconbar mode menu (Henrik) * Some cleaning in the menu code (Henrik) *04/06/21: * Fix and tidy KDE dockapps on [re]start (Simon) - and don't listen to screen reconfigure sig anymore in toolbar * Fix autogrouping issue where windows wouldn't show (Simon) *04/06/20: * Clean out old nls stuff. Move in those strings that are still in the new names, new Makefiles, etc (Simon) - need to get script to help people translate * Fix various systray issues (Simon) * Support _NET_WM_WINDOW_TYPE_DESKTOP (Simon) - eg nautilus desktop windows are on the bottom, not tabable, etc * Fix honouring of initial state on window open (Simon) *04/06/18: * background xmessage in fbsetbg so it doesn't block anything also set the "okay" button to default so you can just press enter (Simon) *04/06/17: * Improve rendering speed of toolbar (Simon) - remove many redundant renders (esp. startup) - only update clock if the text has changed - fix transparency and border on most items *04/06/14: * More menu transparency improvements (Henrik) *04/06/13: * More menu transparency improvements (Henrik) *04/06/12: * Updated japanese locales from Yasuhiro Takabayashi *04/06/10: * Fixed icon in menu and improved menu loading speed (Henrik) New option for menu file: [key] (label) {argument to key} example: [exec] (aterm) {aterm} *04/06/08: * Fix up bsetroot nls, and couple of other tweaks (Simon) * Some man page license updates c/- Han *04/06/07: * New menu theme items: menu.titleHeight: integer menu.itemHeight: integer The height of the item/title will be the biggest of font height + bevel and the specified height, so the text will always fit. (Henrik) * Improved menu transparent rendering speed and the text is not transparent anymore so you are able to see the text even if you have 100% transparency (Henrik) * Moved drawing of menu items to MenuItem class (Henrik) * Initial NLS update (Simon) - use _FBTEXT, or _FBTKTEXT for all strings that go to the user - regenerate fluxbox-nls.hh when adding new strings - This patch doesn't convert old translations, so for the mo, translations are broken, sorry. Thats next. *04/05/24: * Fix handling alpha value of zero (Simon) - also fix up defaulting of missing alpha theme items to 255 *04/05/21: * fluxbox-generate_menu: Updated polish locales from: £ukasz Wrzosek (unl at poczta dot fm) *04/05/18: * Make the size of arrows in buttons half the button size (grubert). * Add UP and DOWN buttons. *04/05/17: * Fix rendering of transparency on menu exposes (Simon) - also enable save unders for menu windows This is kind of experimental. Backing store is off by default in XF86-4. If you want to play, add: Option "BackingStore" "yes" to the Screen section in your XF86Config file. And let me know how it goes :) It basically means we don't have to refresh menus as much, but uses more memory. Shouldn't break anything new. * Fix slit transparency too (finally) while we're at it (Simon) *04/05/13: * Fix a crash when a window closes while [opaque] moving (Simon) - also tidy up several related things when a window hides - don't call frame().hide() explicitly, use FBW.hide(bool) *04/05/04: * Fix EventManager bug/memory leak (possibly caused crash) (Simon) *04/05/02: * Added new nls item for windowmenu: Layer * New command: exit (Henrik) * Fixed loading of a windowmenu file. (Henrik) New resource: * session.screen.windowMenu: The menu file format is the same as the normal ~/.fluxbox/menu but with some special menu items: [iconify], [maximize], [shade], [close], [extramenus] [layer], [sendto] + the all the other menu items that you can use in the normal root menu (i.e [exec] (aterm) {aterm}) The [extramenus] will add "remember" menu example: session.screen0.windowMenu: ~/.fluxbox/windowmenu [begin] [exec] (aterm) {aterm} [maximize] [shade] [stick] [submenu] (advanced) [layer] [sendto] [extramenus] [end] [separator] [close] [end] * Moved out some simple classes from Screen.cc (Henrik) * Fixed new menu parsing (Henrik) everything goes through MenuCreator now. *04/04/30: * fix up reparent issue that affects java menus (thanks Scott Moser) *04/04/28: * Fix key bindings for directional focus movement (Simon) - reminder, key actions are: FocusUp, FocusDown, FocusLeft, FocusRight * Add apps file matching on WM_WINDOW_ROLE (Simon) - use "role=string". Particularly useful for gaim+gimp windows [app] (role=buddy_list) ... *04/04/27: * Fix up several toolbar theme items and alignments (Simon) - big improvement in look/compatibility of older styles *04/04/26: * Fixed some small compile errors with gcc 3.4 (Henrik) -------------------------------------------------------------------- Changes for 0.9.9: *04/04/22: * New Command: Deiconify (Thanks Mathias Gumz) * Where mode is: * last - deiconify last iconified window * lastworkspace (default) - deiconify last iconified window from current workspace * all - deiconify all iconified windows * allworkspace - deiconify all iconfiied windows from current workspace * and dest is: * current (default) - deiconify them on current windows * origin - deiconify them where they were * originquiet - deiconify to old workspace but dont follow * Attach area for tabs: (Thanks Mathias Gumz) new resource: * session.tabsAttachArea: where mode is: Window - dropping tabs to any part of the destination-window leads to attaching to that frame (default) Titlebar - dropping tabs only to the titlebar of the destination- window leads to attaching to that frame * FbRun: (Thanks Mathias Gumz) path completion and fixed so it loads apps on first tab-press *04/04/19: * Moved kde dockapps from slit into the systray in toolbar (Henrik * Minor fix for fbrun using FbTk::Directory (Thanks Mathias Gumz) *04/04/18: * Fixed decoration bug with mwm hint + remember (Thanks Mathias Gumz) * Fixed round courners bug in menu (Henrik) * Minor fix for decor/position remember state (Thanks Mathias Gumz) * Fixed drawing issue with big menus (Thanks Mathias Gumz) * fbrun: Tab complete on all apps in $PATH (Thanks Mathias Gumz) (To tab complete on history Ctrl+Tab) *04/04/17: * KDE as default now, not a big overhead anyways (Henrik) *04/04/14: * Revert to sync. Async stops it from replaying (Simon) * Half revert a bit of the below, since it broke click-to-focus (Simon) -> adds back the grab, but as an async one * Hopefully fix the "stange" hang on restart (Simon) - remove big sync-ed grab on all Button1 events - Also tidy and fix tab moving * Fixed a menu title bug (Thanks Mathias Gumz) *04/04/12: * Hide window menu when clicking on another window (Thanks Mathias Gumz) * Possibly fixed the "strange" hang on restart and at creation of new windows. Needs more testing though. (Henrik) Making sure there's not more than one GrabPointer at once in FluxboxWindow. *04/04/10: * Some cleaning in Makefile.am's (Thanks Frédéric L. W. Meunier (1 at pervalidus dot net)) *04/04/03: * French nls for fluxbox-generate_menu (Thanks LaLu *04/04/01: * Support aspect ratio hints (Simon) *04/03/31: * Fixed _MOTIF_WM_HINTS decoration toggle bug (Henrik) *04/03/30: * Fixed optional decoration on transient windows (Thanks Scott Moser ) *04/03/28: * Fixed window snaping to screen objects (Henrik) *04/03/22: * Added screen resources to define line style for resize/move (Thanks Mathias Gumz) session.screen.overlay.lineWidth: session.screen.overlay.lineStyle: session.screen.overlay.joinStyle: session.screen.overlay.capStyle: * Fixed no-text-in-iconbar-bug on restart (Thanks Mathias Gumz) *04/03/21: * A number of small fixes (Simon) - Fix up focus+highlights on tab close - Centralise focus fallbacks (fluxbox::unfocusWindow) - we now prefer the last focused window in the current tabgroup to the actual last focused window on the whole screen. *04/03/19: * fluxbox-generate_menu: (Han) removes the reload-menu code which is obsolete since Mathias's latest patch *04/03/18: * Fixed menu time stamp for root menu (Thanks Mathias Gumz) the root menu now reloads if you edit the menu file * Added Control-c to the TextBox.cc so the (Thanks Mathias Gumz) TextBox gets cleared if one presses Control-c * Fixed so @ and | works in text box (Thanks Mathias Gumz) *04/03/16: * Minor fix for ${INSTALL} and reload fluxbox menu (Han) * Fix the fix, and a bit more for placeWindow (Simon) *04/03/15: * bug in placeWindow caused spinning with screens higher than width e.g. vertical xinerama (Simon) *04/03/13: * Fixed so it compiles in cygwin (Henrik) *04/03/11: * fbsetbg updates: (Han) * Check if Esetroot was linked with Imlib * Add support for gxmessage (looks much nicer) * Send all messages to xmessage/gxmessage because test -t is also true when startx is used. * Add compat note for $UID * fbsetbg: special Esetroot check and message improvements (Han) *04/03/08: * Fix focus passing when grouping (Simon) * Fix receipt of _NET_WM_DESKTOP client messages (Simon) - fixes xmms "show on all desktops" not working *04/03/03: * Fix update of keys on keymap change (Simon) * Fix outline moving dropping on source workspace made window disappear [we now explicitly don't unfocus a moving window] (Simon) * Updated finnish locales for fluxbox-generate_menu (Thanks Lauri Hakkarainen) *04/03/02: * fluxbox-generate_menu changes: (Han) * Updated German locales from Mathias Gumz * More firefox support. * Updated compat-notes. *04/02/28: * Improved rendering speed when changing workspace or creating new window (Henrik) * Fixed bug in StringUtil::removeTrailingWhitespace (Thanks Mathias Gumz) * Fixed infinite loop in fbrun (Thanks Mathias Gumz) * Added improved checking for compiler and compiler version (Henrik) *04/02/26: * Improved transparent rendering speed in titlebar (Henrik) * Improved transparent rendering speed in Menu (Henrik) * Added CompareEqual class template that helps comparing accessor functions with PODs for containers *04/02/25: * Fixed cycling in tab completion for fbrun (Thanks Mathias Gumz) *04/02/20: * Added SendToNextWorkspace and SendToPrevWorkspace actions (Thanks Mathias Gumz) * Minor filename expansion fix (Thanks Mathias Gumz) and added '!' as a comment character in keys file * fixed focus issues with remember hidden (Thanks Mathias Gumz) *04/02/18: * Change workspace when clicking on a window in iconbar that's on (Henrik) another workspace *04/02/16: * Added remember hidden state for apps (Thanks Mathias Gumz) You mark apps in the apps-file with [Hidden] {yes} With this you can configure any app to be hidden from the toolbar * Fixed window size bug in no-decor windows on start/restart (Henrik) *04/02/14: * Fixed bug in _NET_MOVERESIZE_WINDOW (Henrik) *04/02/10: * Minor fixes (Thanks Mathias Gumz) * fbgm updates (Thanks Han and Nero Wolfe [mrwolfelinuxmail.org]) - portability fixes, improve menu reloading, and new menu entries *04/01/30: * Tidy up a few slitlist things (Simon) - expand ~, trim spaces, allow comments, use WM_CLASS instead of NAME - should make it use regexp like remember sometime *04/01/23: * Fix a few window frame issues when changing styles (Simon) - particularly a "void" area of the window *04/01/22: * Fix missing sanitycheck in fbsetbg (Thanks Tom Ryan) *04/01/21: * Added more international keywords and (Thanks Antonio Gomes) Portuguese locales for fluxbox-generate_menu.in * Added automatic reload of the new menu in (Han) * Fixed window size bug (Henrik) FbWinFrame::hideHandle and hideTitlebar could've caused window to have negative size * Fixed cursor bug in fbrun (Thanks Mathias Gumz (gumzcs.uni-magdeburg.de)) * Added support for: (Henrik) _NET_WM_WINDOW_TYPE _NET_WM_WINDOW_TYPE_DOCK * Fixed so one can navigate in menu even if (Henrik) numlock, capslock or scrollock are on *04/01/19: * Fixed minor bug in ResourceManager (Henrik) * Support for: (Henrik) _NET_WM_STATE_ABOVE _NET_WM_STATE_BELOW _NET_WM_CLIENT_LIST_STACKING _NET_WM_DESKTOP_VIEWPORT _NET_WM_DESKTOP_GEOMETRY _NET_WORKAREA _NET_ACTIVE_WINDOW * Fixed minor bugs in Ewmh, (Henrik) The gnome-panel should now be working with window list and workspaces *04/01/18: * Fixed snap to max screen area instead of real screen area (Henrik) * Support for _NET_WM_STATE_HIDDEN and _NET_WM_STATE_SKIP_TASKBAR (Henrik) * Fixed mplayer xvid vo bug (Henrik) It now finds correct screen to create window on *04/01/17: * Enter nls/pl_PL into configure.in and add a Makefile.am to pl_PL. * Add nls/sl_SI (thanks Ale¨ Jagodnik) *04/01/16: * Updated nl_NL locales (Han) * Different window for window position (Thanks Junichiro Kita (kitakitaj.no-ip.com) * New Command: (Thanks Junichiro Kita (kitakitaj.no-ip.com) WindowMenu - this will show the window menu on the focused window * Revert to old focused window after menu keyboard navigation (Henrik) * Menu keyboard navigation bug fixes (Thanks Junichiro Kita (kitakitaj.no-ip.com) also fixes so submenus dont open unless you press Right * Using strut area for ArrangeWindows (Thanks Carlos (mindsuck<(at)>gfxnstuff .com.ar)) * New behavior for icon button (Thanks Dmitriy Nikitinskiy) On click: if focused then iconify else raise and focus. -------------------------------------------------------------------------- Changes for 0.9.8: *04/01/14: * Fixed some border issues with left/right alignment in Iconbar (Henrik) * Implement transparency for toolbar (Simon) - can use toolbar.alpha, as well as toolbar..alpha *04/01/12: * Limit loop in menu cleaning (Han) *04/01/11: * Fixed ImageControl cache problem (Henrik) * Hide menus when click on iconbar (Henrik) *04/01/10: * Fixed a memory leak (Henrik) We forgot to destroy screens on shutdown * Fix a number of transparency issues for window frames (Simon) *04/01/09: * Fixed color parse bug (Henrik) * Fixed an iconify bug in "All Windows" mode in IconbarTool (Henrik) *04/01/08: * Fixed some uninitialized variables (Henrik) * Minor fixes for signed/unsigned warnings in FbTk (Henrik) ------------------------------------------------------------------------ Changes for 0.9.7: *04/01/02: * Added new styles Emerge (from Nuno Alexandre) and BlueFlux (from Lauri Hakkarainen) * Removed styles: Clean (CleanColor renamed to Clean), Rancor and Blue (Henrik) * fbsetbg trivial: (Thanks Han) Add support for random_number, provided by: http://www.xs4all.nl/~hanb/software/arc4random.tar.bz2 for the fans :) * Added menu item [separator] (Henrik) * Fixed bug in ThemeItem::setFromString (Henrik) It didn't check if sscanf returned error * Fixed image cache bug (Henrik) * Fixed active/unfocus fallback bug (Henrik) * Tab completion in command dialog (Henrik) *03/12/30: * Added resource session.useMod1 to disable/enable mod1 (Henrik) for Resize/Move window with mod1 + button * Fixed so it checks for caps, num and scrollock (Henrik) * Focus issue (Henrik) *03/12/29: * Removed dublicate call to load theme in startup (Henrik) * Random wallpaper for fbsetbg (Thanks Han) *03/12/22: * Fix rendering of icon buttons when larger from rounding (Simon) *03/12/22: * Added Lock Screen to fluxbox-generate_menu (Thanks Han) *03/12/21: * Fix rounding on Iconbar (Simon) * And another attempt at sloppy focus issues (Simon) * Minor fix (Henrik) We must assume Passive when no input hint is set *03/12/20: * Fixed toolbar and slit autohide bug (Henrik) * Added new action: BindKey (Henrik) This will allow you to add key bindings while you're running fluxbox in the Fluxbox Command dialog. example: BindKey Mod1 R :RootMenu The key will add itself to the keys file, to remove keys you still have to manualy edit the keys file until there's a better save in the code. *03/12/19: * Added Edit Clock Format menu item (Henrik) This allow the user to edit the clock format without open and edit the init file manualy * Added new commands: (Henrik) SetResourceValueCmd SetResourceValueDialog These will help the user to set some resources that doesn't have a configure menu item or that's painfull to change in small steps (like Menu Alpha) * Added setResourceValue, resourceValue and findResource to ResourceManager (Henrik) * Removed flicker in iconbar while changing active client in Window. (Henrik) * Fixed bug in key/mouse screen updates in fluxbox.cc (Henrik) * Old/New action: SetWorkspaceName doesn't pop up dialog to edit workspace name (Henrik) it now sets the current workspace name direct example: SetWorkspaceName somespace this will set current workspace name to somespace The new action for editing workspace name is: WorkspaceNameDialog * New Action: CommandDialog - with this action you'll get a dialog much like (Henrik) fbrun but in this you can issue fluxbox actions like NextWorkspace and so on. * Replaces WorkspaceNameEditing with a more generic dialog (Henrik) CommandDialog. * Code cleaning (Henrik) * changed session.opaqueMove to session.screen.opaqueMove (Henrik) *03/12/18: * Patch from Ciaran that fixes so style files that (Thanks Ciaran McCreesh) starts with "." or ends with "~" (backup files) doesn't gett added to style menu * Some cleaning (Henrik) * nl_NL locales (Thanks Han Boetes) *03/12/17: * Fixed some icc warnings (Henrik) * Changed menu delay resource values to milliseconds instead of microsec (Henrik) Max value for each delay is 5000 msec (5 seconds) A good set of values are: session.screen0.menuDelay: 400 session.screen0.menuDelayClose: 300 *03/12/15: * Fix mozilla focus issue (Simon) - When input focus hint not present assume false rather than true *03/12/13: * Moving client to drop zone when drag'n'drop to root window (Henrik) *03/12/12: * Added menu delay/click to open or close submenus (Henrik) In menuMode: Click you need to click on the menu item to open it. The menuDelay is the delay to open an submenu. The menuDelayClose is so you don't need to aim that much when you're moving the cursor to the submenu, over the item below or above, so it stays visible. new resource items: session.screen0.menuMode: can be either Click or Delay (default: Delay) session.screen0.menuDelay: in msec (default: 0 ) session.screen0.menuDelayClose: in msec (default: 0 ) example: session.screen0.menuMode: Delay session.screen0.menuDelay: 400 session.screen0.menuDelayClose: 300 Notice how the menuDelay is a bit larger than menuCloseDelay this is so the previous menu can close before you open the next * Fixed bug when adding alot of new workspaces (Henrik) * Removed Next/Prev client from window menu (Henrik) * Added aligment for buttons in iconbar (Henrik) Change Left, Relative or Right via the Iconbar mode menu New resource item: session.screen0.iconbar.clientWidth: integer session.screen0.iconbar.alignment: LEFT, RELATIVE or RIGHT * Support for bsetroot in fbsetbg (Han) *03/12/11: * Added remember position (Thanks Mathias Gumz) Usage: [app] (fbrun) [Position] (WINCENTER) {0 0} [end] and inside the { } is the relative position possible values for () are: UPPERLEFT, UPPERRIGHT, LOWERLEFT, LOWERRIGHT, CENTER, WINCENTER Remember.cc/hh *03/12/10: * Added temporarly nice separator line (Thanks Ciaran McCreesh) use [nop] (---) to get a nice separator line in the menu * Fixed geometry window bug when resizing (Henrik) * Cleaning in menu code (Henrik) *03/12/09: * Ignore NotifyInferior focus changes (Simon) - trying to pin down various focus issues... does this help/hinder? * New theme items: (Simon) window.label.active: window.label.active.textColor: For highlighting the active (visible) tab when not in focus. - fixes bug with unfocused windows not getting unfocus.textColor *03/12/08: * fbsetbg now remembers -u option and it also has (Han) a new -U option which does the same thing without remembering * Added "visible" menu item to Toolbar (Henrik) When this item is off the toolbar vill be completely hidden. (You can still access the toolbar menu via main configure menu) New resource item: session..toolbar.visible: * Removed data/startup.in (Henrik) *03/12/07: * Fixed bug window title change bug for iconbar (Henrik) * Fixed bug in extra drawing in the iconbar (Henrik) * Fixed bug with color/colorTo and .pixmap in styles (Henrik) * Added Toolbar to main config menu again (Henrik) *03/12/06: * Updates for startfluxbox.in (Han) *03/12/04: * Added new clock format menu item (Henrik) It'll toggle the clock in 24/12 format * Changed XSync to FbTk::App::sync (Henrik) *03/12/03: * window menu inside clientmenu inside workspacemenu (Henrik) * Added new command "reloadstyle" (Henrik) * Fixed so toolbar menu hides when you click on root window/desktop (Henrik) * Removed ToolbarHandler (Henrik) *03/12/02: * Missing include of math.h for sqrt (Simon) *03/12/01: * Fixed shadow bug with other options (Henrik) * Fixed antialias bug in fbrun (Henrik) Antialias is enabled by default for FbRun Changed switch -a to -na (disable antialias) *03/11/29: * Added shadow text (Henrik) To use shadow in text you need to add option to your font style item. The theme item will continue to work in old fluxbox and it'll just ignore the "shadow" option Example: menu.title.font: Verdana-10:bold,shadow menu.frame.font: Verdana-8:shadow window.font: sans-8:shadow *.font: sans-12:shadow *03/11/27: * The "Send To..."-menu is back (Henrik) * Added new option on Iconbar mode menu: "Use Pixmap" (Henrik) Toggle this to show/hide pixmap of windows new resource item: session.screen.iconbar.usePixmap: * Changed Maximize menu item in Window menu to a multi button item (Henrik) Button1: Maximize Normal Button2: Maximize Vertical Button3: Maximize Horizontal MultiButtonMenuItem.hh/cc, Window.cc *03/11/23: * Some util/ updates from Han *03/11/19: * Fix menu draw bug for empty submenus (Simon) * Fix menu placement for iconbar and titlebar activation, including xinerama awareness (Simon) * Fix win menu hide straight after show when right click icon (Simon) ------------------------------------------------------------------------- Changes for 0.9.6: *03/11/16: * Fixed sstream and strstream header check (Henrik) * Add image search paths when loading a style (Simon) - now looks for pixmaps in and /pixmaps - now looks for styles in //theme.cfg => for this, stylebase is the style directory - pixmap styles should use the new format for portability *03/11/15: * Moved fluxbox-generate_menu to fluxbox-generate_menu.in (Thanks Han) fixed empty submenu problem *03/10/31: * Fix slit client map on restart and surplus menu redraw (Simon) * Fix textbutton text alignment (out by one) (Simon) * Tweak some positioning for winbutton drawn icons (Simon) * Fix iconbar button alignment and squash inactive tools (Simon) - also fix a bunch of rounding issues -> keep in mind that titlebar/iconbar width may not be exactly divisible by the number of clients/labels in it *03/10/30: * Fix handling of theme's with a zero handleWidth (Simon) *03/10/28: * Fix building with --disable-slit (Simon) *03/10/27: * Change FbWinFrame to NOT reparent client windows into clientarea (Simon) - fixes (I think) java bug with missing drawing bits of window - allows us to remove some dodgy "and for parent" hacks (not done in this patch, but will be in new action system which depends on this) - clientarea still exists for future implementation of improved sizing, particularly to provide a backing to clients that don't take up the whole area. *03/10/26: * Fixed bug in FbWindow::setNew (Henrik) It didn't update member variables *03/10/25: * Fixed whitespace in filenames for pixmaps (Henrik) * Added MoveTo/ResizeTo commands (Thanks sylvinus) Moves/Resize the window absolute coordinates * usage: MoveTo 100 100 ResizeTo 100 100 *03/10/20: * fbgm updates from Han - allow options in ~/.fluxbox/menuconfig - update dutch locales a bit. - fbrun options added in menuconfig - added /usr/X11R6 to searchpath - some other random fixes/updates *03/10/17: * fbsetbg update from Han - new option to explicitly say which wallpaper setting to use, plus minor changes *03/10/15: * Fix event manager target window (Simon) -> Some events don't have the main window as xany.window (e.g. XConfigureRequestEvent has the parent there) -> Fixes missing configurerequest events for e.g. galeon *03/10/14: * Bug fix in NextWindow/PrevWindow Command (Henrik) it was only executed when last event = keyevent * New theme items: * toolbar.button.size for fixed buttons in the toolbar * toolbar.button.borderWidth * toolbar.button.borderColor * toolbar.button * toolbar.button.color * toolbar.button.colorTo * toolbar.button.pixmap * toolbar.button.picColor * toolbar.button.pressed.color * toolbar.button.pressed.colorTo * toolbar.button.pressed * Added pressed color for buttons (Henrik) * Added new tools for the toolbar (Henrik) - nextworkspace/prevworkspace creates left/right arrows that changes workspace - nextwindow/prevwindow creates left/right arrows that changes focused window *03/10/10: * Various drawing-related optimisations and bug fixes (Simon) - fixes toolbar random colour flicker on workspace change - speeds up pixmap rendering a little (inlining and friends!) - pixmap cache now a set rather than list (faster search) *03/10/08: * fluxbox-generate_menu update from Han - replace getopts with portable workaround * fbsetbg updates from Han, and some tweaking (Simon) *03/10/06: * Fix rendering of offscreen windows (remove if !visible tests) (Simon) * Fix shaped windows+menus (Simon) - make sure all existing menus use shape - fix Shape itself, particularly to work properly with borders *03/10/05: * Fix frame size when changing titlebar size (Simon) - also send configure notify when toggling decorations * Move a bunch of functionality from Keys into FbTk::KeyUtil (Simon) - also fix issue where Capslock mod was taken to be whatever caps key was mapped to (why??). Now uses LockMask (ditto num,scroll). * Fix reading of auto raise delay (Simon) * Make focusLast work for sloppy focus when changing workspace or closing a window (Simon) - also generalises event redirects (e.g. for window moving) *03/10/04: * Fix NLS bad message errors by adding explicit codeset entries (Simon) - thanks to Matt Hope for pointing us to the recent workaround from blackbox (and thanks to Matt Kraai who contrib-d to Blackbox) - also clean up the Makefiles so they are more generalised *03/10/02: * Fix couple of memory leaks and uninitialised uses shown up with valgrind (Simon) * Make grips children of handle (Simon) - Fixes parentrelative grip texture * Fix updating of window on focus change (Simon) *03/09/29: * Fix aterm not updating on opaque move (Thanks Mathias Gumz) * Fix resize calculations, particularly wrt base_width/height (Simon) - fixes abiword resize issues * Nearest-quadrant resizing (Thanks Uwe Maurer and Mathias Gumz) * Update from Han - make startup executable to save one process - make pixmaps-dir - use -a which falls back to -f for wallpapers(testing) - some code cleanups. *03/09/24: * Fix crash when closing active window while cycling focus (Simon) Screen.cc * Fix updates to mwm_hints, and make configure request move and resize atomic (Simon) - fixes mplayer fullscreen window being moveable - fixes focus loss when toggling mplayer fullscreen * Fixed the "aterm"-bug (Henrik) *03/09/23: * Add support for _NET_WM_STATE_FULLSCREEN (Simon) - fixes mozilla/firebird fullscreen *03/09/22: * Fix invisible minimize button for non-pixmap themes (Simon) *03/09/21: * Fix disappearing close button (Simon) *03/09/20: * Add nls/pl_PL (Thanks Offtza). * Add nls/translators.txt saying that offtza contributed the pl_PL. * Fixed ArrangeWindows for greater odd numbers (5,7,..). *03/09/19: * fbsetbg update (Thanks Han) - fixes fbsetbg -l after a changing the wallpapersetter. - fixes xli debug message - cleanups - adds feh (thanks teemu) *03/09/16: * Apply gravity when changing decorations (Simon) - also fix gravity when decorations not present *03/09/15: * Fixed bug in IconbarTool mode = NONE (Henrik) *03/09/14: * Fixed minor bug in stick pressed button (Henrik) * Focus fixes (Simon) Hopefully fixes mysterious instances of focus not being set right. * More optimization to reduce flicker in titlebar *03/09/13: * Fixed minor compilation problem for Solaris (Thanks NivenHuH) * Added new theme items (Henrik) * menu.borderWidth * menu.borderColor * menu.bevelWidth * window.handleWidth * window.bevelWidth * Optimized rendering for windows (Henrik) Reduced flicker * Changed fallback options for window button pixmaps (Henrik) *.focus/unfocus will fallback to old style if no pixmap is detected * Added anjuta, blender -w, wings, rox filer, vmware, xlock to fluxbox-generate_menu (Thanks Pol) *03/09/12: * Fix a couple of issues related to windows reparenting themselves to escape the WM. Hopefully fixes mplayer/vncviewer fullscreen problems. (Simon) * Fix window gravity handling (Simon) - should fix some offset fullscreen issues *03/09/10: * Fixed buffer for TextButton (Henrik) Reduces flicker * Added Move action (Thanks Mathias Gumz) Usage: Move x y * Fixed minor bug in IconbarTool (Henrik) * Added update timer for transparency in FbWinFrame (Henrik) Updates the transparency 1 usec after each move, this speeds up moving in opaque mode * new resource item session.updateDelayTime: This delay decides when the transparency should update when you're moving *03/09/08: * Fixed numlock and scrlock bug in FbTk TextBox (Henrik) This will fix workspace edit window input when having num- or scrolllock on. * Added iconbar mode menu (Henrik) * new resource item: session.screen.iconbar.mode: Toolbar.cc, IconbarTool.cc/hh * Added icon list sig to Screen (Henrik) This will notify when the icon list changed. Useful for IconbarTool * Fixed minor bug in FbTk::Subject (Henrik) If one removes an observer while notify() it'll put that observer in a dead_observer list which will be cleand after notify() * Fixed minor bug in FbTk::Button (Henrik) It did a execute() and then a updateTransparent (in buttonRelease), which could be dangerous if the execute() killed the object * Fix when selecting + unneeded submenu redraw on enter+motion (Simon) *03/09/07: * Added startup script to be used with startfluxbox, to get a consistent frontend for both *dm and startx and your fluxbox-session (Thanks Han) * Minor cleaning in some Makefile.am (Thanks Han) *03/09/06: * Added Resize x y as command (Thanks Mathias Gumz) * Added "!" as a comment line for keys file (Thanks Mathias Gumz) * Fixed so root menu and workspace menu shows up under the mouse (Thanks Mathias Gumz) * Moved detection of lock modifiers from Keys to FbTk::KeyUtil (Henrik) *03/08/30: * Added new action: workspacemenu (Thanks Mathias Gumz) * Improved menu speed (Henrik) * Fixed old borderColor theme option fallback for Slit (Henrik) *03/08/29: * Fixed iconbar, workspace theme and slit for old themes (Henrik) * Added -verbose argument to fluxbox (Henrik) This will enable theme warnings *03/08/28: * Fixed so ThemeManager::load expands ~ (Henrik) * Fixed pixmap bug when changing between non-pixmap themes and pixmap themes (Henrik) * Fixed so Theme items calls setDefaultValue in constructor (Henrik) This should fix init values. * Fixed empty window bug in SystemTray (Henrik) * Fixed configurable tools in toolbar (Henrik) * New resource item: * session.screen.toolbar.tools: , example: session.screen0.toolbar.tools: clock, iconbar, workspacename Valid toolnames are: * workspacename * clock * iconbar * systemtray * Fixed toolbar height bug crash (Henrik) --------------------------------------------------------------------------- Changes for 0.9.5: *03/08/27: * Added support for _NET_WM_STATE_MAXIMIZE_{HORZ/VERT} (Thanks stephan wezel web de>) * Added new theme item for toolbar: (Henrik) * toolbar.height * Added new theme items for menu: (Henrik) * menu.selected.pixmap * menu.unselected.pixmap * menu.submenu.pixmap One can now specify pixmap to use for toggle items and what "arrow" to show on submenu items * Changed FbRun to use FbPixmap and GContext (Henrik) * Added FbTk::GContext a wrapper for X GC (Henrik) * Changed FbRun to use FbTk::TextBox * Added a workspace name setting tool (Henrik) new action name: SetWorkspaceName * Added TextBox for input window (Henrik) *03/08/25: * Fix some style initialisation issues (Simon) * Added window icon for FbRun (Henrik) *03/08/24: * Fixed transparent bug in Menus (submenu) (Henrik) * Fixed so shaped windows like xmms wont get theme (Henrik) specified shape (round corners) * Added file Compose.hh (Henrik) * Fixed randr support in toolbar (Henrik) *03/08/23: * Fixed autohide and menu in Toolbar (Henrik) *03/08/22: * Added search path resource for images (Henrik) * session.screen.imageSearchPath This is a list separated by , or space example: session.screen0.imageSearchPath: ~/.fluxbox/pixmaps, /usr/share/fluxbox/pixmaps * Added new files for image loading (Henrik) The new way to load pixmap is to call FbTk::Image::load(thefile, screen_num); and to add more image file support you just have to extend FbTk::ImageBase and register it to FbTk::Image * Fixed scaling in WinButtonTheme (Henrik) * Added new theme item window.title.height, Window.Title.Height (Henrik) *03/08/19: * Added ResizeVertical and ResizeHorizontal (Thanks Mathias Gumz) * Fixed fallback option for theme items (Henrik) So the toolbar should look better in old themes * Fixed bug in Subject.cc that cause observers to be added more than once (Henrik) *03/08/17: * Update fbsetbg and fluxbox-generate_menu (Han) *03/08/16: * Fixed iconified windows in toolbar (Henrik) IconbarTool.cc * Fixed default values on startup for some themes (Henrik) *03/08/15: * Fixed new height resource for toolbar (Henrik) This will override the styles font height session.screen0.toolbar.height * Added support for system tray (_NET_SYSTEM_TRAY) (Henrik) *03/08/13: * Fixed shape bug when switching between shaped themes and non shaped (Henrik) * Fixed default values for FbTk::Texture theme items (Henrik) * Added border theme items to ToolbarItems (Henrik) * New theme items toolbar.clock.borderWidth: toolbar.clock.borderColor: toolbar.iconbar.borderWidth: toolbar.iconbar.borderColor: toolbar.workspace.borderWidth: toolbar.workspace.borderColor: * Changed FbTk::Button to a FbWindow (Henrik) *03/08/12: * Added new texture type: Tiled (Henrik) This will just affect pixmap loaded from file, and it will not scale them. *03/08/11: * Fixed a minor focus bug, the m_focused_window was out of sync after revertFocus (Henrik) * Changed so FbTk::Timer executes a FbTk::Command instead of calling TimoutHandler (Henrik) * Added new files for Toolbar (Henrik) * toolbar theme items now: The clock: toolbar.clock: toolbar.clock.pixmap: toolbar.clock.color: toolbar.clock.colorTo: toolbar.clock.textColor: toolbar.clock.font: Workspace name: toolbar.workspace: toolbar.workspace.pixmap: toolbar.workspace.color: toolbar.workspace.colorTo: toolbar.workspace.textColor: toolbar.workspace.font: This is for an empty iconbar: toolbar.iconbar.empty: toolbar.iconbar.empty.pixmap: toolbar.iconbar.empty.color: toolbar.iconbar.empty.colorTo: Focused window in iconbar: toolbar.iconbar.focused: toolbar.iconbar.focused.pixmap: toolbar.iconbar.focused.color: toolbar.iconbar.focused.colorTo: toolbar.iconbar.focused.textColor: toolbar.iconbar.focused.font: And the same for .unfocused: toolbar.iconbar.unfocused: etc. *03/08/10: * Fix session.menuFile to work with ~ properly (Simon) *03/08/07: * Updated fluxbox-generate_menu (Thanks Han) Test before warning, browser details, minor indent issues *03/08/04: * Added transparent window (Henrik) *03/08/03: * Improve inclusion of GNOME and KDE menus (Simon and Han) *03/07/29: * Minor fixes in fluxbox-generate_menu, fbsetbg and styles (Thanks Han) * Fixed kde dockapp bug (Henrik) * Added icon menu to workspace menu (Henrik) * Change: (Simon) - Fluxbox::window search - Fluxbox::m_focused_window - strut saving - Some event handling - and more to use WinClient, not FluxboxWindow. This should fix some bugs where things weren't consistent and hopefully sets the stage to fix various other things that get out of whack. *03/07/28: * Added MoveTabLeft and MoveTabRight commands (Henrik) *03/07/26: * Fix window size when changing borderWidth [borderless wins] (Simon) * Fix some keybinding issues with ShadeWindow, StickWindow, *03/07/25: * Make fbrun work properly on multiple screens (Simon) * Make sure all the menus have titles, make -version go to stdout (Simon) * Fix pesky crash and phantom icons (diesig wasn't getting through) (Simon) *03/07/24: * Fix some maximisation issues (Simon) *03/07/23: * Fixed KDE dockapp bug (Henrik) *03/07/21: * Really fix focus stuff. Should be properly standards compliant now (I hope). This also fixes a crash introduced yesterday. (Simon) *03/07/20: * Fix aspects of focus and raising, including transients (Simon) - fixes focus toggling with transients and sloppy focus * Fix menu [re]drawing, particularly when selecting options (Simon) * Fix disappearing Remember menu, plus titles of sub-window menus -> can now use addExtraMenus for windows in extensions (Simon) * Fix crash with toolbarmode = OFF, and put toolbar menu back into screen's configure menu (Simon) *03/07/19: * Make most Commands execute on mouse screen rather than screen of focused window (Simon) * Fix xinerama options (again) for Slit and Toolbar (Simon) * Move menu alpha setting into MenuTheme (Simon) - fixes alpha init on multi-screened machines * Add compiled-in defaults to fluxbox -info (thanks Matt Hope) * Redo ResourceManager so that it loads resources on registration, and only opens the database in blocks of requests (Simon) - fixes initial loading of init resources (e.g. toolbar.layer) *03/07/18: * Fix java bug. Wasn't sending ConfigureNotify's to client (Simon) - also fix missing border on transient windows - also set some gnome hints initially *03/07/12: * Fixed 8 bpp crash (Henrik) *03/07/11: * Added TOOLBAR to -info (Henrik) ------------------------------------------------------------------------- Changes for 0.9.4: *03/07/10: * Added new toolbar theme item (Henrik) * toolbar.button.borderWidth: * Add [startup] to Remember (Simon) Can now add entries to apps file like: [startup] {xterm} Then "xterm" will be launched on fluxbox startup. Can also give a screen option: [startup] (screen=1) {xterm} will start it on screen 1 rather than the default 0. * Added new rounded theme items (Henrik) * toolbar.shaped: this will make the toolbar shape the corners that are towards center of the screen * menu.roundCorners: * window.roundCorners: Where shape items can be TopLeft TopRight BottomLeft and BottomRight example: menu.roundCorners: TopRight BottomLeft * Applied patch that keeps the fbrun_history clean by not allowing duplicates to get placed in the history. (Thanks David J Burger hawaii.edu>) * fbsetbg updates (Han) *03/07/05: * Fix winclient death signalling - fixes remember issues with applying attributes to wrong windows (Simon) *03/07/04: * Add support in remember for grouping apps (Simon) Achieved by using [group], e.g. [group] [app] (title=groupme) [Deco] {NONE} [end] will group anything with the title "groupme" and will give that group no decorations. You can have multiple [app] lines in a [group]. Recall that app lines can also use regular expressions. - also includes split AtomHandler::setupWindow(fbw) into setupFrame(fbw) and setupClient(winclient). *03/07/03: * Added selected dot for style menu so one can see which style is selected (Henrik) * Fixed Slit autohide bug (Henrik) *03/07/01: * Added keyboard navigation for menus (Henrik) (click on title to get input focus, unless you're using RootMenu in keys) Use keys: Up/Down: select menu item Left/Right: go in/out from submenus Escape: close menu and return focus to windows Enter: run/execute/toggle menu item * Fixed reconfigure toolbar on screen reconfig signal (Henrik) * Fixed workspace label redraw bug (Thanks Jochem Kossen j.kossenhome.nl) *03/06/30: * Fixed so we can use the same action strings in menu as in key actions (Henrik) * Added command "ShowDesktop" (Henrik) This command iconifies all windows and shows the desktop * Added command "ArrangeWindows" (Thanks Ricardo Martins softhome.net> ) This command arranges so all windows are in a nice row/col order * Changed class Keys to use FbTk::Command (Henrik) * Added Files: (Henrik) *03/06/29: * Add chbg support to fbsetbg (Thanks Han and Michael T. Dean) *03/06/28: * Fix slit netizens (e.g. withdrawn pager) (Simon) *03/06/26: * Speedups for having many (particularly stuck) windows (Simon) *03/06/25: * Applied toggle max vertical/horizontal patch (Thanks MrChuoi mrchuoi<[aT]>yahoo.com) * Fixed compile time option for Toolbar (Henrik) --enable-toolbar (default on) *03/06/24: * Added new theme items (Henrik) * toolbar.borderWidth: * toolbar.bevelWidth: * toolbar.borderColor: * slit.borderWidth: * slit.bevelWidth: * slit.borderColor: * Moved toolbar mode resource to ToolbarHandler (Henrik) * Fixed minor bug in button alignment (Henrik) * Fixed minor bug in transparent Slit (Henrik) * Emacs keybindings and tab completion for FbRun (Thanks David J Burger) *03/06/23: * Add group persistence over a restart, Move most winclient initialisation from FluxboxWindow to WinClient, And fix a few bugs (Simon) * Moved toolbar resources from BScreen to Toolbar (Henrik) *03/06/22: * fluxbox-generate_menu: French locales, (Thanks Tarax ) Two additions to the menu (Thanks Pol) * Added Xutil for getWMName in Slit, SlitClient and WinClient and made some cleaning (Henrik) * New resource name session.screen.slit.maxOver: (Henrik) This will prevent windows from maximize over the slit *03/06/20: * Moved SlitTheme and SlitClient out from Slit.cc into new files (Henrik) * Moved Slit resource from BScreen to Slit (Henrik) *03/06/18: * Fixed toolbar and slit maximize implementation (Henrik) * Fixed _NET_WM_STRUT support (Henrik) * Added Strut.hh which contains left, right, top and bottom (Henrik) *03/06/16: * Fixed trailing whitespace in group file loading (Henrik) *03/06/15: * Apply workaround for strftime test - fails with gcc 3.3 due to compiler bug? - thanks Joshua Kwan (Simon) * Fix group cycling, also adding new "NextGroup/PrevGroup" keys (Simon) *03/06/13: * Fixed autogrouping (Henrik) * Regular expression support for remember (Simon) Also ability to limit number of matches for a given rule Also ability to match several different window attributes Can disable in compile using --disable-regexp (will just do plain string equality then) - General format is: [app] (property=expr) ... {number} If "property=" is excluded, the name property is assumed. If {number} is excluded, 0 = no limit is assumed. - Current available properties are: * name -> the name of the window - the first field of WM_CLASS * class -> the class of the window - the second field of WM_CLASS * title -> the title of the window - the WM_NAME property - e.g. [app] (*[tT]erm) {2} will match anything ending with term, for up to 2 instances - e.g. [app] (title=.*gaim.*) will match anything with gaim in the title ("gaim", "the gaim window", etc. *03/06/12: * Renamed i18n.hh/cc to I18n.hh/cc (Henrik) *03/06/11: * Added nls for antialias (Thanks ...) --------------------------------------------------------------------------------- Changes for 0.9.3: *03/06/08: * Add Reconfigure and Restart Key actions, thanks Jann Fisher (Simon) Also modify the patch to take argument on Restart action * Fix restart command to accept and use an argument again (Simon) * Fix bug that sometimes left window frames after window closed (Simon) *03/06/06: * Fixes and improvements from Han (Simon, thanks Han) *03/06/05: * Fixed slit bug (Henrik) * Fixed window/button redraw bug (Henrik) * Optimise window placement (much better now) (Simon) *03/05/26: * Fix usage of decorations.border, add BORDER decoration to remember (Simon) *03/05/24: * Fixed menu bug in FluxboxWindow (Henrik) * Fix crash when toolbar turned off, and toolbar initialisation (Simon) *03/05/21: * Fix cascade placement for multiple heads (Simon) *03/05/20: * Add xinerama for placement and snapping, plus tidy (Simon) *03/05/19: * Clean + change xinerama, plus add maximize smarts (Simon) * Fixed minor bug in bsetroot (Henrik) * Add back some Xinerama support (still need placement + maximise) (Simon) * Fix bsetroot segfault (Simon) *03/05/18: * Moved some Resource code to FbTk (Henrik) *03/05/17: * Fixed autohide bug in toolbar (Thanks MrChuoi) * Fixed slit client bug (Thanks MrChuoi) * Fixed cursor for grips (Thanks MrChuoi) * Fixed minor bug in FbTk::EventManager (Thanks MrChuoi) *03/05/16: * Fixed logging file and better info message (Henrik) New argument to fluxbox -log *03/05/14: * Fixed Shape events, this fixes some decor issues with gkrellm and xmms (Henrik) * Fixed crash bug when client died and clientlist wasn't updated (Henrik) *03/05/13: * Fixed transparent slit and minor bug in transparent (Henrik) * Fixed Slit redraw bug (Henrik) * Removed ScreenInfo.hh/cc (Henrik) * Fixed better error msg for display connection (Henrik) * Fix saving of Workspace Icons Toolbar mode (Simon) * Fixed iconify problems when autoraise on (Simon) * Fixed restoring submenus after a reconfigure (Thanks MrChuoi) * Added auto hide menu item to toolbar menu (Thanks MrChuoi) *03/05/12: * Fixed basic RANDR support (Henrik) Resizes toolbar and slit when root window size changes. *03/05/11: * Fixed dangling m_focused_window pointer, that didn't got set in Fluxbox::revertFocus (Henrik) *03/05/10: * Added FbRootWindow.hh/cc (Henrik) * Added ScreenInfo.hh/cc (Henrik) * Removed BaseDisplay.hh/cc (Henrik) -------------------------------------------------------------- Changes for 0.9.2: *03/05/08: * Fixed sloppy focus for embedded tabs (Simon) * Fixed Slit ordering bug (Henrik) * Fixed better command help/option * Fixed Slit redrawing bug (Henrik) *03/05/07: * Fix crash when detaching client that isn't active (Simon) * Fixed transient grouping issues (transients now WinClients) (Simon) * Fixed screen problem with redrawing menus (Henrik) The m_screen_num wasn't set in X Window assignment operator * Fixed check for RENDER extension before we start using it (Henrik) * Fixed some bugs and minor cleaning (Thanks MrChuoi) *03/05/05: * Added window.