示例#1
0
def loadWebColors():
    F = open(wcFile)
    cm = {}
    ff = [line.strip() for line in F.readlines()]
    for line in ff:
        S = line.split('\t')
        C = Color(int(S[1], 0x10))
        r, g, b = C.Get(0)
        cm[S[0]] = Color(b, g, r)
    return cm
示例#2
0
        def OnCalChange(*a):
            '''
            Update the Calendar UI to a new date
            '''
            caldate = cal.Date

            currentyear   = caldate.GetYear()
            currentmonth  = caldate.GetMonth()
            relevantdates = frozenset(date.GetDay() for date in self.dates
                                      if date.GetYear() == currentyear and
                                      date.GetMonth() == currentmonth and date.GetDay())
            SetHoliday, SetAttr = cal.SetHoliday, cal.SetAttr

            for i in xrange(1, 32):
                if i in relevantdates:
                    SetHoliday(i)
                else:
                    SetAttr(i, CalendarDateAttr(Color(160,160,160)))


            OnDayChange()
示例#3
0
    def UpdateSkin(self):
        'Simply gets a skin and sets it all up.'

        key = self.skinkey
        native = not key

        if native and self.uxthemeable:
            self.rendernative = True
            self.destroy_native()
            self.OpenNativeTheme()

            skinget = skin.get

            self.menuicon = skinget('appdefaults.dropdownicon')
            self.padding = (5, 5)
            self.margins = Margins([0, 0, 0, 0])
            self.Font = default_font()

            self.fontcolors = [wx.BLACK] * 7

            self.backgrounds = NATIVE_BACKGROUNDS
            self.Cut()

        elif native:
            if not self.native:
                self.native = wx.Button(self, style=wx.BU_EXACTFIT)
                self.native.SetLabel(self.label)
                self.Sizer.Add(self.native, 1, wx.EXPAND)
                self.Layout()
                self.Cut()

        else:
            self.rendernative = False
            self.destroy_native()
            skinget = skin.get
            skinroot = skin.get(key)
            #s = lambda k, default = sentinel: skinget('%s.%s' % (key, k), default)

            s = skinroot.get
            self.menuicon = s('menuicon', skinget('appdefaults.dropdownicon'))
            self.padding = s('padding', (5, 5))
            self.margins = s('margins', Margins([0, 0, 0, 0]))
            self.Font = s('font', default_font())

            fc = skinroot.get('fontcolors', {})
            s = fc.get
            self.fontcolors = [
                s('disabled', Color(125, 125, 125)),
                s('normal', wx.BLACK),
                s('active', wx.BLACK),
                s('hover', wx.BLACK),
                s('activehover', wx.BLACK),
                s('down', wx.BLACK),
                s('notify', wx.WHITE)
            ]

            bgs = skinroot.get('backgrounds', {})

            def s(key, default):
                try:
                    return bgs[key]
                except:
                    return default()

            disabled = s(
                'disabled', lambda: SkinGradient(
                    'vertical', [Color(125, 125, 125),
                                 Color(237, 237, 237)]))
            normal = s(
                'normal', lambda: SkinGradient(
                    'vertical', [Color(200, 255, 200),
                                 Color(85, 255, 85)]))
            active = s(
                'active', lambda: SkinGradient(
                    'vertical', [Color(200, 255, 238),
                                 Color(85, 255, 238)]))
            hover = s('hover', lambda: normal)
            activehover = s('activehover', lambda: active)
            down = s(
                'down', lambda: SkinGradient('vertical', [
                    Color(0, 125, 0), Color(00, 204, 00)
                ]))
            notify = s(
                'notify', lambda: SkinGradient(
                    'vertical', [Color(255, 255, 200),
                                 Color(255, 255, 85)]))

            self.backgrounds = [
                disabled, normal, active, hover, activehover, down, notify
            ]

        self.Calcumalate()
        self.Refresh()
