File: drProperty.py

package info (click to toggle)
drpython 1%3A3.11.4-1.1
  • links: PTS
  • area: main
  • in suites: buster, jessie, jessie-kfreebsd, stretch
  • size: 3,868 kB
  • ctags: 2,871
  • sloc: python: 16,653; makefile: 141; sh: 1
file content (106 lines) | stat: -rw-r--r-- 4,071 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#   Programmer: Daniel Pozmanter
#   E-mail:     drpython@bluebottle.com
#   Note:       You must reply to the verification e-mail to get through.
#
#   Copyright 2003-2010 Daniel Pozmanter
#
#   Distributed under the terms of the GPL (GNU Public License)
#
#    DrPython 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.
#
#    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, write to the Free Software
#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

# style properties

def convertStyleToColorArray(StyleString):
    ''' Returns a two arrays, one for the foreground, and one for the background '''
    #Returns the Red, Green Blue Values for a string formatted: #00FF33
    return (convertColorPropertyToColorArray(getStyleProperty("fore", StyleString)), convertColorPropertyToColorArray(getStyleProperty("back", StyleString)))

def convertColorPropertyToColorArray(ColorString):
    #Returns the Red, Green Blue Values for a string formatted: #00FF33
    return int(ColorString[1:3], 16), int(ColorString[3:5], 16), int(ColorString[5:7], 16)

def convertStyleStringToWXFontArray(StyleString):
    #This returns an array to be used as arguments in the wx.Font constructor,
    #Face, Size, Underline, Bold, Italic

    t = getStyleProperty("size", StyleString)
    size = int(t)

    t = getStyleProperty("italic", StyleString)
    italic = (len(t) > 0)

    t = getStyleProperty("bold", StyleString)
    bold = (len(t) > 0)

    t = getStyleProperty("underline", StyleString)
    underline = (len(t) > 0)

    t = getStyleProperty("face", StyleString)
    face = t

    return face, size, underline, bold, italic


def getStyleProperty(Property, StyleString):

    if (Property == "bold") or (Property == "italic") or (Property == "underline"):
        if StyleString.find(Property) != -1:
            return Property
        else:
            return ""

    i = StyleString.find(Property)
    if i != -1:
        lindex = i + len(Property) + 1
        rindex = StyleString[lindex:].find(",")
        if rindex == -1:
            return StyleString[lindex:]
        rindex = rindex + lindex
        return StyleString[lindex:rindex]
    return ""

def setStyleProperty(Property, StyleString, newValue):

    i = StyleString.find(Property)
    if Property == "bold":
        if i != -1:
            return StyleString[0:i] + "," + newValue + StyleString[(i + len(Property)):]
        else:
            prop = getStyleProperty("face", StyleString)
            i = StyleString.find(prop) + len(prop)
            return StyleString[0:i] + "," + newValue + StyleString[i:]
    if Property == "italic":
        if i != -1:
            return StyleString[0:i] + "," + newValue + StyleString[(i + len(Property)):]
        else:
            prop = getStyleProperty("face", StyleString)
            i = StyleString.find(prop) + len(prop)
            return StyleString[0:i] + "," + newValue + StyleString[i:]
    if Property == "underline":
        if i != -1:
            return StyleString[0:i] + "," + newValue + StyleString[(i + len(Property)):]
        else:
            prop = getStyleProperty("face", StyleString)
            i = StyleString.find(prop) + len(prop)
            return StyleString[0:i] + "," + newValue + StyleString[i:]

    if i != -1:
        lindex = i + len(Property) + 1
        rindex = StyleString[lindex:].find(",")
        if rindex == -1:
            return StyleString[0:lindex] + newValue
        rindex = rindex + lindex
        return StyleString[0:lindex] + newValue + StyleString[rindex:]
    return ""