예제 #1
0
    def _on_inventory_selected(self, event):
        #<There must be a better way
        inventoryid = self.tree_inventories.GetSelection()
        label = self.tree_inventories.GetItemText(inventoryid)
        if not label.startswith("Inventory"):
            inventoryid = self.tree_inventories.GetItemParent(inventoryid)
            label = self.tree_inventories.GetItemText(inventoryid)
        index = int(label.split()[-1]) - 1
        #>

        self.clear_previews()

        x = 0
        y = 0
        for item in self.inventories[index]:
            preview = self.previews[x][y]
            preview["sizer"].StaticBox.SetLabel(item["_tab_label"] + " - " +
                                                item["name"])
            surf_preview = self.make_preview(item)
            img.show_pygame_surf_in_wxBitmap(surf_preview, preview["bitmap"])

            preview["bitmap"].item = item
            preview["bitmap"].surf = surf_preview

            x += 1
            if x == 6:
                x = 0
                y += 1

        self.Layout()
        self.Refresh()
예제 #2
0
    def _on_inventory_selected(self, event):
        #<There must be a better way
        inventoryid = self.tree_inventories.GetSelection()
        label = self.tree_inventories.GetItemText(inventoryid)
        if not label.startswith("Inventory"):
            inventoryid = self.tree_inventories.GetItemParent(inventoryid)
            label = self.tree_inventories.GetItemText(inventoryid)
        index = int(label.split()[-1]) - 1
        #>

        self.clear_previews()

        x = 0
        y = 0
        for item in self.inventories[index]:
            preview = self.previews[x][y]
            preview["sizer"].StaticBox.SetLabel(item["_tab_label"] + " - " + item["name"])
            surf_preview = self.make_preview(item)
            img.show_pygame_surf_in_wxBitmap(surf_preview,
                                             preview["bitmap"])

            preview["bitmap"].item = item
            preview["bitmap"].surf = surf_preview

            x += 1
            if x == 6:
                x = 0
                y += 1

        self.Layout()
        self.Refresh()
예제 #3
0
 def clear_previews(self):
     self.Freeze()
     for col in self.previews:
         for preview in col:
             preview["sizer"].StaticBox.SetLabel(" ")
             img.show_pygame_surf_in_wxBitmap(grid, preview["bitmap"])
             preview["bitmap"].item = None
     self.Thaw()
예제 #4
0
 def clear_previews(self):
     self.Freeze()
     for col in self.previews:
         for preview in col:
             preview["sizer"].StaticBox.SetLabel(" ")
             img.show_pygame_surf_in_wxBitmap(grid, preview["bitmap"])
             preview["bitmap"].item = None
     self.Thaw()
예제 #5
0
    def unignore_item(self, item):
        self._ignored_items.remove(item["name"])

        for row in self.previews:
            for preview in row:
                if (preview["bitmap"].item) and (preview["bitmap"].item["name"] == item["name"]):

                    surf = self.make_preview(preview["bitmap"].item)
                    preview["bitmap"].surf = surf
                    img.show_pygame_surf_in_wxBitmap(surf, preview["bitmap"])
예제 #6
0
    def unignore_item(self, item):
        self._ignored_items.remove(item["name"])

        for row in self.previews:
            for preview in row:
                if (preview["bitmap"].item) and (preview["bitmap"].item["name"]
                                                 == item["name"]):

                    surf = self.make_preview(preview["bitmap"].item)
                    preview["bitmap"].surf = surf
                    img.show_pygame_surf_in_wxBitmap(surf, preview["bitmap"])
예제 #7
0
    def ignore_item(self, item):
        self._ignored_items.append(item["name"])

        for row in self.previews:
            for preview in row:
                if (preview["bitmap"].item) and (preview["bitmap"].item["name"] == item["name"]):

                    surf = preview["bitmap"].surf
                    pygame.draw.line(surf, 0xFF0000, (0, 119), (119, 0), 3)
                    pygame.draw.line(surf, 0xFF0000, (0, 0), (119, 119), 3)
                    img.show_pygame_surf_in_wxBitmap(surf, preview["bitmap"])