示例#4
0
def color_for_total(total):
    'Returns a wx color for an update count per hour.'

    if total > 150: return Color(0xFF, 0, 0)
    elif total > 125: return Color(0xFF, 0xA5, 0x00)
    else: return Color(0, 0, 0)
示例#5
0
    def __init__(self,parent):
        SimplePanel.__init__(self, parent, wx.FULL_REPAINT_ON_RESIZE)

        self.BackgroundColour = wx.WHITE

        self.Sizer = wx.BoxSizer(HORIZONTAL)
        sz = wx.BoxSizer(HORIZONTAL)

        self.Sizer.Add(sz,1,EXPAND|ALL,3)

        leftcol = wx.BoxSizer(VERTICAL)

        acctcombo = self.acctcombo = UberCombo(self, value='',skinkey='AppDefaults.PrefCombo')
        acctcont = PrefPanel(self,acctcombo,_('Account'))


        leftcol.Add(acctcont,0,EXPAND|ALL,3)

        buddylist = self.buddylist = ListOBuddies(self)
        self.buddies_panel = buddycont = PrefPanel(self, buddylist, _('Buddy'))
        leftcol.Add(buddycont, 1, EXPAND | TOPLESS, 3)

        style = wx.NO_BORDER | CAL_SUNDAY_FIRST | CAL_SEQUENTIAL_MONTH_SELECTION | CAL_SHOW_HOLIDAYS
        cal = self.cal = CalendarCtrl(self, -1, wx.DateTime.Now(), wx.DefaultPosition, wx.DefaultSize, style)

        cal.SetForegroundColour(wx.Color(160, 160, 160))
        cal.SetHolidayColours(wx.BLACK, wx.WHITE)
        cal.SetHeaderColours(Color(160, 160, 160), Color(239, 239, 239))

        calcont = PrefPanel(self,cal,_('Date'))
        leftcol.Add(calcont, 0, EXPAND | TOPLESS, 3)

        sz.Add(leftcol, 0, EXPAND)

        viewpanel = wx.Panel(self)

        viewer = self.viewer = PastBrowserWebkitWindow(viewpanel)
