def __init__(self, parent): # display variables self.dist_max = 2**127L self.scale = 1.0 self.coeff_zoom = 1 # my node variables self.myNode_pseudo = "" self.myNode_ar = "" self.delta_x = 0 self.delta_y = 0 # displaying options self.isDisplayPseudos = 0 val = configuration.readConfParameterValue("displayPseudos") if val: self.isDisplayPseudos = long(val) self.isDisplayAvatars = 1 val = configuration.readConfParameterValue("displayAvatars") if val: self.isDisplayAvatars = long(val) # default images #self.myNode_avatar = 'Img//avat_gh.png' self.myNode_avatar = "" self.neighbor_avatar = 'Img//avat_gris.png' avatarFile = commun.AVATAR_DIR_NAME + os.sep + "neighbor_default.png" shutil.copyfile(self.neighbor_avatar, avatarFile) # resize the avatar file self.neighbor_avatar = commun.chgSize(avatarFile) # dictionary associating widget item with a neighbor # {[neighbor_id]:[neighbor_posX, neighbor_posY, neighbor_pseudo, # neighbor_chat, neighbor_display2d, neighbor_sharing, neighbor_image]} self.neighbor_item = {} # init controls self._init_ctrls(parent) # navigator #self.navigator = Navigator(self, socket.gethostbyname(socket.gethostname()), "8080") self.navigator = Navigator(self) # refresh timer variables self.TIMER_ID = 1 self.toRefresh = FALSE # start the timer to refresh displaying every second self.timer = wxTimer(self, self.TIMER_ID) EVT_TIMER(self, self.TIMER_ID, self.OnRefreshTimer) self.timer.Start(1000)
def OnOpenMenu(self, event): """ Refresh some menu items on Open Menu event """ # check the connect/disconnect mode if (self.navigator.getIsConnected() == 1): enableMenu = TRUE else: enableMenu = FALSE # refresh flags menu with the flags list flagsMenuList = self.menuFlags.GetMenuItems() for menu in flagsMenuList: self.menuFlags.Remove(menu.GetId()) self.menuFlags.Append(wxID_WXMAINFRAMEMENUFLAGSADD, "Add flag", "") self.menuFlags.Append(wxID_WXMAINFRAMEMENUFLAGSTELEPORTATION, "Teleportation", "") self.menuFlags.Append(wxID_WXMAINFRAMEMENUFLAGSMANAGE, "Manage flags", "") flagsList = [] try: flagsList = os.listdir("Flags") except: pass if flagsList: self.menuFlags.InsertSeparator(3) for flag in flagsList: id = wxNewId() self.menuFlags.Append(id, flag, "") self.menuFlags.Enable(id, enableMenu) EVT_MENU(self, id, self.OnFlagsGoto) # enable/disable menus self.menuEntity.Enable(wxID_WXMAINFRAMEMENUENTITYDISCONNECT, enableMenu) self.menuFlags.Enable(wxID_WXMAINFRAMEMENUFLAGSADD, enableMenu) self.menuFlags.Enable(wxID_WXMAINFRAMEMENUFLAGSTELEPORTATION, enableMenu) # check/uncheck menus val=configuration.readConfParameterValue("displayPseudos") if val: self.menu2DView.Check(wxID_WXMAINFRAMEMENU2DVIEWDISPLAYPSEUDOS, long(val)) val=configuration.readConfParameterValue("displayAvatars") if val: self.menu2DView.Check(wxID_WXMAINFRAMEMENU2DVIEWDISPLAYAVATARS, long(val))
def initSizeSlider(self): """ Initialize the size slider with the current size of avatars """ # read the current size for the avatar in the conf file size = configuration.readConfParameterValue("avatarSize") if not size: # default size self.sizeSlider.SetValue(100) self.sizeTextCtrl.SetValue("100") else: self.sizeSlider.SetValue(int(size)) self.sizeTextCtrl.SetValue(size)
def chgSize(avatarFile): """ change size of an image in accordance with size of avatars """ debug.debug_info("commun.chgSize(" + avatarFile + ")") # open avatar file avatarImg = Image.open(avatarFile) # convert in RGBA format for transparency avatarImg = avatarImg.convert("RGBA") # resize the image file size = configuration.readConfParameterValue("avatarSize") if size: (width, height) = avatarImg.size newSize = width * int(size)/100 if newSize < 5: # min size = 5 pixels newSize = 5 avatarImg = avatarImg.resize((newSize, newSize)) # save the resize image resizeFile = AVATAR_DIR_NAME + os.sep + RESIZE_DIR_NAME + os.sep + os.path.basename(avatarFile) avatarImg.save(resizeFile) return resizeFile