예제 #8
0
    def ignore_item(self, item):
        self._ignored_items.append(item["name"])

        for row in self.previews:
            for preview in row:
                if (preview["bitmap"].item) and (preview["bitmap"].item["name"]
                                                 == item["name"]):

                    surf = preview["bitmap"].surf
                    pygame.draw.line(surf, 0xFF0000, (0, 119), (119, 0), 3)
                    pygame.draw.line(surf, 0xFF0000, (0, 0), (119, 119), 3)
                    img.show_pygame_surf_in_wxBitmap(surf, preview["bitmap"])
예제 #9
0
    def __init__(self, parent, item):
        wx.Frame.__init__(self,
                          parent,
                          id=wx.ID_ANY,
                          pos=wx.DefaultPosition,
                          size=wx.Size(-1, -1),
                          style=wx.STAY_ON_TOP | wx.NO_BORDER
                          | wx.TAB_TRAVERSAL)

        #This would work fine and look good if it wasn't for the fact that wx
        # is pants and won't let you load an external font file.  Pygame to the
        # rescue, ey chaps?
        """
        import ctypes
        _gdi32 = ctypes.WinDLL("gdi32.dll")
        _fonts = (font for font in os.listdir("font") 
                  if font.lower().endswith("ttf"))
        for font in _fonts:
            _gdi32.AddFontResourceA(os.path.join("font", font))

        _face = "Fontin-SmallCaps.ttf"
        self._font = wx.TheFontList.FindOrCreateFont(15, wx.FONTFAMILY_UNKNOWN,
                                                     wx.FONTSTYLE_NORMAL,
                                                     wx.FONTWEIGHT_NORMAL,
                                                     False, _face)
        
        self.SetBackgroundColour(wx.Colour(0, 0, 0))
        
        sizer_main = wx.BoxSizer(wx.VERTICAL)
        
        self.label_itemname = wx.StaticText(self, wx.ID_ANY, item["name"], wx.DefaultPosition, wx.DefaultSize, 0)
        self.label_itemname.Wrap(-1)
        self.label_itemname.SetFont(self._font)
        self.label_itemname.SetForegroundColour(wx.Colour(254, 254, 118))
        
        sizer_main.Add(self.label_itemname, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.TOP | wx.RIGHT | wx.LEFT, 5)
        
        self.label_itemtype = wx.StaticText(self, wx.ID_ANY, item["typeLine"], wx.DefaultPosition, wx.DefaultSize, 0)
        self.label_itemtype.Wrap(-1)
        self.label_itemtype.SetFont(self._font)
        self.label_itemtype.SetForegroundColour(wx.Colour(254, 254, 118))
        
        sizer_main.Add(self.label_itemtype, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.RIGHT | wx.LEFT, 5)
        
        self.line_name_mods = wx.StaticLine(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL)
        sizer_main.Add(self.line_name_mods, 0, wx.EXPAND | wx.ALL, 5)
        
        for mod in item["explicitMods"]:
            label = wx.StaticText(self, wx.ID_ANY, mod)
            label.SetFont(self._font)
            label.SetForegroundColour(wx.Colour(135, 135, 254))

            sizer_main.Add(label, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.RIGHT | wx.LEFT, 5)

        """#
        self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
        self.SetBackgroundColour(wx.Colour(0, 0, 0))

        sizer_main = wx.BoxSizer(wx.VERTICAL)

        self.bitmap_preview = wx.StaticBitmap(self, wx.ID_ANY, wx.NullBitmap,
                                              wx.DefaultPosition,
                                              wx.DefaultSize, 0)
        sizer_main.Add(self.bitmap_preview, 0, wx.ALL, 5)

        if item in [
                json.loads(cached_item)
                for cached_item in self.Parent.cache_itempreviews
        ]:
            keys = self.Parent.cache_itempreviews.keys()
            decoded = [json.loads(key) for key in keys]
            i = decoded.index(item)

            preview = self.Parent.cache_itempreviews[keys[i]]
        else:
            preview = make_itempreview(item)

        img.show_pygame_surf_in_wxBitmap(preview, self.bitmap_preview)

        self.Parent.cache_itempreviews[json.dumps(item)] = preview
        """#"""

        self.SetSizer(sizer_main)
        self.Layout()
        sizer_main.Fit(self)

        self.tick = wx.Timer()
        self.tick.Start(1 / 60.0)

        self.setbinds()

        self._set_position()

        self.Disable()
        self.Show()