#        viewer.SetMouseWheelZooms(True)
        finder = self.finder = FindBar(viewpanel,viewer)

        menu = UMenu(viewer)
        menu.AddItem(_('Copy'),  id = wx.ID_COPY,  callback = lambda *a: viewer.Copy())

        viewer.BindWheel(self)
        viewer.BindScrollWin(self)
        viewer.Bind(wx.EVT_CONTEXT_MENU,
                    lambda e: (menu.GetItemById(wx.ID_COPY).Enable(viewer.CanCopy()),
                               menu.PopupMenu(event = e)))

        viewer.Bind(wx.EVT_KEY_DOWN,self.OnKeyDown)
        finder.TextControl.Bind(wx.EVT_KEY_DOWN,self.OnKeyDown)

        nav  = BoxSizer(wx.HORIZONTAL)

        prev = self.prev = UberButton(viewpanel, label = '<-', skin = BUTTON_SKIN)
        next = self.next = UberButton(viewpanel, label = '->', skin = BUTTON_SKIN)

        datelabel = wx.StaticText(viewpanel, -1, style = wx.ALIGN_CENTER| wx.ST_NO_AUTORESIZE)
        datelabel.SetMinSize((140, -1))


        prev.Bind(wx.EVT_BUTTON, lambda e: self.Flip(-1))
        next.Bind(wx.EVT_BUTTON, lambda e: self.Flip( 1))

        nav.AddStretchSpacer(1)
        nav.AddMany([(prev, 0, wx.EXPAND | wx.ALIGN_CENTER),
                     (datelabel, 0, wx.EXPAND | wx.ALIGN_CENTER),
                     (next, 0, wx.EXPAND | wx.ALIGN_CENTER)])
        nav.AddStretchSpacer(1)


        viewpanel.Sizer = wx.BoxSizer(wx.VERTICAL)
        viewpanel.Sizer.AddMany([ (nav,    0, EXPAND),
                                  (viewer, 1, EXPAND),
                                  (finder, 0, EXPAND) ])

        sz.Add(PrefPanel(self, viewpanel, _('Conversation Log')), 1, EXPAND | ALL, 3)

        Bind = self.Bind
        Bind(wx.EVT_PAINT, self.OnPaint)

        def OnAcct(*a):
            '''
            Handle selection of a new account from the Account drop down
            '''
            if self.GroupChatsSelected():
                from collections import defaultdict
                self.groupchats = defaultdict(list)
                for g in GetGroupChats():
                    d = g['time']
                    key = DateTimeFromDMY(d.day, d.month-1, d.year)
                    self.groupchats[key].append(g)

                #dates = sorted((g['date'], g) for g in
                self.dates = sorted(self.groupchats.keys())
                UpdateCal()
                self.buddies_panel.SetTitle(_('Chats'))
            else:
                buddylist.SetList(GetBuddies(acctcombo.Value.id), BuddyRenderer())
                OnBuddy()
                self.buddies_panel.SetTitle(_('Buddy'))

        def OnBuddy(*a):
            '''
            Handels selection of a buddy from the buddy pannel
            '''

            if not self.GroupChatsSelected():
                self.dates = GetDates(buddylist.SelectedBuddy.dir)
                UpdateCal()
            else:
                ViewLogForFile(buddylist.SelectedItem['file'], do_aliases=False)

        def UpdateCal():
            '''
            Switches the date to the last date conversed with the selected budy
            '''
            self.next.Enable(True)
            self.prev.Enable(True)
            if self.dates:
                self.cal.Date = self.dates[-1]

            self.cal.Enable(True)
            OnCalChange()

        def OnCalChange(*a):
            '''
            Update the Calendar UI to a new date
            '''
            caldate = cal.Date

            currentyear   = caldate.GetYear()
            currentmonth  = caldate.GetMonth()
            relevantdates = frozenset(date.GetDay() for date in self.dates
                                      if date.GetYear() == currentyear and
                                      date.GetMonth() == currentmonth and date.GetDay())
            SetHoliday, SetAttr = cal.SetHoliday, cal.SetAttr

            for i in xrange(1, 32):
                if i in relevantdates:
                    SetHoliday(i)
                else:
                    SetAttr(i, CalendarDateAttr(Color(160,160,160)))


            OnDayChange()

        self.OnCalChange = OnCalChange

        def ViewLogForDay(date):
            '''
            Load the log file for the specified date for the currently selected buddy
            '''
            logpath = logpath_for_date(buddylist.SelectedBuddy, date)
            ViewLogForFile(logpath)

        def ViewLogForFile(logpath, do_aliases=True):
            '''
            Update the log viewer with the file specified
            '''
            with viewer.Frozen():
                viewer.SetPageSource(logpath.text('utf-8', 'replace'), logpath.url())
                viewer.RunScript('window.scroll(0, 0);')

                if do_aliases:
                    substitue_aliases()

                import hooks
                hooks.notify('digsby.statistics.logviewer.log_viewed')

        def substitue_aliases():
            '''
            Swap out buddy names with their allies
            '''
            import gui
            with open(gui.skin.resourcedir() / 'html' / 'jquery-1.3.2.js', 'rb') as f:
                viewer.RunScript(f.read())
            buddy = buddylist.SelectedBuddy
            aliases = IAliasProvider(profile())
            import simplejson as json
            names = set(json.loads(viewer.RunScript("var foo = []; $('.buddy').each(function(){foo.push($(this).html())}); JSON.stringify(foo);")))
            for name in names:
                alias = aliases.get_alias(name, buddy.service, buddy.protocol) or name
                viewer.RunScript(SUBHTML % (json.dumps(name), json.dumps(alias)))

        def OnDayChange(*a):
            '''
            Show the log for the day selected in the clander
            '''
            date = cal.Date
            self.date = date

            datelabel.SetLabel(date.FormatDate())

            if cal.GetAttr(date.GetDay()).IsHoliday():
                if self.GroupChatsSelected():
                    chats = sorted(self.groupchats[date], key=lambda g: g['time'], reverse=True)
                    buddylist.SetList(chats, GroupChatRenderer())
                    if chats:
                        ViewLogForFile(chats[0]['file'], do_aliases=False)
                else:
                    ViewLogForDay(date)
            else:
                year  = str(date.GetYear())
                month = date.GetMonth()
                month = wx.DateTime.GetMonthName(int(month))
                day   = str(date.GetDay())

                specific_day_string = _('{month}, {day}, {year}').format(month=month, day=day, year=year)

                if self.GroupChatsSelected():
                    msg = _("There are no chat logs for {specific_day_string}.").format(specific_day_string=specific_day_string)
                else:
                    msg = _("There are no chat logs for {specific_day_string} with {name}.").format(specific_day_string=specific_day_string, name=buddylist.SelectedBuddy.name)

                viewer.SetPageSource(msg, 'file:///C:/')

            viewer.SetFocus()


            wx.CallAfter(cal.Refresh)
        self.OnDayChange = OnDayChange

        acctcombo.SetCallbacks(value = OnAcct)
        buddylist.Bind(wx.EVT_LISTBOX, OnBuddy)

        cBind = cal.Bind
        cBind(EVT_CALENDAR_YEAR, OnCalChange)
        cBind(EVT_CALENDAR_MONTH, OnCalChange)
        cBind(EVT_CALENDAR_SEL_CHANGED, OnDayChange)

        acctcombo.SetItems(MakeAccountItems(), 0)
