#!/bin/env python
# -*- coding: utf-8 -*-
#Author: Pierre Ratinaud
-#Copyright (c) 2008-2012, Pierre Ratinaud
+#Copyright (c) 2008-2016, Pierre Ratinaud
#License: GNU GPL
from optparse import OptionParser
-from wx import BusyCursor
parser = OptionParser()
parser.add_option("-f", "--file", dest="filename",
import wx.grid
import wx.lib.hyperlink as hl
#------------------------------------
-from functions import BugReport, PlaySound, History
+from functions import BugReport, PlaySound, History, progressbar
from checkversion import NewVersion
from guifunct import *
from tableau import Tableau
from dialog import PrefDialog
from tabfrequence import Frequences, FreqMultiple
from tabchi2 import ChiSquare
+from tabchi2mcnemar import McNemar
#from tabstudent import MakeStudent
from tabchddist import ChdCluster
from tabafcm import DoAFCM
from checkinstall import CreateIraDirectory, CheckRPath, FindRPAthWin32, FindRPathNix, CheckRPackages, IsNew, UpgradeConf, CopyConf, RLibsAreInstalled
from chemins import RscriptsPath, ConstructConfigPath, ConstructDicoPath, ConstructGlobalPath, PathOut
from parse_factiva_xml import ImportFactiva
+from parse_dmi import ImportDMI
from tools import Extract
+from analyse_merge import AnalyseMerge
from tree import LeftTree
##########################################################
ID_OnOpenAnalyse = wx.NewId()
ID_Freq = wx.NewId()
ID_Chi2 = wx.NewId()
+ID_Chi2mc = wx.NewId()
ID_Student = wx.NewId()
ID_CHDSIM = wx.NewId()
ID_CHDReinert = wx.NewId()
ID_CreateText = wx.NewId()
ID_ACCEUIL = wx.NewId()
ID_RESULT = wx.NewId()
-ID_VIEWDATA = wx.NewId()
ID_HTMLcontent = wx.NewId()
ID_SimiTxt = wx.NewId()
ID_proto = wx.NewId()
ID_ImportTXM = wx.NewId()
ID_FreqMulti = wx.NewId()
+ID_Splitfromvar = wx.NewId()
+ID_Subtxtfrommeta = wx.NewId()
+ID_Subtxtfromthem = wx.NewId()
+ID_WC = wx.NewId()
+ID_ImportEuro = wx.NewId()
+ID_Fact_xml = wx.NewId()
+ID_Fact_mail = wx.NewId()
+ID_Fact_copy = wx.NewId()
+ID_exportmeta = wx.NewId()
+ID_importdmi = wx.NewId()
+ID_merge = wx.NewId()
##########################################################
#elements de configuration
##########################################################
DefaultConf = ConfigParser()
DefaultConf.read(DictConfigPath['preferences'])
#repertoire de l'utilisateur
-if os.getenv('HOME') != None:
- user_home = os.getenv('HOME')
-else:
- user_home = os.getenv('HOMEPATH')
+user_home = os.getenv('HOME')
+if user_home is None :
+ user_home = os.path.expanduser('~')
+
UserConfigPath = os.path.abspath(os.path.join(user_home, '.iramuteq'))
#Si pas de fichiers de config utilisateur, on cree le repertoire
CreateIraDirectory(UserConfigPath, AppliPath)
'italian' : 'it_IT',
'spanish' : 'es_ES'
}
+
+images_analyses = {
+ 'textroot' : 'textroot.png',
+ 'alceste' : 'reinert.png',
+ 'corpus' : 'textcorpus.png',
+ 'wordcloud' :'wordcloud.png',
+ 'stat' :'stats.png',
+ 'simitxt' : 'simitxt.png',
+ 'clustersimitxt' :'clustersimitxt.png',
+ 'clustercloud' : 'clustercloud.png',
+ 'spec' : 'spec.png',
+ 'matroot' : 'matroot.png',
+ 'matrix' : 'matrix.png',
+ 'freq' : 'frequences.png',
+ 'freqmulti' : 'frequences.png',
+ 'chi2' : 'chi2.png',
+ 'chi2mcnemar' : 'chi2.png',
+ 'reinertmatrix' : 'reinertmatrix.png',
+ 'simimatrix' : 'simimatrix.png',
+ 'simiclustermatrix' : 'simimatrix.png',
+ 'proto' : 'proto.png',
+ 'TXM' : 'TXM.png',
+ 'europress' : 'europress.png',
+ 'factiva_xml' : 'factiva_xml.png',
+ 'factiva_copy' : 'factiva_copy.png',
+ 'factiva_mail': 'factiva_mail.png',
+ 'iramuteq' : 'iraicone.png',
+ 'subcorpusmeta' : 'subcorpusmeta.png',
+ 'subcorpusthema' : 'subcorpusthema.png',
+ 'preferences' : 'preferences.png',
+ 'exportmetatable' : 'exportmetatable.png',
+ 'importdmi' : 'twitter.png'
+ }
#####################################################################
class IraFrame(wx.Frame):
size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE |
wx.SUNKEN_BORDER |
wx.CLIP_CHILDREN):
- log.info('Starting...')
+ log.info('Starting... ' )
+ log.info('version : %s' % ConfigGlob.get('DEFAULT', 'version'))
wx.Frame.__init__(self, parent, id, title, pos, size, style)
#configuration
self.AppliPath = AppliPath
self.x = 0
# create menu
#--------------------------------------------------------------------------------
+ self.images_analyses = images_analyses
+ for img in images_analyses :
+ self.images_analyses[img] = wx.Image(os.path.join(self.images_path, self.images_analyses[img]), wx.BITMAP_TYPE_PNG).Scale(16,16).ConvertToBitmap()
self.mb = wx.MenuBar()
file_menu = wx.Menu()
item = wx.MenuItem(file_menu, ID_OpenData, _(u"Open a matrix").decode('utf8'), _(u"Open a matrix").decode('utf8'))
- item.SetBitmap(wx.ArtProvider_GetBitmap(wx.ART_FILE_OPEN))
+ #item.SetBitmap(wx.ArtProvider_GetBitmap(wx.ART_FILE_OPEN))
+ item.SetBitmap(self.images_analyses['matroot'])
file_menu.AppendItem(item)
item = wx.MenuItem(file_menu, ID_OpenText, _(u"Open a text corpus").decode('utf8'), _(u"Open a text corpus").decode('utf8'))
- item.SetBitmap(wx.ArtProvider_GetBitmap(wx.ART_FILE_OPEN))
+ item.SetBitmap(self.images_analyses['textroot'])
file_menu.AppendItem(item)
item = wx.MenuItem(file_menu, ID_OnOpenAnalyse, _(u"Open an analysis").decode('utf8'), _(u"Open an analysis").decode('utf8'))
- item.SetBitmap(wx.ArtProvider_GetBitmap(wx.ART_FILE_OPEN))
+ item.SetBitmap(self.images_analyses['iramuteq'])
file_menu.AppendItem(item)
+ item = wx.MenuItem(file_menu, ID_ImportTXM, _(u"Import from TXM").decode('utf8'), _(u"Import from TXM").decode('utf8'))
+ item.SetBitmap(self.images_analyses['TXM'])
+ file_menu.AppendItem(item)
+
+ item = wx.MenuItem(file_menu, ID_ImportEuro, _(u"Import from Europress").decode('utf8'), _(u"Import from Europress").decode('utf8'))
+ item.SetBitmap(self.images_analyses['europress'])
+ file_menu.AppendItem(item)
+
+ item = wx.MenuItem(file_menu, ID_importdmi, _(u"Import from DMI-TCAT (exp.)").decode('utf8'), _(u"Import from DMI-TCAT (exp.)").decode('utf8'))
+ item.SetBitmap(self.images_analyses['importdmi'])
+ file_menu.AppendItem(item)
+
+ item = wx.MenuItem(file_menu, ID_merge, _(u'Merge graphs').decode('utf8'), _(u'Merge graphs').decode('utf8'))
+ file_menu.AppendItem(item)
menuFactiva = wx.Menu()
- fact_from_xml = wx.MenuItem(menuFactiva, wx.ID_ANY, _(u"from xml").decode('utf8'))
- fact_from_mail = wx.MenuItem(menuFactiva, wx.ID_ANY, _(u"from mail").decode('utf8'))
- fact_from_txt = wx.MenuItem(menuFactiva, wx.ID_ANY, _(u"from copy/paste").decode('utf8'))
+ fact_from_xml = wx.MenuItem(menuFactiva, ID_Fact_xml, _(u"from xml").decode('utf8'))
+ fact_from_xml.SetBitmap(self.images_analyses['factiva_xml'])
+ fact_from_mail = wx.MenuItem(menuFactiva, ID_Fact_mail, _(u"from mail").decode('utf8'))
+ fact_from_mail.SetBitmap(self.images_analyses['factiva_mail'])
+ fact_from_txt = wx.MenuItem(menuFactiva, ID_Fact_copy, _(u"from copy/paste").decode('utf8'))
+ fact_from_txt.SetBitmap(self.images_analyses['factiva_copy'])
menuFactiva.AppendItem(fact_from_xml)
menuFactiva.AppendItem(fact_from_mail)
menuFactiva.AppendItem(fact_from_txt)
file_menu.AppendMenu(-1, _(u"Import from factiva").decode('utf8'), menuFactiva)
- item = wx.MenuItem(file_menu, ID_ImportTXM, _(u"Import from TXM").decode('utf8'), _(u"Import from TXM").decode('utf8'))
- item.SetBitmap(wx.ArtProvider_GetBitmap(wx.ART_FILE_OPEN))
- file_menu.AppendItem(item)
-
menuTools = wx.Menu()
splitvar = wx.MenuItem(menuTools, wx.ID_ANY, _(u"Split from variable").decode('utf8'))
extractmod = wx.MenuItem(menuTools, wx.ID_ANY, _(u"Extract mods").decode('utf8'))
file_menu.Append(wx.ID_EXIT, _(u"Exit").decode('utf8'))
edit_menu = wx.Menu()
- edit_menu.Append(wx.ID_PREFERENCES, '', _(u'Preferences').decode('utf8'))
+ pref = wx.MenuItem(edit_menu, wx.ID_PREFERENCES, _(u'Preferences').decode('utf8'))
+ pref.SetBitmap(self.images_analyses['preferences'])
+ edit_menu.AppendItem(pref)
+ #edit_menu.Append(wx.ID_PREFERENCES, _(u'Preferences').decode('utf8'))
view_menu = wx.Menu()
- view_menu.Append(ID_ACCEUIL, _(u"Home page").decode('utf8'))
- view_menu.Append(ID_VIEWDATA, _(u"Show data").decode('utf8'))
- view_menu.Append(ID_RESULT, _(u'Show results').decode('utf8'))
+ home = wx.MenuItem(view_menu, ID_ACCEUIL, _(u"Home page").decode('utf8'))
+ home.SetBitmap(wx.ArtProvider_GetBitmap(wx.ART_GO_HOME, size = (16,16)))
+ view_menu.AppendItem(home)
+ #view_menu.Append(ID_ACCEUIL, _(u"Home page").decode('utf8'))
+ results = wx.MenuItem(view_menu, ID_RESULT, _(u'Show results').decode('utf8'))
+ results.SetBitmap(wx.ArtProvider_GetBitmap(wx.ART_LIST_VIEW, size = (16,16)))
+ view_menu.AppendItem(results)
+ #view_menu.Append(ID_RESULT, _(u'Show results').decode('utf8'))
#view_menu.AppendSeparator()
matrix_menu = wx.Menu()
- matrix_menu.Append(ID_Freq, _(u"Frequencies").decode('utf8'))
- matrix_menu.Append(ID_FreqMulti, _(u'Multiple frequencies').decode('utf8'))
- matrix_menu.Append(ID_Chi2, _(u"Chi2").decode('utf8'))
+ matanalyses = [[ID_Freq, _(u"Frequencies").decode('utf8'), 'freq'],
+ [ID_FreqMulti, _(u"Multiple Frequencies").decode('utf8'), 'freqmulti'],
+ [ID_Chi2, _(u"Chi2").decode('utf8'), 'chi2'],
+ [ID_Chi2mc, _(u"Chi2 McNemar").decode('utf8'), 'chi2mcnemar'],
+ {'name' : _(u"Clustering").decode('utf8'),
+ 'content' : [[ID_CHDReinert, _(u"Reinert's Method").decode('utf8'), 'reinertmatrix']]},
+ [ID_SIMI, _(u"Similarities Analysis").decode('utf8'), 'simimatrix'],
+ [ID_proto, _(u"Prototypical Analysis").decode('utf8'), 'proto'],
+ [ID_Splitfromvar, _(u"Split from variable").decode('utf8'), 'subcorpusmeta'],
+ ]
+
+ for analyse in matanalyses :
+ if not isinstance(analyse, dict) :
+ item = wx.MenuItem(matrix_menu, analyse[0], analyse[1])
+ item.SetBitmap(self.images_analyses.get(analyse[2], wx.EmptyBitmap(16,16)))
+ matrix_menu.AppendItem(item)
+ else :
+ nmenu = wx.Menu()
+ for subana in analyse['content'] :
+ item = wx.MenuItem(nmenu, subana[0], subana[1])
+ item.SetBitmap(self.images_analyses.get(subana[2], wx.EmptyBitmap(16,16)))
+ nmenu.AppendItem(item)
+ matrix_menu.AppendMenu(-1, analyse['name'], nmenu)
+ #item = wx.MenuItem(matrix_menu, ID_Freq, _(u"Frequencies").decode('utf8'))
+ #item.SetBitmap(self.images_analyses['freq'])
+ #matrix_menu.AppendItem(item)
+ #matrix_menu.Append(ID_Freq, _(u"Frequencies").decode('utf8'))
+ #item = wx.MenuItem(matrix_menu, ID_Freq, _(u"Multiple Frequencies").decode('utf8'))
+ #item.SetBitmap(self.images_analyses['freqmulti'])
+ #matrix_menu.Append(ID_FreqMulti, _(u'Multiple frequencies').decode('utf8'))
+ #matrix_menu.AppendItem(item)
+ #matrix_menu.Append(ID_Chi2, _(u"Chi2").decode('utf8'))
#matrix_menu.Append(ID_Student, u"t de Student")
- menu_classif = wx.Menu()
- menu_classif.Append(ID_CHDReinert, _(u"Reinert's Method").decode('utf8'))
+ #menu_classif = wx.Menu()
+ #menu_classif.Append(ID_CHDReinert, _(u"Reinert's Method").decode('utf8'))
#menu_classif.Append(ID_CHDSIM, u"Par matrice des distances")
- matrix_menu.AppendMenu(-1, _(u"Clustering").decode('utf8'), menu_classif)
+ #matrix_menu.AppendMenu(-1, _(u"Clustering").decode('utf8'), menu_classif)
#matrix_menu.Append(ID_AFCM, u"AFCM")
- matrix_menu.Append(ID_SIMI, _(u"Similarities Analysis").decode('utf8'))
- matrix_menu.Append(ID_proto, _(u"Prototypical Analysis").decode('utf8'))
+ #matrix_menu.Append(ID_SIMI, _(u"Similarities Analysis").decode('utf8'))
+ #matrix_menu.Append(ID_proto, _(u"Prototypical Analysis").decode('utf8'))
ID_RCODE = wx.NewId()
- matrix_menu.Append(ID_RCODE, u"Code R...")
+ #matrix_menu.Append(ID_RCODE, u"Code R...")
#menu_splittab = wx.Menu()
#ID_SPLITVAR = wx.NewId()
#splitvar = wx.MenuItem(menu_splittab, ID_SPLITVAR, _(u"Split from variable").decode('utf8'))
self.matrix_menu = matrix_menu
text_menu = wx.Menu()
+ analyses_text = [[ID_TEXTSTAT, _(u"Statistics").decode('utf8'), 'stat'],
+ [ID_ASLEX, _(u"Specificities and CA").decode('utf8'), 'spec'],
+ {'name' : _(u"Clustering").decode('utf8'),
+ 'content' : [[ID_TEXTREINERT, _(u"Reinert's Method").decode('utf8'), 'alceste']]},
+ [ID_SimiTxt, _(u"Similarities Analysis").decode('utf8'), 'simitxt'],
+ [ID_WC, _(u"WordCloud").decode('utf8'), 'wordcloud'],
+ {'name' : _(u"Sub corpus").decode('utf8'),
+ 'content' : [[ID_Subtxtfrommeta, _(u'Sub corpus from metadata').decode('utf8'), 'subcorpusmeta'],
+ [ID_Subtxtfromthem, _(u'Sub corpus from thematic').decode('utf8'), 'subcorpusthema']]},
+ [ID_exportmeta, _(u"Export metadata table").decode('utf8'), 'exportmetatable'],
+ ]
+
+ for analyse in analyses_text :
+ if not isinstance(analyse, dict) :
+ item = wx.MenuItem(text_menu, analyse[0], analyse[1])
+ item.SetBitmap(self.images_analyses.get(analyse[2], wx.EmptyBitmap(16,16)))
+ text_menu.AppendItem(item)
+ else :
+ nmenu = wx.Menu()
+ for subana in analyse['content'] :
+ item = wx.MenuItem(nmenu, subana[0], subana[1])
+ item.SetBitmap(self.images_analyses.get(subana[2], wx.EmptyBitmap(16,16)))
+ nmenu.AppendItem(item)
+ text_menu.AppendMenu(-1, analyse['name'], nmenu)
#text_menu.Append(ID_CHECKCORPUS, u"Vérifier le corpus")
- text_menu.Append(ID_TEXTSTAT, _(u"Statistics").decode('utf8'))
- text_menu.Append(ID_ASLEX, _(u"Specificities and CA").decode('utf8'))
- #text_menu.Append(ID_TEXTAFCM, u"AFC sur UCI / Vocabulaire")
- menu_classiftxt = wx.Menu()
- menu_classiftxt.Append(ID_TEXTREINERT, _(u"Reinert's Method").decode('utf8'))
- #menu_classiftxt.Append(ID_TEXTPAM, u"Par matrice des distances")
- text_menu.AppendMenu(-1, _(u"Clustering").decode('utf8'), menu_classiftxt)
- text_menu.Append(ID_SimiTxt, _(u"Similarities Analysis").decode('utf8'))
- ID_WC = wx.NewId()
- text_menu.Append(ID_WC, _(u"WordCloud").decode('utf8'))
+# text_menu.Append(ID_TEXTSTAT, _(u"Statistics").decode('utf8'))
+# text_menu.Append(ID_ASLEX, _(u"Specificities and CA").decode('utf8'))
+# #text_menu.Append(ID_TEXTAFCM, u"AFC sur UCI / Vocabulaire")
+# menu_classiftxt = wx.Menu()
+# menu_classiftxt.Append(ID_TEXTREINERT, _(u"Reinert's Method").decode('utf8'))
+# #menu_classiftxt.Append(ID_TEXTPAM, u"Par matrice des distances")
+# text_menu.AppendMenu(-1, _(u"Clustering").decode('utf8'), menu_classiftxt)
+# text_menu.Append(ID_SimiTxt, _(u"Similarities Analysis").decode('utf8'))
+#
+# text_menu.Append(ID_WC, _(u"WordCloud").decode('utf8'))
self.text_menu = text_menu
help_menu = wx.Menu()
- help_menu.Append(wx.ID_ABOUT, _(u"About...").decode('utf8'))
- help_menu.Append(wx.ID_HELP, _(u"Online help...").decode('utf8'))
+ about = wx.MenuItem(help_menu, wx.ID_ABOUT, _(u"About...").decode('utf8'))
+ about.SetBitmap(wx.ArtProvider_GetBitmap(wx.ART_INFORMATION, size = (16,16)))
+ help_menu.AppendItem(about)
+ #help_menu.Append(wx.ID_ABOUT, _(u"About...").decode('utf8'))
+ help = wx.MenuItem(help_menu, wx.ID_HELP, _(u"Online help...").decode('utf8'))
+ help.SetBitmap(wx.ArtProvider_GetBitmap(wx.ART_HELP, size = (16,16)))
+ help_menu.AppendItem(help)
+ #help_menu.Append(wx.ID_HELP, _(u"Online help...").decode('utf8'))
self.mb.Append(file_menu, _(u"File").decode('utf8'))
self.mb.Append(edit_menu, _(u"Edition").decode('utf8'))
#--------------------------------------------------------------------
self.statusbar = self.CreateStatusBar(2, wx.ST_SIZEGRIP)
self.statusbar.SetStatusWidths([-2, -3])
- self.statusbar.SetStatusText(_(u"Ready"), 0)
- self.statusbar.SetStatusText(_(u"Welcome"), 1)
+ self.statusbar.SetStatusText(_(u"Ready").decode('utf8'), 0)
+ self.statusbar.SetStatusText(_(u"Welcome").decode('utf8'), 1)
# min size for the frame itself isn't completely done.
# see the end up FrameManager::Update() for the test
tb1 = wx.ToolBar(self, -1, wx.DefaultPosition, wx.DefaultSize,
wx.TB_FLAT | wx.TB_NODIVIDER)
tb1.SetToolBitmapSize(wx.Size(16, 16))
- tb1.AddLabelTool(ID_OpenData, "OpenData", wx.ArtProvider_GetBitmap(wx.ART_FILE_OPEN, wx.ART_OTHER, wx.Size(16, 16)), shortHelp="Questionnaire", longHelp="Ouvrir un questionnaire")
+ tb1.AddLabelTool(ID_OpenData, "OpenData", self.images_analyses['matroot'], shortHelp=_(u"Matrix").decode('utf8'), longHelp=_(u"Open a matrix").decode('utf8'))
tb1.AddSeparator()
- tb1.AddLabelTool(ID_OpenText, "OpenText", wx.ArtProvider_GetBitmap(wx.ART_FILE_OPEN, wx.ART_OTHER, wx.Size(16, 16)), shortHelp="Texte", longHelp="Ouvrir un corpus texte")
-
+ tb1.AddLabelTool(ID_OpenText, "OpenText", self.images_analyses['textroot'], shortHelp=_(u"Text").decode('utf8'), longHelp=_(u"Open a text corpus").decode('utf8'))
+ tb1.AddSeparator()
+ tb1.AddLabelTool(ID_OnOpenAnalyse, "OpenAnalyse", self.images_analyses['iramuteq'], shortHelp= _(u"Open an analysis").decode('utf8'), longHelp=_(u"Open an analysis").decode('utf8'))
+ tb1.AddSeparator()
+ tb1.AddLabelTool(ID_ImportTXM, "ImportTXM", self.images_analyses['TXM'], shortHelp= _(u"Import from TXM").decode('utf8'), longHelp=_(u"Import from TXM").decode('utf8'))
+ tb1.AddSeparator()
+ tb1.AddLabelTool(ID_ImportEuro, "ImportEuro", self.images_analyses['europress'], shortHelp= _(u"Import from Europress").decode('utf8'), longHelp=_(u"Import from Europress").decode('utf8'))
+ tb1.AddSeparator()
+ tb1.AddLabelTool(ID_importdmi, "ImportDMI", self.images_analyses['importdmi'], shortHelp= _(u"Import from DMI-TCAT (exp.)").decode('utf8'), longHelp=_(u"Import from DMI-TCAT (exp.)").decode('utf8'))
+ tb1.AddSeparator()
+ tb1.AddLabelTool(ID_Fact_xml, "ImportFactxml", self.images_analyses['factiva_xml'], shortHelp= _(u"Factiva from xml").decode('utf8'), longHelp=_(u"Factiva from xml").decode('utf8'))
+ tb1.AddLabelTool(ID_Fact_mail, "ImportFactmail", self.images_analyses['factiva_mail'], shortHelp= _(u"Factiva from mail").decode('utf8'), longHelp=_(u"Factiva from mail").decode('utf8'))
+ tb1.AddLabelTool(ID_Fact_copy, "ImportFactcopy", self.images_analyses['factiva_copy'], shortHelp= _(u"Factiva from copy/paste").decode('utf8'), longHelp=_(u"Factiva from copy/paste").decode('utf8'))
+ tb1.AddSeparator()
+ tb1.AddLabelTool(wx.ID_PREFERENCES, "Preferences", self.images_analyses['preferences'], shortHelp= _(u"Preferences").decode('utf8'), longHelp=_(u"Preferences").decode('utf8'))
+ tb1.AddSeparator()
+ tb1.AddLabelTool(ID_ACCEUIL, "Home", wx.ArtProvider_GetBitmap(wx.ART_GO_HOME, size = (16,16)), shortHelp= _(u"Home page").decode('utf8'), longHelp=_(u"Home page").decode('utf8'))
+ tb1.AddLabelTool(ID_RESULT, "Results", wx.ArtProvider_GetBitmap(wx.ART_LIST_VIEW, size = (16,16)), shortHelp= _(u'Show results').decode('utf8'), longHelp=_(u'Show results').decode('utf8'))
tb1.Realize()
+ tb_text = wx.ToolBar(self, -1, wx.DefaultPosition, wx.DefaultSize,
+ wx.TB_FLAT | wx.TB_NODIVIDER)
+ for analyse in analyses_text :
+ if not isinstance(analyse, dict) :
+ tb_text.AddLabelTool(analyse[0], analyse[1], self.images_analyses.get(analyse[2], wx.EmptyBitmap(16,16)), shortHelp = analyse[1], longHelp = analyse[1])
+ else :
+ for subana in analyse['content'] :
+ tb_text.AddLabelTool(subana[0], subana[1], self.images_analyses.get(subana[2], wx.EmptyBitmap(16,16)), shortHelp = subana[1], longHelp = subana[1])
+ tb_text.Realize()
+
+ tb_mat = wx.ToolBar(self, -1, wx.DefaultPosition, wx.DefaultSize,
+ wx.TB_FLAT | wx.TB_NODIVIDER)
+ for analyse in matanalyses :
+ if not isinstance(analyse, dict) :
+ tb_mat.AddLabelTool(analyse[0], analyse[1], self.images_analyses.get(analyse[2], wx.EmptyBitmap(16,16)), shortHelp = analyse[1], longHelp = analyse[1])
+ else :
+ for subana in analyse['content'] :
+ tb_mat.AddLabelTool(subana[0], subana[1], self.images_analyses.get(subana[2], wx.EmptyBitmap(16,16)), shortHelp = subana[1], longHelp = subana[1])
+ tb_mat.Realize()
+
+ tb_help = wx.ToolBar(self, -1, wx.DefaultPosition, wx.DefaultSize,
+ wx.TB_FLAT | wx.TB_NODIVIDER)
+ tb_help.AddLabelTool(wx.ID_ABOUT, "About", wx.ArtProvider_GetBitmap(wx.ART_INFORMATION, size=(16,16)), shortHelp=_(u"About...").decode('utf8'), longHelp=_(u"About...").decode('utf8'))
+ tb_help.AddLabelTool(wx.ID_HELP, "Help", wx.ArtProvider_GetBitmap(wx.ART_HELP, size=(16,16)), shortHelp=_(u"Online help...").decode('utf8'), longHelp=_(u"Online help...").decode('utf8'))
+ tb_help.Realize()
#------------------------------------------------------------------------------------------------
self.text_ctrl_txt = wx.TextCtrl(self, -1, "", wx.Point(0, 0), wx.Size(200, 200), wx.NO_BORDER | wx.TE_MULTILINE | wx.TE_RICH2 | wx.TE_READONLY)
self._mgr.AddPane(tb1, aui.AuiPaneInfo().
Name("tb1").Caption("Fichiers").
ToolbarPane().Top().
- LeftDockable(True).RightDockable(False))
+ LeftDockable(True).RightDockable(False))
+
+ self._mgr.AddPane(tb_text, aui.AuiPaneInfo().
+ Name("tb_text").Caption("analyse_text").
+ ToolbarPane().Top().
+ LeftDockable(True).RightDockable(False))
+
+ self._mgr.AddPane(tb_mat, aui.AuiPaneInfo().
+ Name("tb_mat").Caption("analyse_matrix").
+ ToolbarPane().Top().
+ LeftDockable(True).RightDockable(False))
+
+ self._mgr.AddPane(tb_help, aui.AuiPaneInfo().
+ Name("tb_help").Caption("help").
+ ToolbarPane().Top().
+ LeftDockable(True).RightDockable(False))
+
+ self._mgr.GetPane('tb_text').Hide()
+ self._mgr.GetPane('tb_mat').Hide()
self.ShowAPane("Intro_Text")
self._mgr.GetPane("lefttree").Show()
# Show How To Use The Closing Panes Event
##################################################################
self.Bind(wx.EVT_MENU, self.OnAcceuil, id=ID_ACCEUIL)
- self.Bind(wx.EVT_MENU, self.OnViewData, id=ID_VIEWDATA)
self.Bind(wx.EVT_MENU, self.ShowTab, id=ID_RESULT)
self.Bind(wx.EVT_MENU, self.OnOpenData, id=ID_OpenData)
self.Bind(wx.EVT_MENU, self.OnOpenText, id=ID_OpenText)
self.Bind(wx.EVT_MENU, self.OnFreq, id=ID_Freq)
self.Bind(wx.EVT_MENU, self.OnFreqMulti, id=ID_FreqMulti)
self.Bind(wx.EVT_MENU, self.OnChi2, id=ID_Chi2)
+ self.Bind(wx.EVT_MENU, self.OnChi2McNemar, id=ID_Chi2mc)
self.Bind(wx.EVT_MENU, self.OnStudent, id=ID_Student)
self.Bind(wx.EVT_MENU, self.OnCHDSIM, id=ID_CHDSIM)
self.Bind(wx.EVT_MENU, self.OnCHDReinert, id=ID_CHDReinert)
self.Bind(wx.EVT_MENU, self.OnAFCM, id=ID_AFCM)
self.Bind(wx.EVT_MENU, self.OnProto, id=ID_proto)
- self.Bind(wx.EVT_MENU, self.OnRCode, id=ID_RCODE)
+ self.Bind(wx.EVT_MENU, self.OnSplitVar, id = ID_Splitfromvar)
+ #self.Bind(wx.EVT_MENU, self.OnRCode, id=ID_RCODE)
#self.Bind(wx.EVT_MENU, self.OnSplitVar, id=ID_SPLITVAR)
#self.Bind(wx.EVT_MENU, self.OnCheckcorpus, id = ID_CHECKCORPUS)
self.Bind(wx.EVT_MENU, self.OnTextStat, id=ID_TEXTSTAT)
self.Bind(wx.EVT_MENU, self.OnPamSimple, id=ID_TEXTPAM)
self.Bind(wx.EVT_MENU, self.OnSimiTxt, id=ID_SimiTxt)
self.Bind(wx.EVT_MENU, self.OnWordCloud, id=ID_WC)
+ self.Bind(wx.EVT_MENU, self.OnSubText, id = ID_Subtxtfrommeta)
+ self.Bind(wx.EVT_MENU, self.OnSubText, id = ID_Subtxtfromthem)
self.Bind(wx.EVT_MENU, self.OnSimiTab, id=ID_SIMI)
self.Bind(wx.EVT_MENU, self.OnExit, id=wx.ID_EXIT)
#self.Bind(wx.EVT_MENU, self.OnSaveTabAs, id=ID_SaveTab)
self.Bind(wx.EVT_MENU, self.OnHelp, id=wx.ID_HELP)
self.Bind(wx.EVT_MENU, self.OnPref, id=wx.ID_PREFERENCES)
self.Bind(wx.EVT_MENU, self.OnImportTXM, id=ID_ImportTXM)
+ self.Bind(wx.EVT_MENU, self.OnImportEuropress, id=ID_ImportEuro)
+ self.Bind(wx.EVT_MENU, self.OnImportDMI, id=ID_importdmi)
+ self.Bind(wx.EVT_MENU, self.OnExportMeta, id=ID_exportmeta)
+ self.Bind(wx.EVT_MENU, self.OnMergeGraph, id = ID_merge)
self.Bind(wx.EVT_CLOSE, self.OnClose)
##################################################################
flags = self._mgr.GetAGWFlags()
self.type = ''
##############################################################@
- self.DisEnSaveTabAs(False)
- self.ShowMenu('view', False)
+ self.ShowMenu('view', True)
self.ShowMenu('matrix', False)
self.ShowMenu('text', False)
if not RLibsAreInstalled(self) :
CheckRPackages(self)
else :
- msg = u"""
-Le chemin de l'executable de R n'a pas été trouvé.
-Si R n'est pas installé, vous devez l'installer (http://www.r-project.org/).
-Si R n'est pas installé dans le répertoire par défaut
-(souvent C:\Program Files\R\R-2.x.x\R.exe sous windows ou /usr/bin/R sous linux ou Mac Os X)
-vous devez signaler le chemin de l'éxecutable de R dans les préférences."""
- dlg = wx.MessageDialog(self, msg, u"Problème de configuration", wx.OK | wx.NO_DEFAULT | wx.ICON_WARNING)
+ msg = '\n'.join([_(u"Can't find R executable").decode('utf8'), _(u"If R is not installed, get it from http://www.r-project.org.").decode('utf8'),
+ _(u"If R is installed, report its path in Preferences.").decode('utf8'),
+ _(u"IRaMuTeQ does not work without R.").decode('utf8')])
+ dlg = wx.MessageDialog(self, msg, _(u"Problem").decode('utf8'), wx.OK | wx.ICON_WARNING)
dlg.CenterOnParent()
if dlg.ShowModal() in [wx.ID_NO, wx.ID_CANCEL]:
pass
def OnVerif(self, evt) :
pack = CheckRPackages(self)
if pack :
- dlg = wx.MessageDialog(self, u"Installation OK", u"Installation", wx.OK | wx.ICON_INFORMATION)
+ dlg = wx.MessageDialog(self, _(u"Installation OK").decode('utf8'), _(u"Installation").decode('utf8'), wx.OK | wx.ICON_INFORMATION | wx.STAY_ON_TOP)
dlg.CenterOnParent()
if dlg.ShowModal() in [wx.ID_NO, wx.ID_CANCEL]:
evt.Veto()
- def DisEnSaveTabAs(self, DISEN):
- #Disable SaveTabAs
- file_menu = self.mb.GetMenu(0)
- items = file_menu.GetMenuItems()
- for item in items :
- if item.GetId() == ID_SaveTab :
- item.Enable(DISEN)
-
def ShowMenu(self, menu, Show=True):
if menu == 'text' :
menu_pos = 4
+ if Show :
+ self._mgr.GetPane('tb_text').Show()
+ else :
+ self._mgr.GetPane('tb_text').Hide()
elif menu == 'matrix' :
menu_pos = 3
+ if Show :
+ self._mgr.GetPane('tb_mat').Show()
+ else :
+ self._mgr.GetPane('tb_mat').Hide()
elif menu == 'view' :
menu_pos = 2
else :
if not menu_pos is None :
self.mb.EnableTop(menu_pos, Show)
self.mb.UpdateMenus()
-
+ self._mgr.Update()
#--------------------------------------------------------------------
def OnClose(self, event):
def OnOpenAnalyse(self, event):
self.AnalysePath = OnOpen(self, "Analyse")
- OpenAnalyse(self, self.AnalysePath[1][0], True)
- self.ShowMenu('view')
+ if self.AnalysePath :
+ OpenAnalyse(self, self.AnalysePath[1][0], True)
+ self.ShowMenu('view')
def OnOpenText(self, event):
inputname, self.input_path = OnOpen(self, "Texte")
if inputname:
self.OpenText()
- def OnViewData(self, event):
- if self.type == "Data":
- if not self.DataPop :
- self.Sheet.Populate(self.content)
- self.DataPop = True
- self.DataTxt = False
- self.ShowAPane(u"Data")
- elif self.type == "Texte" or self.type == 'Analyse' :
- if not self.DataTxt :
- self.text_ctrl_txt.Clear()
- self.text_ctrl_txt.write(self.content)
- self.text_ctrl_txt.ShowPosition(0)
- self.DataTxt = True
- self.DataPop = False
- self.ShowAPane(u"Text")
- self._mgr.Update()
-
- def OnSubText(self, corpus, parametres = None):
+ def OnSubText(self, evt, corpus = None, parametres = None):
if corpus is None :
corpus = self.tree.getcorpus()
+ if evt.GetId() == ID_Subtxtfrommeta :
+ parametres = {'frommeta' : True}
+ elif evt.GetId() == ID_Subtxtfromthem :
+ parametres = {'fromtheme' : True}
builder = SubBuilder(self, corpus, parametres)
if builder.res == wx.ID_OK :
busy = wx.BusyInfo(_("Please wait...").decode('utf8'), self)
wx.SafeYield()
corpus = builder.doanalyse()
self.history.add(corpus.parametres)
- self.tree.OnItemAppend(corpus.parametres)
OpenAnalyse(self, corpus.parametres)
+ self.tree.OnItemAppend(corpus.parametres)
del busy
def OpenText(self):
- dlg = wx.ProgressDialog("Ouverture...",
- "Veuillez patienter...",
- maximum=2,
- parent=self,
- style=wx.PD_APP_MODAL | wx.PD_AUTO_HIDE | wx.PD_ELAPSED_TIME | wx.PD_CAN_ABORT
- )
-
- builder = Builder(self, dlg)
+ builder = Builder(self, 5)
if builder.res == wx.ID_OK :
try :
corpus = builder.doanalyse()
self.tree.OnItemAppend(corpus.parametres)
OpenAnalyse(self, corpus.parametres)
except :
- dlg.Destroy()
+ builder.dlg.Destroy()
BugReport(self)
else :
count = 1
- keepGoing = dlg.Update(count, u"Lecture du fichier")
+ keepGoing = builder.dlg.Update(count, u"Lecture du fichier")
self.ShowMenu('view')
self.ShowMenu('text')
self.ShowMenu('matrix', False)
self.DataTxt = False
self.Text = ''
count += 1
- keepGoing = dlg.Update(count, u"Chargement du dictionnaire")
- dlg.Destroy()
- #self.OnViewData(wx.EVT_BUTTON)
+ keepGoing = builder.dlg.Update(count, u"Chargement du dictionnaire")
+ builder.dlg.Destroy()
def OnExit(self, event):
self.Close()
info.Name = ConfigGlob.get('DEFAULT', 'name')
info.Version = ConfigGlob.get('DEFAULT', 'version')
info.Copyright = ConfigGlob.get('DEFAULT', 'copyright')
+ info.Translators = ConfigGlob.get('DEFAULT', 'translators').decode('utf8').split(';')
info.Description = u"""
Interface de R pour les Analyses Multidimensionnelles
de Textes et de Questionnaires
def LastTabClose(self) :
if self.nb.GetPageCount() == 1 :
- #self.DisEnSaveTabAs(False)
if self.DataTxt :
self.ShowAPane("Text")
elif self.DataPop :
def OnChi2(self, event, matrix = None):
self.analyse_matrix(ChiSquare, matrix = matrix, analyse_type = 'chi2', dlgnb = 3)
+ def OnChi2McNemar(self, event, matrix = None):
+ self.analyse_matrix(McNemar, matrix = matrix, analyse_type = 'chi2mcnemar', dlgnb = 3)
+
def OnSimiTab(self, event, matrix = None):
self.analyse_matrix(DoSimi, matrix = matrix, analyse_type = 'simimatrix', dlgnb = 5)
# PlaySound(self)
# except:
# BugReport(self)
+ def OnMergeGraph(self, evt):
+ #FIXME
+ AnalyseMerge(self, {'type': 'merge', 'fileout' : '/tmp/test.txt'}, dlg = 5)
def OnProto(self, evt, matrix = None) :
self.analyse_matrix(Prototypical, matrix = matrix, analyse_type = 'proto', dlgnb = 3)
#Prototypical(self, {'type' : 'proto'})
def OnSplitVar(self, evt, matrix = None):
+ if matrix is None :
+ matrix = self.tree.getmatrix()
self.analyse_matrix(SplitMatrixFromVar, matrix = matrix, analyse_type = 'splitvar', parametres = {'pathout': matrix.pathout.dirout}, dlgnb = 3)
- matrix = self.tree.getmatrix()
+ #matrix = self.tree.getmatrix()
def OnSimiTxt(self, evt, corpus = None) :
ImportFactiva(self, 'txm')
except :
BugReport(self)
+
+ def OnImportEuropress(self, evt) :
+ try :
+ ImportFactiva(self, 'euro')
+ except :
+ BugReport(self)
+
+ def OnImportDMI(self, evt):
+ ImportDMI(self, {})
+
+ def OnExportMeta(self, evt, corpus = None):
+ if corpus is None :
+ corpus = self.tree.getcorpus()
+ try :
+ ExportMetaTable(self, corpus)
+ except :
+ BugReport(self)
def ExtractTools(self, evt) :
ID = evt.GetId()
BugReport(self)
def SimiCluster(self, parametres = {}, fromprof = False, tableau = None) :
- self.analyse_matrix(DoSimi, parametres = parametres, analyse_type = 'simiclustermatrix', matrix = tableau)
+ self.analyse_matrix(DoSimi, parametres = parametres, analyse_type = 'simiclustermatrix', matrix = tableau, dlgnb = 5)
# def OnSimi(self,evt):
# try :
dlg = PrefDialog(self)
dlg.CenterOnParent()
self.val = dlg.ShowModal()
+ dlg.Destroy()
def Upgrade(self) :
if self.check_update:
else:
truepath = False
else:
- pass
+ return
if truepath :
if os.path.splitext(self.filename)[1] in ['.csv', '.xls', '.ods']:
self.tableau = Tableau(self, self.filename)
#self.Text = OpenAnalyse(self, self.filename)
OpenAnalyse(self, self.filename)
if not truepath:
- print 'ce fichier n\'existe pas'
+ print 'This file does not exist'
class IntroPanel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
- col = randint(0, 255)
- col1 = randint(0,255)
- col2 = randint(0,255)
- col = 57
+ #col = randint(0, 255)
+ #col1 = randint(0,255)
+ #col2 = randint(0,255)
+ #col = 57
+ col = 161
+ col1 = 198
+ col2 = 224
bckgrdcolor = wx.Colour(col, col1, col2)
self.SetBackgroundColour(bckgrdcolor)
txtcolour = wx.Colour(250, 250, 250)
linkcolor = wx.Colour(255, 0, 0)
sizer1 = wx.BoxSizer(wx.VERTICAL)
sizer2 = wx.BoxSizer(wx.VERTICAL)
- sizer3 = wx.BoxSizer(wx.HORIZONTAL)
- sizer4 = wx.BoxSizer(wx.VERTICAL)
- sizer5 = wx.BoxSizer(wx.HORIZONTAL)
+ sizer4 = wx.BoxSizer(wx.HORIZONTAL)
grid_sizer_1 = wx.FlexGridSizer(1, 4, 0, 0)
grid_sizer_3 = wx.FlexGridSizer(1, 4, 0, 0)
- grid_sizer_2 = wx.FlexGridSizer(1, 3, 0, 0)
+ grid_sizer_2 = wx.BoxSizer(wx.HORIZONTAL)
+
+ iralink = hl.HyperLinkCtrl(self, wx.ID_ANY, u"http://www.iramuteq.org", URL="http://www.iramuteq.org")
+ iralink.SetColours(linkcolor, linkcolor, "RED")
+ iralink.SetBackgroundColour(bckgrdcolor)
+ iralink.EnableRollover(True)
+ iralink.SetUnderlines(False, False, True)
+ iralink.SetBold(True)
+ iralink.UpdateLink()
+
PanelPres = wx.Panel(self)
+ bckgrdcolor = wx.Colour(randint(0, 255), randint(0, 255), randint(0, 255))
PanelPres.SetBackgroundColour(bckgrdcolor)
+
label_1 = wx.StaticText(self, -1, u"IRaMuTeQ", size=(-1, -1))
label_1.SetFont(wx.Font(46, wx.TELETYPE, wx.NORMAL, wx.BOLD, 0, "Purisa"))
label_1.SetForegroundColour(wx.RED)
+
+ iraicone = wx.Image(os.path.join(ImagePath,'iraicone100x100.png'), wx.BITMAP_TYPE_ANY).ConvertToBitmap()
+ but_ira = wx.StaticBitmap(self, -1, bitmap = iraicone)
+
+
label2 = wx.StaticText(PanelPres, -1 , u'\nVersion ' + ConfigGlob.get('DEFAULT', 'version') + '\n')
label2.SetForegroundColour(txtcolour)
label2.SetBackgroundColour(bckgrdcolor)
- #label3 = wx.StaticText(PanelPres, -1 , u'Equipe ')
- #label3.SetForegroundColour(txtcolour)
- #label3.SetBackgroundColour(bckgrdcolor)
self.hyper2 = hl.HyperLinkCtrl(PanelPres, wx.ID_ANY, u"REPERE", URL="http://repere.no-ip.org/")
self.hyper2.SetColours(linkcolor, linkcolor, "RED")
self.hyper2.SetBackgroundColour(bckgrdcolor)
self.hyper2.SetUnderlines(False, False, True)
self.hyper2.SetBold(True)
self.hyper2.UpdateLink()
+
label_lerass = wx.StaticText(PanelPres, -1, u'Laboratoire ')
label_lerass.SetForegroundColour(txtcolour)
label_lerass.SetBackgroundColour(bckgrdcolor)
+
self.hyper_lerass = hl.HyperLinkCtrl(PanelPres, -1, u'LERASS', URL="http://www.lerass.com")
self.hyper_lerass.SetColours(linkcolor, linkcolor, "RED")
self.hyper_lerass.SetBackgroundColour(bckgrdcolor)
self.hyper_lerass.SetUnderlines(False, False, True)
self.hyper_lerass.SetBold(True)
self.hyper_lerass.UpdateLink()
+
blank = wx.StaticText(PanelPres, -1, u'\n')
blank1 = wx.StaticText(PanelPres, -1, u'\n')
+
labellicence = wx.StaticText(PanelPres, -1, _(u"License GNU GPL").decode('utf8'))
labellicence.SetForegroundColour(txtcolour)
labellicence.SetBackgroundColour(bckgrdcolor)
+
labelcopy = wx.StaticText(PanelPres, -1, ConfigGlob.get('DEFAULT', 'copyright'))
labelcopy.SetForegroundColour(txtcolour)
labelcopy.SetBackgroundColour(bckgrdcolor)
+
python_img = wx.Image(os.path.join(ImagePath,'python-logo.jpg'), wx.BITMAP_TYPE_ANY).ConvertToBitmap()
r_img = wx.Image(os.path.join(ImagePath,'Rlogo.jpg'), wx.BITMAP_TYPE_ANY).ConvertToBitmap()
lexique_img = wx.Image(os.path.join(ImagePath,'LexTexte4.jpg'), wx.BITMAP_TYPE_ANY).ConvertToBitmap()
self.Bind(wx.EVT_BUTTON, self.OnR, but_r)
- #grid_sizer_1.Add(label3, 0, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 0)
grid_sizer_1.Add(self.hyper2, 0, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 0)
grid_sizer_3.Add(label_lerass, 0, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 0)
grid_sizer_3.Add(self.hyper_lerass, 0, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 0)
- sizer4.Add(label_1, 0, wx.ALIGN_CENTER, 5)
+ sizer4.Add(label_1, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5)
+
sizer2.Add(label2, 0, wx.ALIGN_CENTER, 5)
- #sizer2.Add(wx.StaticText(PanelPres, -1, u''), 0, wx.ALIGN_CENTER, 5)
sizer2.Add(wx.StaticText(PanelPres, -1, u''), 0, wx.ALIGN_CENTER, 5)
sizer2.Add(wx.StaticText(PanelPres, -1, u''), 0, wx.ALIGN_CENTER, 5)
sizer2.Add(grid_sizer_3, 0, wx.ALIGN_CENTER, 5)
sizer2.Add(wx.StaticText(PanelPres, -1, u' '), 0, wx.ALIGN_CENTER, 5)
- #sizer2.Add(wx.StaticText(PanelPres, -1, u''), 0, wx.ALIGN_CENTER, 5)
- #sizer2.Add(wx.StaticText(PanelPres, -1, u''), 0, wx.ALIGN_CENTER, 5)
sizer2.Add(grid_sizer_1, 0, wx.ALIGN_CENTER, 5)
sizer2.Add(labellicence, 0, wx.ALIGN_CENTER, 5)
sizer2.Add(labelcopy, 0, wx.ALIGN_CENTER, 5)
- sizer1.Add(sizer4, 1, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 0)
+ sizer1.Add(sizer4, 2, wx.ALIGN_CENTER_HORIZONTAL, 0)
+ sizer1.Add(but_ira, 1, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5)
+ sizer1.Add(iralink, 1, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_TOP, 5)
+ sizer2.Add(wx.StaticText(PanelPres, -1, u''), 0, wx.ALIGN_CENTER, 10)
PanelPres.SetSizer(sizer2)
- sizer5.Add(blank, 1, wx.EXPAND | wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 2)
- sizer5.Add(PanelPres, 1, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 0)
- sizer5.Add(blank1, 1, wx.ALIGN_CENTER_HORIZONTAL,2)
- grid_sizer_2.Add(but_python, 1, wx.ALIGN_CENTER_HORIZONTAL| wx.ALIGN_CENTER_VERTICAL)
- grid_sizer_2.Add(but_lexique, 1,wx.ALIGN_CENTER_HORIZONTAL| wx.ALIGN_CENTER_VERTICAL)
- grid_sizer_2.Add(but_r, 1, wx.ALIGN_CENTER_HORIZONTAL| wx.ALIGN_CENTER_VERTICAL)
+ grid_sizer_2.Add(but_python, 1, wx.ALIGN_BOTTOM)
+ grid_sizer_2.Add(but_lexique, 1, wx.ALIGN_BOTTOM)
+ grid_sizer_2.Add(but_r, 1, wx.ALIGN_BOTTOM)
- sizer1.Add(sizer5, 3, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, 1)
- sizer1.Add(grid_sizer_2, 1, wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL)
+ sizer1.Add(PanelPres, 0, wx.EXPAND |wx.ALL, 10)
+ sizer1.Add(grid_sizer_2, 2, wx.ALIGN_CENTER_HORIZONTAL|wx.ALL, 1)
self.SetSizer(sizer1)
sizer1.Fit(self)
bmp = wx.Image(os.path.join(ImagePath, 'splash.png')).ConvertToBitmap()
wx.SplashScreen.__init__(self, bmp,
wx.SPLASH_CENTRE_ON_SCREEN | wx.SPLASH_TIMEOUT,
- 2000, None, -1)
+ 1000, None, -1)
self.Bind(wx.EVT_CLOSE, self.OnClose)
self.fc = wx.FutureCall(1, self.ShowMain)