예제 #10
0
    def __init__(self, app, position, size, maximised):
        self._app = app
        self._tab_previews = {}
        self._resized = False
        self._hoverpreview = None
        self._ignored_items = []
        self.cache_itempreviews = {}

        wx.Frame.__init__(self,
                          parent=None,
                          id=wx.ID_ANY,
                          title=u"What are the chances?",
                          pos=position,
                          size=size,
                          style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)

        self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)

        sizer_bg = wx.BoxSizer(wx.VERTICAL)

        self.panel_bg = wx.Panel(self, wx.ID_ANY, wx.DefaultPosition,
                                 wx.DefaultSize, wx.TAB_TRAVERSAL)
        self.panel_bg.SetBackgroundColour(
            wx.SystemSettings.GetColour(wx.SYS_COLOUR_MENU))

        sizer_main = wx.BoxSizer(wx.HORIZONTAL)

        sizer_info = wx.BoxSizer(wx.VERTICAL)

        self.tree_inventories = wx.TreeCtrl(
            self.panel_bg, wx.ID_ANY, wx.DefaultPosition, wx.Size(-1, 600),
            wx.TR_DEFAULT_STYLE | wx.TR_HIDE_ROOT)
        self.tree_inventories.SetQuickBestSize(False)

        self.tree_inventories.rootid = self.tree_inventories.AddRoot("root")
        self.tree_inventories.SetMinSize((250, -1))

        sizer_info.Add(self.tree_inventories, 1, wx.ALL | wx.EXPAND, 5)

        self.button_show_updated = wx.Button(
            self.panel_bg, wx.ID_ANY, u"More up to date info available",
            wx.DefaultPosition, wx.DefaultSize, 0)
        self.button_show_updated.Hide()

        sizer_info.Add(self.button_show_updated, 0,
                       wx.EXPAND | wx.BOTTOM | wx.RIGHT | wx.LEFT, 5)

        sizer_main.Add(sizer_info, 1, wx.EXPAND, 5)

        sizer_main.AddSpacer((0, 0), 1, wx.EXPAND, 5)

        self.panel_items = wx.Panel(self.panel_bg, wx.ID_ANY,
                                    wx.DefaultPosition, wx.DefaultSize,
                                    wx.TAB_TRAVERSAL)
        grid_items = wx.GridSizer(0, 6, 0, 0)

        self.previews = [[None for _ in xrange(5)] for __ in xrange(6)]
        for y in xrange(5):
            col = []
            for x in xrange(6):
                preview = {}
                preview["sizer"] = wx.StaticBoxSizer(
                    wx.StaticBox(self.panel_items, wx.ID_ANY, " "),
                    wx.VERTICAL)
                panel = wx.Panel(self.panel_items, wx.ID_ANY,
                                 wx.DefaultPosition, wx.DefaultSize,
                                 wx.SUNKEN_BORDER | wx.TAB_TRAVERSAL)
                sizer = wx.BoxSizer(wx.VERTICAL)
                preview["bitmap"] = wx.StaticBitmap(panel, wx.ID_ANY,
                                                    wx.NullBitmap,
                                                    wx.DefaultPosition,
                                                    wx.Size(120, 120), 0)
                img.show_pygame_surf_in_wxBitmap(grid, preview["bitmap"])
                sizer.Add(preview["bitmap"], 0, 0, 5)
                panel.SetSizer(sizer)
                panel.Layout()
                sizer.Fit(panel)
                preview["sizer"].Add(panel, 0, wx.ALL, 5)
                grid_items.Add(preview["sizer"], 0, 0, 5)

                preview["bitmap"].item = None

                self.previews[x][y] = preview

        self.panel_items.SetSizer(grid_items)
        self.panel_items.Layout()
        grid_items.Fit(self.panel_items)
        sizer_main.Add(self.panel_items, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL,
                       5)

        sizer_main.AddSpacer((0, 0), 1, wx.EXPAND, 5)

        self.panel_bg.SetSizer(sizer_main)
        self.panel_bg.Layout()
        sizer_main.Fit(self.panel_bg)
        sizer_bg.Add(self.panel_bg, 1, wx.EXPAND, 5)

        self.SetSizer(sizer_bg)

        self.Maximize(maximised)

        self.Layout()

        self.setbinds()
        self.update_inventories(launch=True)
        self.Show()
