#!/usr/bin/python # -*- coding: cp1252 -*- # Module : Module3.py import wx import Module4_1 import Main_1 from Module2_1 import * import wx.lib.dragscroller #------------------------------------------------------------------------- class InterfaceGraphique(wx.Panel): """Interface_Graphique de la fenêtre principale""" #------------------------------------------------------------------------- def __init__(self, parent): wx.Panel.__init__(self, parent, -1) # Initialise les différents Sizer vbox_top = wx.BoxSizer(wx.VERTICAL) vbox = wx.BoxSizer(wx.HORIZONTAL) #********************************************************* # Panel1 : The Map #********************************************************* # Create a panel to house everything self.panel1 = wx.Panel(self, -1) # Create vertical box sizer : bordure self.bordure1 = wx.BoxSizer(wx.VERTICAL) # Création du Widget wxStaticBox : 'Terrain de jeu' avec son Sizer self.staticBox1 = wx.StaticBox ( self.panel1, -1, 'Terrain de jeu' ) self.staticBoxSizer1 = wx.StaticBoxSizer ( box = self.staticBox1, orient=wx.VERTICAL ) #------------------------------------------------------------- # écran "Map_Terrain" #------------------------------------------------------------- self.sizer_Map = wx.BoxSizer(orient=wx.VERTICAL) # Création du panel "P_Map" self.P_Map = Interface_Map(self.panel1) self.sizer_Map.AddSizer(self.P_Map, 1, border=0, flag=wx.EXPAND) self.staticBoxSizer1.AddSizer(self.sizer_Map, 1, border=0, flag=wx.EXPAND) #----------------------------------------------------------- # Configure the box sizers du Panel1 self.bordure1.Add(self.staticBoxSizer1, 1, wx.EXPAND | wx.ALL, 5) # Attach everything self.panel1.SetSizerAndFit (self.bordure1) vbox.Add(self.panel1, 3, wx.EXPAND) #********************************************************* # Rendu final du sizer vbox_top.Add(vbox, 1, wx.EXPAND) self.SetSizer(vbox_top) #********************************************************* #------------------------------------------------------------------------- class Interface_Map(wx.ScrolledWindow): """Création de l'interface "Map Terrain""" #------------------------------------------------------------------------- def __init__(self, conteneur): wx.ScrolledWindow.__init__(self,parent = conteneur) # Initialisation self.InitMap() self.SetBackgroundColour(wx.Colour(255, 141, 14)) #********************************************************* # Méthodes du panel: "Interface_Map" def Affiche(self, bmp, ratio): if self.bmp != None: posX, posY = self.GetViewStart() self.image.Destroy() self.SetScrollRate(0, 0) else: posX = 0 posY = 0 self.bmp = bmp self.SetVirtualSize(wx.Size(bmp.GetWidth(), bmp.GetHeight())) self.image = wx.StaticBitmap(self, -1, self.bmp) self.SetScrollRate((10*ratio)/100, (10*ratio)/100) self.Scroll(posX, posY) self.image.Bind(wx.EVT_MOUSE_EVENTS, self.OnMouseMove) self.Bind(wx.EVT_PAINT, self.OnPaint) self.Refresh() def InitMap(self): # Map "Terrain de jeu" : self.bmp = None self.ratio = 100 self.bmpRESU = gloImg['imgORIG'].ConvertToBitmap() self.Affiche(self.bmpRESU, self.ratio) def OnMouseMove(self, event): event.Skip() pt = event.GetPositionTuple() wx.GetTopLevelParent(self).SetTitle('Ratio = %s ; Sourie Coords = %s ' % (gloImg['ratio'], str(pt))) if event.LeftDown(): x,y = event.GetPosition() wx.GetTopLevelParent(self).SetTitle('J\'appuis sur le bouton gauche ; Sourie Coords = %s ' % (str(pt))) def OnPaint(self, event): dc = wx.PaintDC(self) dc.SetPen(wx.Pen('#d4d4d4')) dc.SetBrush(wx.Brush('#c56c00')) dc.DrawRectangle(10, 15, 90, 60) dc.SetBrush(wx.Brush('#1ac500')) dc.DrawRectangle(130, 15, 90, 60) dc.SetBrush(wx.Brush('#539e47')) dc.DrawRectangle(250, 15, 90, 60) dc.SetBrush(wx.Brush('#004fc5')) dc.DrawRectangle(10, 105, 90, 60) dc.SetBrush(wx.Brush('#c50024')) dc.DrawRectangle(130, 105, 90, 60) dc.SetBrush(wx.Brush('#9e4757')) dc.DrawRectangle(250, 105, 90, 60) dc.SetBrush(wx.Brush('#5f3b00')) dc.DrawRectangle(10, 195, 90, 60) dc.SetBrush(wx.Brush('#4c4c4c')) dc.DrawRectangle(130, 195, 90, 60) dc.SetBrush(wx.Brush('#785f36')) dc.DrawRectangle(250, 195, 90, 60) #-------------------------------------------------------------------------