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()
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()
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"])
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"])
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()
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()
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()
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()