예제 #11
0
    def __init__(self, parent, item):
        wx.Frame.__init__(self, parent, id = wx.ID_ANY, pos = wx.DefaultPosition, size = wx.Size(-1,-1), style = wx.STAY_ON_TOP | wx.NO_BORDER | wx.TAB_TRAVERSAL)
        
        #This would work fine and look good if it wasn't for the fact that wx
        # is pants and won't let you load an external font file.  Pygame to the
        # rescue, ey chaps?
        """
        import ctypes
        _gdi32 = ctypes.WinDLL("gdi32.dll")
        _fonts = (font for font in os.listdir("font") 
                  if font.lower().endswith("ttf"))
        for font in _fonts:
            _gdi32.AddFontResourceA(os.path.join("font", font))

        _face = "Fontin-SmallCaps.ttf"
        self._font = wx.TheFontList.FindOrCreateFont(15, wx.FONTFAMILY_UNKNOWN,
                                                     wx.FONTSTYLE_NORMAL,
                                                     wx.FONTWEIGHT_NORMAL,
                                                     False, _face)
        
        self.SetBackgroundColour(wx.Colour(0, 0, 0))
        
        sizer_main = wx.BoxSizer(wx.VERTICAL)
        
        self.label_itemname = wx.StaticText(self, wx.ID_ANY, item["name"], wx.DefaultPosition, wx.DefaultSize, 0)
        self.label_itemname.Wrap(-1)
        self.label_itemname.SetFont(self._font)
        self.label_itemname.SetForegroundColour(wx.Colour(254, 254, 118))
        
        sizer_main.Add(self.label_itemname, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.TOP | wx.RIGHT | wx.LEFT, 5)
        
        self.label_itemtype = wx.StaticText(self, wx.ID_ANY, item["typeLine"], wx.DefaultPosition, wx.DefaultSize, 0)
        self.label_itemtype.Wrap(-1)
        self.label_itemtype.SetFont(self._font)
        self.label_itemtype.SetForegroundColour(wx.Colour(254, 254, 118))
        
        sizer_main.Add(self.label_itemtype, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.RIGHT | wx.LEFT, 5)
        
        self.line_name_mods = wx.StaticLine(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL)
        sizer_main.Add(self.line_name_mods, 0, wx.EXPAND | wx.ALL, 5)
        
        for mod in item["explicitMods"]:
            label = wx.StaticText(self, wx.ID_ANY, mod)
            label.SetFont(self._font)
            label.SetForegroundColour(wx.Colour(135, 135, 254))

            sizer_main.Add(label, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.RIGHT | wx.LEFT, 5)

        """#
        self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
        self.SetBackgroundColour(wx.Colour(0, 0, 0))
        
        sizer_main = wx.BoxSizer(wx.VERTICAL)

        self.bitmap_preview = wx.StaticBitmap(self, wx.ID_ANY, wx.NullBitmap, wx.DefaultPosition, wx.DefaultSize, 0)
        sizer_main.Add(self.bitmap_preview, 0, wx.ALL, 5)

        if item in [json.loads(cached_item) for cached_item
                    in self.Parent.cache_itempreviews]:
            keys = self.Parent.cache_itempreviews.keys()
            decoded = [json.loads(key) for key in keys]
            i = decoded.index(item)

            preview = self.Parent.cache_itempreviews[keys[i]]
        else:
            preview = make_itempreview(item)

        img.show_pygame_surf_in_wxBitmap(preview, 
                                         self.bitmap_preview)

        self.Parent.cache_itempreviews[json.dumps(item)] = preview

        """#"""
        
        self.SetSizer(sizer_main)
        self.Layout()
        sizer_main.Fit(self)

        self.tick = wx.Timer()
        self.tick.Start(1 / 60.0)

        self.setbinds()

        self._set_position()

        self.Disable()
        self.Show()