示例#6
0
# -*- coding: utf-8 -*-

## \package dbr.colors

# MIT licensing
# See: docs/LICENSE.txt

from wx import Colour as Color

## Color used for tooltip backgrounds (yellow)
#
#  FIXME: Unused?
COLOR_tooltip = Color(255, 255, 0)

## Color used for warnings (red-orange)
COLOR_warn = Color(255, 143, 115)

## Color used for errors (red)
COLOR_error = Color(255, 0, 0)

## Text color of executable files (red)
COLOR_executable = COLOR_error

## Text color of symbolic links (green)
COLOR_link = Color(76, 153, 0)

## Text color of directories (blue)
COLOR_dir = Color(0, 0, 255)
示例#7
0
def randcolor():
    return Color(randint(0, 255), randint(0, 255), randint(0, 255))
示例#8
0
def invert(color):
    return Color(0xFFFFFF - color.GetRGB())
示例#9
0
def contrast(color):
    r, g, b = color.Get(0)
    r -= 127
    b -= 127
    g -= 127
    return Color(r % 256, g % 256, b % 256)
示例#10
0
    "LIGHT GREY": 0xc0c0c0,
    "ORANGE": 0x3232cc,
    "TURQUOISE": 0xeaeaad,
    "DARK OLIVE GREEN": 0x2f4f4f,
    "LIGHT STEEL BLUE": 0xbc8f8f,
    "ORANGE RED": 0x7f00ff,
    "VIOLET": 0x4f2f4f,
    "DARK ORCHID": 0xcc3299,
    "LIME GREEN": 0x32cc32,
    "ORCHID": 0xdb70db,
    "VIOLET RED": 0x9932cc,
    "DARK SLATE BLUE": 0x8e236b,
    "MAGENTA": 0xff00ff,
    "PALE GREEN": 0x8fbc8f,
    "WHEAT": 0xbfd8d8,
    "DARK SLATE GREY": 0x4f4f2f,
    "MAROON": 0x6b238e,
    "PINK": 0xcbc0ff,
    "WHITE": 0xffffff,
    "DARK TURQUOISE": 0xdb9370,
    "MEDIUM AQUAMARINE": 0x99cc32,
    "PLUM": 0xeaadea,
    "YELLOW": 0x00ffff,
    "DIM GREY": 0x545454,
    "MEDIUM BLUE": 0xcc3232,
    "PURPLE": 0xff00b0,
    "YELLOW GREEN": 0x32cc99
}

colorMap = {name: Color(v) for name, v in colorData.items()}