From c36927cda1d704fa2ad1bbea8b47366df0f9aa91 Mon Sep 17 00:00:00 2001 From: Erik Osheim Date: Wed, 10 Jun 2009 12:05:24 -0400 Subject: [PATCH] trying to make colors more sane and get 256 colors working --HG-- branch : pmacs2 --- application.py | 4 +++- code_examples/256COLORS | 48 +++++++++++++++++++++++++++++++++++++++++ color.py | 8 ++++++- mode/colortest.py | 18 ++++++++++++++++ 4 files changed, 76 insertions(+), 2 deletions(-) create mode 100644 code_examples/256COLORS create mode 100644 mode/colortest.py diff --git a/application.py b/application.py index 2f2613d..404873e 100755 --- a/application.py +++ b/application.py @@ -81,6 +81,8 @@ class Application(object): ## this is how we can change color settings #if curses.can_change_color(): + # #curses.init_color(28, 700, 0, 0) + # #curses.init_color(29, 0, 0, 700) # pass #else: # self.set_error("Dynamic color not available") @@ -124,7 +126,7 @@ class Application(object): 'latex', 'insertmini', 'conf', 'haskell', 'erlang', 'iperl', 'iperlmini', 'ipython', 'ipythonmini', 'awk', 'shell', 'shellmini', 'fstab', 'yacc', 'pipe', - 'mbox', 'error', 'lua', 'lily', 'forth', 'ebnf', + 'mbox', 'error', 'lua', 'lily', 'forth', 'ebnf', 'colortest', ) for name in names: exec("import mode.%s; mode.%s.install(self)" % (name, name)) diff --git a/code_examples/256COLORS b/code_examples/256COLORS new file mode 100644 index 0000000..9685328 --- /dev/null +++ b/code_examples/256COLORS @@ -0,0 +1,48 @@ +00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f + +10 11 12 13 14 15 +16 17 18 19 1a 1b +1c 1d 1e 1f 20 21 +22 23 24 25 26 27 +28 29 2a 2b 2c 2d +2e 2f 30 31 32 33 + +34 35 36 37 38 39 +3a 3b 3c 3d 3e 3f +40 41 42 43 44 45 +46 47 48 49 4a 4b +4c 4d 4e 4f 50 51 +52 53 54 55 56 57 + +58 59 5a 5b 5c 5d +5e 5f 60 61 62 63 +64 65 66 67 68 69 +6a 6b 6c 6d 6e 6f +70 71 72 73 74 75 +76 77 78 79 7a 7b + +7c 7d 7e 7f 80 81 +82 83 84 85 86 87 +88 89 8a 8b 8c 8d +8e 8f 90 91 92 93 +94 95 96 97 98 99 +9a 9b 9c 9d 9e 9f + +a0 a1 a2 a3 a4 a5 +a6 a7 a8 a9 aa ab +ac ad ae af b0 b1 +b2 b3 b4 b5 b6 b7 +b8 b9 ba bb bc bd +be bf c0 c1 c2 c3 + +c4 c5 c6 c7 c8 c9 +ca cb cc cd ce cf +d0 d1 d2 d3 d4 d5 +d6 d7 d8 d9 da db +dc dd de df e0 e1 +e2 e3 e4 e5 e6 e7 + +e8 e9 ea eb ec ed +ee ef f0 f1 f2 f3 +f4 f5 f6 f7 f8 f9 +fa fb fc fd fe ff diff --git a/color.py b/color.py index 378c71e..06c8adb 100644 --- a/color.py +++ b/color.py @@ -17,9 +17,15 @@ def init(): 'blue': curses.COLOR_BLUE, 'magenta': curses.COLOR_MAGENTA, 'black': curses.COLOR_BLACK, - 'white': curses.COLOR_WHITE + 'white': curses.COLOR_WHITE, } + for i in range(0, curses.COLORS): + if curses.COLORS == 256: + colors['f%02x' % i] = i + else: + colors['f%02x' % i] = curses.COLOR_WHITE + if default_color: colors["default"] = -1 diff --git a/mode/colortest.py b/mode/colortest.py new file mode 100644 index 0000000..7862d46 --- /dev/null +++ b/mode/colortest.py @@ -0,0 +1,18 @@ +from mode import Fundamental +from lex import Grammar, PatternRule + +class ColortestGrammar(Grammar): + rules = [] + for i in range(0, 256): + c = '%02x' % i + rules.append(PatternRule(c, c)) + +class Colortest(Fundamental): + name = 'Colortest' + grammar = ColortestGrammar + colors = {} + for i in range(0, 256): + c = '%02x' % i + colors[c] = ('default', 'f' + c) + +install = Colortest.install