예제 #12
0
    def __init__(self, app, position, size, maximised):
        self._app = app
        self._tab_previews = {}
        self._resized = False
        self._hoverpreview = None
        self._ignored_items = []
        self.cache_itempreviews = {}

        wx.Frame.__init__(self, parent = None, id = wx.ID_ANY, title = u"What are the chances?", pos = position, size = size, style = wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)
        
        self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
        
        sizer_bg = wx.BoxSizer(wx.VERTICAL)
        
        self.panel_bg = wx.Panel(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL)
        self.panel_bg.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_MENU))
        
        sizer_main = wx.BoxSizer(wx.HORIZONTAL)
        
        sizer_info = wx.BoxSizer(wx.VERTICAL)
        
        self.tree_inventories = wx.TreeCtrl(self.panel_bg, wx.ID_ANY, wx.DefaultPosition, wx.Size(-1,600), wx.TR_DEFAULT_STYLE | wx.TR_HIDE_ROOT)
        self.tree_inventories.SetQuickBestSize(False)

        self.tree_inventories.rootid = self.tree_inventories.AddRoot("root")
        self.tree_inventories.SetMinSize((250, -1))
        
        sizer_info.Add(self.tree_inventories, 1, wx.ALL | wx.EXPAND, 5)
        
        self.button_show_updated = wx.Button(self.panel_bg, wx.ID_ANY, u"More up to date info available", wx.DefaultPosition, wx.DefaultSize, 0)
        self.button_show_updated.Hide()
        
        sizer_info.Add(self.button_show_updated, 0, wx.EXPAND | wx.BOTTOM | wx.RIGHT | wx.LEFT, 5)
        
        sizer_main.Add(sizer_info, 1, wx.EXPAND, 5)
        
        
        sizer_main.AddSpacer((0, 0), 1, wx.EXPAND, 5)
        
        self.panel_items = wx.Panel(self.panel_bg, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL)
        grid_items = wx.GridSizer(0, 6, 0, 0)
        
        self.previews = [[None for _ in xrange(3)] for __ in xrange(6)]
        for y in xrange(3):
            col = []
            for x in xrange(6):
                preview = {}
                preview["sizer"] = wx.StaticBoxSizer(wx.StaticBox(self.panel_items, wx.ID_ANY, " "), wx.VERTICAL)
                panel = wx.Panel(self.panel_items, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.SUNKEN_BORDER | wx.TAB_TRAVERSAL)
                sizer = wx.BoxSizer(wx.VERTICAL)
                preview["bitmap"] = wx.StaticBitmap(panel, wx.ID_ANY, wx.NullBitmap, wx.DefaultPosition, wx.Size(120, 120), 0)
                img.show_pygame_surf_in_wxBitmap(grid, preview["bitmap"])
                sizer.Add(preview["bitmap"], 0, 0, 5)
                panel.SetSizer(sizer)
                panel.Layout()
                sizer.Fit(panel)
                preview["sizer"].Add(panel, 0, wx.ALL, 5)
                grid_items.Add(preview["sizer"], 0, 0, 5)

                preview["bitmap"].item = None
                
                self.previews[x][y] = preview

        self.panel_items.SetSizer(grid_items)
        self.panel_items.Layout()
        grid_items.Fit(self.panel_items)
        sizer_main.Add(self.panel_items, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5)
        
        
        sizer_main.AddSpacer((0, 0), 1, wx.EXPAND, 5)
        
        
        self.panel_bg.SetSizer(sizer_main)
        self.panel_bg.Layout()
        sizer_main.Fit(self.panel_bg)
        sizer_bg.Add(self.panel_bg, 1, wx.EXPAND, 5)
        
        
        self.SetSizer(sizer_bg)

        self.Maximize(maximised)

        self.Layout()

        self.setbinds()
        self.update_inventories(launch = True)
        self.Show()