Home | History | Annotate | Download | only in JetCreator
      1 """
      2  File:  
      3  JetDefs.py
      4  
      5  Contents and purpose:
      6  Holds definitions used throughout JetCreator
      7  
      8  Copyright (c) 2008 Android Open Source Project
      9  
     10  Licensed under the Apache License, Version 2.0 (the "License");
     11  you may not use this file except in compliance with the License.
     12  You may obtain a copy of the License at
     13  
     14       http://www.apache.org/licenses/LICENSE-2.0
     15  
     16  Unless required by applicable law or agreed to in writing, software
     17  distributed under the License is distributed on an "AS IS" BASIS,
     18  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     19  See the License for the specific language governing permissions and
     20  limitations under the License.
     21 """
     22 
     23 import wx
     24 
     25 class JetDefs():
     26     def CreateHelpIniFile(self):
     27         """ Used to create the help data file for context sensitive help """
     28         self.CreateHelpIniForDialog("SEGDLG_CTRLS")
     29         self.CreateHelpIniForDialog("EVTDLG_CTRLS")
     30         self.CreateHelpIniForDialog("PREFERENCES_CTRLS")
     31         self.CreateHelpIniForDialog("JET_PROPERTIES_CTRLS")
     32         self.CreateHelpIniForDialog("REPLICATE_CTRLS")
     33         self.CreateHelpIniForDialog("MOVE_CTRLS")
     34         
     35     def CreateHelpIniForDialog(self, dlgName):
     36         """ Used to create the help data file for context sensitive help """
     37         print("\n" + dlgName)
     38         lst = getattr(self, dlgName)
     39         u = __import__('JetUtils')
     40         for ctrl in lst:
     41             fld = ctrl[0]
     42             if fld[0:2] != "fr":
     43                 if u.IniGetValue(self.JETCREATOR_HLP, dlgName, fld) == "":
     44                     u.IniSetValue(self.JETCREATOR_HLP, dlgName, fld, "")
     45                     print(fld)
     46 
     47     DEFAULT_MUTE_SYNC = False
     48     
     49     TEMP_JET_DIR = "./Tmp/"
     50     TEMP_JET_CONFIG_FILE = "./Tmp/Temp.jtc"
     51     UNTITLED_FILE = "Untitled.jtc"
     52     JETCREATOR_INI = "JetCreator.ini"
     53     JETMIDIFILES_INI = "JetMidiFiles.ini"
     54     JETCREATOR_HLP = "JetCreatorhlp.dat"
     55         
     56     #Postevent message defines

     57     PST_UPD_LOCATION = 1
     58     PST_PLAY = 2
     59     PST_DONE = 3
     60     PST_PAUSE = 4
     61     PST_RESUME = 5
     62     PST_MIDI_INFO = 6
     63     
     64     #Dialog titles and prompts

     65     DLG_JETOPEN = "Open Jet File"
     66     DLG_PREFERENCES = "Preferences"
     67     DLG_ABOUT = "About"
     68     DLG_PROPERTIES = "Jet Project Properties"
     69     DLG_AUDITION = "Audition Jet File"
     70     DLG_REPLICATE = "Replicate Event"
     71     DLG_MOVE = "Move Events"
     72     MAIN_TITLEPREFIX = 'Jet Creator - '
     73     MAIN_DLG_CTRLS = 'JET_CREATOR'
     74     MAIN_SEGLIST = 'segList'
     75     MAIN_EVENTLIST = 'eventList'
     76     MAIN_ADDSEGTITLE = "Add Segments"
     77     MAIN_REVSEGTITLE = "Revise Segments"
     78     MAIN_ADDEVENTTITLE = "Add Event"
     79     MAIN_REVEVENTTITLE = "Revise Event"
     80     MAIN_CONFIRM = "Confirm Deletion"
     81     MAIN_CONFIRM_SEG_DLT = "\n\nOkay to delete segment(s)?"
     82     MAIN_CONRIRM_EVT_DLT = "\n\nOkay to delete event(s)?"
     83     MAIN_PLAYSEG = "Play Segments"
     84     MAIN_PLAYSEGMSG = "Queue one or more segments by checking them in the list, then play."
     85     MAIN_HELPTITLE = "Jet Creator Help"
     86     MAIN_HELPFILE = "JET Creator User Manual.htm"
     87     MAIN_HELPGUIDELINESTITLE = "Jet Authoring Guidelines"
     88     MAIN_HELPGUIDELINESFILE = "JET Authoring Guidelines.htm"
     89     MAIN_IMPORTTITLE = "Import Project"
     90     MAIN_IMPORTMSG = "Okay to import\n\n%s\n\ninto\n\n%s?"
     91     MAIN_SAVEBEFOREEXIT = "Save project before exiting?"
     92     MAIN_JETCREATOR = "Jet Creator"
     93     
     94     #Audition window defines

     95     AUDITION_CTRLS = 'AUDITION_CTRLS'
     96     AUDITION_SEGLIST = 'segList'
     97     AUDITION_QUEUELIST = 'queueList'
     98     AUDITION_TRACKLIST = 'trackList'
     99     AUDITION_GRAPH = 'graph'
    100     
    101     PLAY_TRIGGERCLIP_MSG = 'Triggered Clip %d: %s'
    102     
    103     #Config file defines

    104     RECENT_SECTION = "Recent"
    105     DIR_SECTION = "Directories"
    106     IMAGES_DIR = "ImagesDir"
    107     INI_PREF_SECTION = "Preferences"
    108     INI_PROJECT_DIRS = "chkProjectDir"
    109     INI_LOGGING = "Logging"
    110     INI_DEFAULTDIRS = "Directories"
    111     INI_DISPEMPTYTRACKS = "DisplayEmptyTracks"
    112     INI_EVENTSORT = "EventSort"
    113     INI_EVENTSORT_0 = "EventSort0"
    114     INI_EVENTSORT_1 = "EventSort1"
    115     INI_SEGSORT = "SegSort"
    116     INI_SEGSORT_0 = "SegSort0"
    117     INI_SEGSORT_1 = "SegSort1"
    118     
    119     #Mbt defines

    120     MBT_DEFAULT = (0,0,0)
    121     MBT_MIN = 0
    122     MBT_ZEROSTR = "0:0:0"
    123     
    124     #File open dialog specs

    125     APPLICATION_TITLE = "Jet Creator"
    126     MIDI_FILE_SPEC = 'MIDI Files (*.mid)|*.mid|All Files (*.*)|*.*'
    127     DLS_FILE_SPEC = 'DLS Files (*.dls)|*.dls|All Files (*.*)|*.*'
    128     JTC_FILE_SPEC = 'Jet Content Files (*.jtc)|*.jtc|All Files (*.*)|*.*'
    129     ARCHIVE_FILE_SPEC = 'Jet Archive Files (*.zip)|*.zip|All Files (*.*)|*.*'
    130     OPEN_PROMPT = "Open Jet Creator File"
    131     SAVE_PROMPT = "Save Jet Creator File"
    132     EXPORT_ARCHIVE_PROMPT = "Save Jet Archive"
    133     MUST_SAVE_FIRST = "You must save your JetCreator project before exporting it."
    134     IMPORT_ARCHIVE_PROMPT = "Select the Jet Archive to import"
    135     IMPORT_ARCHIVEDIR_PROMPT = "Choose a directory:\n\nYour imported project files will be placed there."
    136     IMPORT_ARCHIVE_NO_JTC = "This does not appear to be a JetCreator archive file."
    137     IMPORT_NOT_JET_ARCHIVE = "Not a recognized Jet Archive file."
    138     
    139     #Button texts

    140     BUT_ADD = 'Add'
    141     BUT_REVISE = 'Revise'
    142     BUT_DELETE = 'Delete'
    143     BUT_PLAY = 'Play'
    144     BUT_STOP = 'Stop'
    145     BUT_MOVE = 'Move'
    146     BUT_QUEUEALL = 'Queue All'
    147     BUT_DEQUEUEALL = 'Dequeue All'
    148     BUT_UNMUTE = 'Un-Mute'
    149     BUT_MUTE = 'Mute'
    150     BUT_AUDITION = 'Audition'
    151     BUT_QUEUE = 'Queue'
    152     BUT_MUTEALL = 'Mute All'
    153     BUT_MUTENONE = 'Mute None'
    154     BUT_ORGMUTES = 'Original Mutes'
    155     BUT_CANCELANDQUEUE = 'Cancel && Queue'
    156     BUT_CANCELCURRENT = 'Next'
    157     BUT_PAUSE = 'Pause'
    158     BUT_RESUME = 'Resume'
    159     BUT_PLAYSEG = 'Play Segment'
    160     BUT_PLAYMIDI = 'Play MIDI File'
    161     
    162     #Grid defines

    163     GRD_TRACK = "Track"
    164     GRD_CHANNEL = "Channel"
    165     GRD_NAME = "Name"
    166     GRD_SEGMENTS = "Segments"
    167     GRD_LENGTH = "Length"
    168     GRD_QUEUE = "Queue"
    169     GRD_STATUS = "Status"
    170     
    171     #Menu defines

    172     MNU_ADD_SEG = "Add Segment"
    173     MNU_UPDATE_SEG = "Revise Segment"
    174     MNU_DELETE_SEG = "Delete Segment"
    175     MNU_MOVE_SEG = "Move Segment(s)"
    176     MNU_ADD_EVENT = "Add Event"
    177     MNU_UPDATE_EVENT = "Revise Event"
    178     MNU_DELETE_EVENT = "Delete Event"
    179     MNU_MOVE_EVENT = "Move Events(s)"
    180     MNU_UNDO = "Undo\tctrl+z"
    181     MNU_REDO = "Redo\tctrl+y"
    182     
    183     HLP_QUANTIZE = "The quantize element is optional and defaults to 0 if omitted.\nThis value sets a window size in ticks for the breaks in\n a segment when notes are extracted from a larger file. \nSee the section on Quantization for further detail \non the operation of this parameter."
    184     
    185     #Status bar messages

    186     SB_NEW = "New JET Creator file"
    187     SB_OPEN = "Open JET Creator file"
    188     SB_SAVE = "Save Jet Creator file and generate .JET output file"
    189     SB_SAVEAS = "Save JET Creator file as another file"
    190     SB_EXIT = "Exit the application"
    191     SB_CUT = "Cuts the current segment or event to the clipboard"
    192     SB_COPY = "Copies the current segment or event to the clipboard"
    193     SB_PASTE = "Pastes the current segment or event from the clipboard"
    194     SB_UNDO = "Undo the last segment or event edit."
    195     SB_REDO = "Reverse the last segment or event undo edit."
    196     SB_IMPORT_PROJ = "Imports a JetCreator project archive."
    197     SB_EXPORT_PROJ = "Saves all project files to an archive."
    198     
    199     #Defines the menus

    200     MENU_SPEC = (("&File",
    201                     ("&New", SB_NEW, 'OnJetNew', True),
    202                     ("&Open...", SB_OPEN, 'OnJetOpen', True),
    203                     ("&Save", SB_SAVE, 'OnJetSave', True),
    204                     ("Save As...", SB_SAVEAS, 'OnJetSaveAs', True),
    205                     ("", "", "", True),
    206                     ("Import Project...", SB_IMPORT_PROJ, "OnJetImportArchive", True),
    207                     ("Export Project...", SB_EXPORT_PROJ, "OnJetExportArchive", True),
    208                     ("Properties...", "Sets properties specific to this Jet project", 'OnJetProperties', True),
    209                     ("", "", "", True),
    210                     ("Exit", SB_EXIT, 'OnClose', True)),
    211                 ("&Edit",
    212                     (MNU_UNDO, "Undo", 'OnUndo', False),
    213                     (MNU_REDO, "Redo", 'OnRedo', False),
    214                     ("C&ut\tctrl+x", "Cut", 'OnCut', True),
    215                     ("&Copy\tctrl+c", "Copy", 'OnCopy', True),
    216                     ("&Paste\tctrl+v", "Paste", 'OnPaste', True)),
    217                 ("Jet",
    218                     ("Preferences", "Set user preferences including defaults for new project files.", 'OnPreferences', True)),
    219                 ("Segments",
    220                     (MNU_ADD_SEG, "Add a new segment to the segment list", 'OnSegmentAdd', True),
    221                     (MNU_UPDATE_SEG, "Revise the segment attributes", 'OnSegmentUpdate', False),
    222                     (MNU_DELETE_SEG, "Delete the segment from the segment list", 'OnSegmentDelete', False),
    223                     (MNU_MOVE_SEG, "Move one or more segments by incrementing or decrementing their time values", 'OnSegmentsMove', False)),
    224                 ("Events",
    225                     (MNU_ADD_EVENT, "Add a new event for the currently selected segment", 'OnEventAdd', False),
    226                     (MNU_UPDATE_EVENT, "Revise the current event's attributes", 'OnEventUpdate', False),
    227                     (MNU_DELETE_EVENT, "Delete the event from the event list for this segment", 'OnEventDelete', False),
    228                     (MNU_MOVE_EVENT, "Move one or more events by incrementing or decrementing their time values", 'OnEventsMove', False)),
    229                 ("Help",
    230                     ("JET Creator User Manual", "Get help on the JET Creator", "OnHelpJet", True),
    231                     ("JET Authoring Guidelines", "Guidelines helpful for JET content creation", "OnHelpJetGuidelines", True),
    232                     ("About", "About the JET Creator", "OnAbout", True))
    233                     )
    234 
    235     #Define the toolbar

    236     TOOLBAR_SPEC = (
    237                     ("-", "", "", ""),
    238                     ("New", "img_New", SB_NEW, "OnJetNew"),
    239                     ("Open", "img_Open", SB_OPEN, "OnJetOpen"),
    240                     ("Save", "img_Save", SB_SAVE, "OnJetSave"),
    241                     ("-", "", "", ""),
    242                     ("Cut", "img_Cut", SB_CUT, "OnCut"),
    243                     ("Copy", "img_Copy", SB_COPY, "OnCopy"),
    244                     ("Paste", "img_Paste", SB_PASTE, "OnPaste"),
    245                     ("-", "", "", ""),
    246                     ("Undo", "img_Undo", SB_UNDO, "OnUndo"),
    247                     ("Redo", "img_Redo", SB_REDO, "OnRedo"),
    248                     )
    249  
    250     F_HLPBUT = "hlpButton"
    251     F_OK = "btnOk"
    252     F_CANCEL = "btnCancel"
    253     F_MIDIFILE = "filecmbMidiFile"
    254     F_DLSFILE = "filecmbDlsFile"
    255     F_SEGNAME = "txtSegName"
    256     F_START = "tmStart"
    257     F_END = "tmEnd"
    258     F_QUANTIZE = "spnQuantize"
    259     F_REPEAT = "spnRepeat"
    260     F_TRANSPOSE = "spnTranspose"
    261     F_MUTEFLAGS = "grd2MuteFlags"
    262     F_SYNCMUTE = "chkSync"
    263     F_ETYPE = "cmbEventType"
    264     F_ENAME = "txtEventName"
    265     F_ESTART = "tmEventStart"
    266     F_EEND = "tmEventEnd"
    267     F_EID = "spnEventID"
    268     F_ETRACK = "spnEventTrack"
    269     F_ECHANNEL = "spn1EventChannel"
    270     F_EEVENTID = "spnEventID"
    271     F_EMUTEBUT = "btnMute"
    272     F_ETRIGGERBUT = "btnTriggerClip"
    273     F_GRAPH = "graphPlay"
    274     F_PAUSE = "btnPause"
    275     F_ADDSEG = "btnAddSeg"
    276     F_UPDSEG = "btnUpdateSeg"
    277     F_DELSEG = "btnDeleteSeg"
    278     F_PLAY = "btnPlay"
    279     F_PLAYMIDI = "btnPlayMidi"
    280     F_EASPLAY = "btnEasPlay"
    281     F_ADDCLIP = "btnAddEvent"
    282     F_UPDCLIP = "btnUpdateEvent"
    283     F_DELCLIP = "btnDeleteEvent"
    284     F_EXPORT = "btnOkExport"
    285     F_JETFILENAME = "filecmbJetFileName"
    286     F_COPYRIGHT = "txtCopyright"
    287     F_JFILE = "filetxtJetFileName"
    288     F_JOPEN = "btnOpen"
    289     F_JNEW = "btnNew"
    290     F_JIMPORT = "btnImport"
    291     F_JLIST = "lstRecent"
    292     F_ERRGRID = "grdErrors"
    293     F_CHASECONTROLLERS = "chkChaseControllers"
    294     F_DELETEEMPTYTRACKS = "chkDeleteEmptyTracks"
    295     F_OPTMIDI = "optMidiGraph"
    296     F_OPTSEG = "optSegGraph"
    297     F_RDOGRAPH = "rdoboxGraphType"
    298     F_DISPEMPTYTRACKS = "chkDisplayEmptyTracks"
    299     F_GRAPHLABELS = "chkGraphLabels"
    300     F_GRAPHCLIPS = "chkGraphClips"
    301     F_GRAPHAPPEVTS = "chkGraphAppEvts"
    302     F_REPLICATE = "btnReplicate"
    303         
    304     GRAPH_LBLS = "Labels"
    305     GRAPH_TRIGGER = "Trigger Clips"
    306     GRAPH_APP = "App Events"
    307     
    308     #IDs for dialogs

    309     ID_JET_OPEN = 0
    310     ID_JET_NEW = 1
    311     ID_JET_IMPORT = 2
    312         
    313     #Event types

    314     E_CLIP = 'TriggerClip'
    315     E_EOS = 'End of Segment'
    316     E_APP = 'App Controller'
    317        
    318     INTWIDTH = 70
    319     TIMEWIDTH = 70
    320    
    321     #Definitions of fields in the edit frame

    322     TM_WIDTH = 100
    323     TRACK_MIN = 1
    324     TRACK_MAX = 32
    325     EVENTID_MIN = 1
    326     EVENTID_MAX = 63
    327     APPCONTROLLERID_MIN = 80
    328     APPCONTROLLERID_MAX = 83
    329     #NEEDS TO DEFAULT TO RANGE OF BOTH POSSIBLE TYPES

    330     DEFAULTID_MIN = 1
    331     DEFAULTID_MAX = 100
    332     
    333     #Mins and maxs for dialog values

    334     QUANTIZE_MIN = 0
    335     QUANTIZE_MAX = 9
    336     CHANNEL_MIN = 1
    337     CHANNEL_MAX = 16
    338     TRANSPOSE_MIN = -12
    339     TRANSPOSE_MAX = 12
    340     REPEAT_MIN = -1
    341     REPEAT_MAX = 100
    342     
    343     #Standardize the columns

    344     BUTSIZE = wx.DefaultSize
    345     COLSIZE = 120
    346     COL1 = 30
    347     COL2 = COL1 + COLSIZE
    348     COL3 = COL2 + COLSIZE
    349     COL4 = COL3 + COLSIZE
    350     COL5 = COL4 + COLSIZE
    351     COL6 = COL5+ COLSIZE
    352     COL7 = COL6 + COLSIZE
    353     ROWSIZE = 50
    354     ROW1 = 40
    355     ROW2 = ROW1 + ROWSIZE
    356     ROW3 = ROW2 + ROWSIZE
    357     ROW4 = ROW3 + ROWSIZE
    358     ROW5 = ROW4 + ROWSIZE
    359     ROW6 = ROW5 + ROWSIZE
    360     ROW7 = ROW6 + ROWSIZE
    361     BUTOFF = 25
    362     BUTROW1 = 25
    363     FILEPATH_GRIDWIDTH = 120
    364     FILEPATH_WIDTH = 250
    365     
    366     #Segment grid column definitions

    367     SEGMENT_GRID = [('Segment Name', 200, F_SEGNAME),
    368                     ('MIDI File', FILEPATH_GRIDWIDTH, F_MIDIFILE),
    369                     ('DLS File', FILEPATH_GRIDWIDTH, F_DLSFILE),
    370                     ('Start', TIMEWIDTH, F_START),
    371                     ('End', TIMEWIDTH, F_END),
    372                     ('Quantize', 0, F_QUANTIZE),
    373                     ('Transpose', 0, F_TRANSPOSE),
    374                     ('Repeat', 0, F_REPEAT),
    375                     ('Mute Flags', 0, F_MUTEFLAGS)
    376                    ]
    377     
    378     #Clips grid column definitions

    379     CLIPS_GRID =   [('Event Name', 200, F_ENAME),
    380                     ('Type', 100, F_ETYPE),
    381                     ('Start',TIMEWIDTH, F_ESTART),
    382                     ('End',TIMEWIDTH, F_EEND),
    383                     ('Track',0, F_ETRACK),
    384                     ('Channel',0, F_ECHANNEL),
    385                     ('EventID',0, F_EEVENTID)
    386                    ]
    387     
    388     #Jet open dialog control definitions

    389     JETOPEN_SIZE = (365+200,360)
    390     JETOPEN_CTRLS = [
    391              ('Jet Creator Files', 'frCreator', 20, 20, (234+200, 244 + ROWSIZE), 0, 0, -1, [], "", True, ""),
    392              ('Open', F_JOPEN, BUTROW1, COL3+200, BUTSIZE, 0, 0, ID_JET_OPEN, [], "OnOk", True, ""),
    393              ('New', F_JNEW, BUTROW1+BUTOFF*1, COL3+200, BUTSIZE, 0, 0, ID_JET_NEW, [], "OnNew", True, ""),
    394              ('Import', F_JIMPORT, BUTROW1+BUTOFF*2, COL3+200, BUTSIZE, 0, 0, ID_JET_IMPORT, [], "OnJetImport", True, ""),
    395              ('Cancel', F_CANCEL, BUTROW1+BUTOFF*3, COL3+200, BUTSIZE, 0, 0, wx.ID_CANCEL, [], "", True, ""),
    396              ('', F_JFILE, ROW1, COL1, 200+200, 0, 0, -1, JTC_FILE_SPEC, "", True, ""),
    397              ('Recent Files', F_JLIST, ROW2, COL1, (200+200,200), 0, 0, -1, [], "", True, ""),
    398              ]
    399 
    400     #Jet properties dialog control definitions

    401     JET_PROPERTIES_SIZE = (465,460)
    402     JET_PROPERTIES_CTRLS = [
    403              ('Jet Project Properties', 'frProperties', 20, 20, (334, 344 + ROWSIZE), 0, 0, -1, [], "", True, ""),
    404              ('Ok', F_OK, BUTROW1, COL3+100, BUTSIZE, 0, 0, wx.ID_OK, [], "OnOk", True, ""),
    405              ('Cancel', F_CANCEL, BUTROW1+BUTOFF*1, COL3+100, BUTSIZE, 0, 0, wx.ID_CANCEL, [], "", True, ""),
    406              ('Jet File', F_JETFILENAME, ROW1, COL1, 300, 0, 0, -1, JTC_FILE_SPEC, "", True, ""),
    407              ('Copyright', F_COPYRIGHT, ROW2, COL1, 300, 0, 0, -1, [], "", True, ""),
    408              ('Chase Controllers', F_CHASECONTROLLERS, ROW3, COL1, 200, 0, 0, -1, [], "", True, ""),
    409              ('Delete Empty Tracks', F_DELETEEMPTYTRACKS, ROW4 - ROWSIZE/2, COL1, 200, 0, 0, -1, [], "", True, ""),
    410              ]
    411     
    412     #Preferences dialog control definitions

    413     PREFERENCES_SIZE = (465,460)
    414     PREFERENCES_CTRLS = [
    415              ('Preferences', 'frPreferences', 20, 20, (334, 344 + ROWSIZE), 0, 0, -1, [], "", True, ""),
    416              ('Ok', F_OK, BUTROW1, COL3+100, BUTSIZE, 0, 0, wx.ID_OK, [], "OnOk", True, ""),
    417              ('Cancel', F_CANCEL, BUTROW1+BUTOFF*1, COL3+100, BUTSIZE, 0, 0, wx.ID_CANCEL, [], "", True, ""),
    418              ('Copyright', F_COPYRIGHT, ROW1, COL1, 300, 0, 0, -1, [], "", True, ""),
    419              ('Chase Controllers', F_CHASECONTROLLERS, ROW2, COL1, 200, 0, 0, -1, [], "", True, ""),
    420              ('Delete Empty Tracks', F_DELETEEMPTYTRACKS, ROW3 - ROWSIZE/2, COL1, 200, 0, 0, -1, [], "", True, ""),
    421 #             ('Use Project Directories', INI_PROJECT_DIRS, ROW1, COL1, 150, 0, 0, -1, [], "", True, ""),

    422              ]
    423     
    424     #Error dialog control definitions

    425     ERRORCOLW = 220
    426     ERRORDLG_SIZE = (600,400)
    427     ERRORDLG = [
    428              ('Ok', F_OK, BUTROW1, 500, BUTSIZE, 0, 0, wx.ID_OK, [], "OnOk", True, ""),
    429              ('', F_ERRGRID, BUTROW1, COL1, (200,300), 0, 0, -1, [], "", True, ""),
    430              ]
    431     
    432     #Event dialog control definitions

    433     BGR = 100
    434     EVT_OFFSET = 525+BGR
    435     EVTDLG_SIZE = (375+EVT_OFFSET,530)
    436     ID_MUTE = 124
    437     ID_MIDIFILE = 123
    438     ID_TRIGGERCLIP = 122
    439     SEGFRAME_SIZE = (500+BGR, 344 + ROWSIZE)
    440     TRACKGRD_SIZE = (70, SEGFRAME_SIZE[1]-50)
    441     GRAPH_SIZE = (760, 50)
    442     AUDCOL=190
    443     EVTDLG_CTRLS = [
    444              ('Segment', 'frSeg', 20, 20, SEGFRAME_SIZE, 0, 0, -1, [], "", False, ""),
    445              ('Segment Name', F_SEGNAME, ROW1, COL1, 200+BGR, 0, 0, -1, [], "", False, ""),
    446              ('MIDI File', F_MIDIFILE, ROW2, COL1, FILEPATH_WIDTH+BGR, 0, 0, ID_MIDIFILE, MIDI_FILE_SPEC, "", False, ""),
    447              ('DLS File', F_DLSFILE, ROW3, COL1, FILEPATH_WIDTH+BGR, 0, 0, -1, DLS_FILE_SPEC, "", False, ""),
    448              ('Starting M/B/T', F_START, ROW4, COL1, TM_WIDTH, 0, 0, -1, [], "", False, ""),
    449              ('Ending M/B/T', F_END, ROW5, COL1, TM_WIDTH, 0, 0, -1, [], "", False, ""),
    450              ('Quantize', F_QUANTIZE, ROW6, COL1, INTWIDTH, QUANTIZE_MIN, QUANTIZE_MAX, -1, [], "", False, HLP_QUANTIZE),
    451              ('Repeat', F_REPEAT, ROW4, AUDCOL, INTWIDTH, REPEAT_MIN, REPEAT_MAX, -1, [], "", False, ""),
    452              ('Transpose', F_TRANSPOSE, ROW5, AUDCOL, INTWIDTH, TRANSPOSE_MIN, TRANSPOSE_MAX, -1, [], "", False, ""),
    453              ('Event', 'frEventg', 20+EVT_OFFSET, 20, (234, 344 + ROWSIZE), 0, 0, -1, [], "", True, ""),
    454              ('Ok', F_ADDCLIP, BUTROW1, COL3+EVT_OFFSET, BUTSIZE, 0, 0, wx.ID_OK, [], "OnOk", True, ""),
    455              ('Cancel', F_CANCEL, BUTROW1+BUTOFF*1, COL3+EVT_OFFSET, BUTSIZE, 0, 0, wx.ID_CANCEL, [], "OnClose", True, ""),
    456              ('Replicate', F_REPLICATE, BUTROW1+BUTOFF*2, COL3+EVT_OFFSET, BUTSIZE, 0, 0, wx.ID_CANCEL, [], "OnReplicate", True, ""),
    457              ('Event Name', F_ENAME, ROW1, COL1+EVT_OFFSET, 200, 0, 0, -1, [], "", True, ""),
    458              ('Event Type', F_ETYPE, ROW2, COL1+EVT_OFFSET, 120, 0, 0, -1, [E_CLIP, E_EOS, E_APP], "OnEventSelect", True, ""),
    459              ('Starting M/B/T', F_ESTART, ROW3, COL1+EVT_OFFSET, TM_WIDTH, 0, 0, -1, [], "", True, ""),
    460              ('Ending M/B/T', F_EEND, ROW4, COL1+EVT_OFFSET, TM_WIDTH, 0, 0, -1, [], "", True, ""),
    461              ('Track', F_ETRACK, ROW5, COL1+EVT_OFFSET, INTWIDTH, TRACK_MIN, TRACK_MAX, -1, [], "", True, ""),
    462              ('Track Mutes', F_MUTEFLAGS, ROW1, COL3 + 15+BGR, TRACKGRD_SIZE, 0, 0, -1, [], "", False, ""),
    463              ('Channel', F_ECHANNEL, ROW6, COL1+EVT_OFFSET, INTWIDTH, CHANNEL_MIN, CHANNEL_MAX, -1, [], "", True, ""),
    464              ('EventID', F_EEVENTID, ROW7, COL1+EVT_OFFSET, INTWIDTH, DEFAULTID_MIN, DEFAULTID_MAX, -1, [], "", True, ""),
    465              ('Play', F_PLAY, BUTROW1+BUTOFF*4, COL3+EVT_OFFSET, BUTSIZE, 0, 0, -1, [], "OnPlay", True, ""),
    466              ('Trigger', F_ETRIGGERBUT, BUTROW1+BUTOFF*5, COL3+EVT_OFFSET, BUTSIZE, 0, 0, ID_TRIGGERCLIP, [], "OnTriggerClip", False, ""),
    467              ('Un-Mute', F_EMUTEBUT, BUTROW1+BUTOFF*6, COL3+EVT_OFFSET, BUTSIZE, 0, 0, ID_MUTE, [], "OnMute", False, ""),
    468              ('Pause', F_PAUSE, BUTROW1+BUTOFF*7, COL3+EVT_OFFSET, BUTSIZE, 0, 0, -1, [], "OnPause", False, ""),
    469              ('Graph', F_GRAPH, 430, 20, (EVTDLG_SIZE[0]-40,60), 0, 0, -1, [], "", True, ""),
    470              (GRAPH_LBLS, F_GRAPHLABELS, (BUTROW1+BUTOFF*10)+70, COL3+EVT_OFFSET+5, 200, 0, 0, -1, [], "OnSetGraphOptions", True, ""),
    471              (GRAPH_APP, F_GRAPHCLIPS, (BUTROW1+BUTOFF*10)+90, COL3+EVT_OFFSET+5, 200, 0, 0, -1, [], "OnSetGraphOptions", True, ""),
    472              (GRAPH_TRIGGER, F_GRAPHAPPEVTS, (BUTROW1+BUTOFF*10)+110, COL3+EVT_OFFSET+5, 200, 0, 0, -1, [], "OnSetGraphOptions", True, ""),
    473              ("Graph", "boxGraph", (BUTROW1+BUTOFF*10)+45, COL3+EVT_OFFSET, (90,95), 0, 0, -1, [], "", True, ""),
    474 
    475           ]
    476       
    477     #Segment dialog control definitions

    478     BGR = 100
    479     AUDCOL = 560
    480     COLADD = 500 + BGR
    481     SEGDLG_SIZE = (890+BGR,530)
    482     SEGFRAME_SIZE = (375+BGR, 394)
    483     AUDFRAME_SIZE = (350, 394)
    484     TRACKGRD_SIZE = (200, AUDFRAME_SIZE[1]-60)
    485     MUTEGRD_TRACK = 50
    486     MUTEGRD_CHANNEL = 60
    487     MUTEGRD_NAME = 100
    488     BIGBUT = (100, 25)
    489     FILEPATH_WIDTH = 350
    490     SEGDLG_CTRLS = [
    491              ('Segment', 'frSeg', 20, 20, SEGFRAME_SIZE, 0, 0, -1, [], "", True, ""),
    492              ('Audition', 'frAudition', SEGFRAME_SIZE[0]+30, 20, AUDFRAME_SIZE, 0, 0, -1, [], "", True, ""),
    493              ('Segment Name', F_SEGNAME, ROW1, COL1, 200+BGR, 0, 0, -1, [], "", True, ""),
    494              ('MIDI File', F_MIDIFILE, ROW2, COL1, FILEPATH_WIDTH+BGR, 0, 0, ID_MIDIFILE, MIDI_FILE_SPEC, "", True, ""),
    495              ('DLS File', F_DLSFILE, ROW3, COL1, FILEPATH_WIDTH+BGR, 0, 0, -1, DLS_FILE_SPEC, "", True, ""),
    496              ('Starting M/B/T', F_START, ROW4, COL1, TM_WIDTH, 0, 0, -1, [], "", True, ""),
    497              ('Ending M/B/T', F_END, ROW5, COL1, TM_WIDTH, 0, 0, -1, [], "", True, ""),
    498              ('Quantize', F_QUANTIZE, ROW6, COL1, INTWIDTH, QUANTIZE_MIN, QUANTIZE_MAX, -1, [], "", True, HLP_QUANTIZE),
    499              ('Repeat', F_REPEAT, ROW1, AUDCOL+100+BGR, INTWIDTH, REPEAT_MIN, REPEAT_MAX, -1, [], "", True, ""),
    500              ('Transpose', F_TRANSPOSE, ROW2, AUDCOL+100+BGR, INTWIDTH, TRANSPOSE_MIN, TRANSPOSE_MAX, -1, [], "", True, ""),
    501              ('Track Mutes', F_MUTEFLAGS, ROW1, COL3 + 145+BGR, TRACKGRD_SIZE, 0, 0, -1, [], "", True, ""),
    502              ('Display Empty Tracks', F_DISPEMPTYTRACKS, ROW1+TRACKGRD_SIZE[1]+20, COL3 + 145+BGR, 200, 0, 0, -1, [], "OnSetTrackDisplayOption", True, ""),
    503              ('Ok', F_ADDSEG, BUTROW1, COL3 + COLADD, BIGBUT, 0, 0, wx.ID_OK, [], "OnOk", True, ""),
    504              ('Cancel', F_CANCEL, BUTROW1+BUTOFF*1, COL3 + COLADD, BIGBUT, 0, 0, wx.ID_CANCEL, [], "OnClose", True, ""),
    505              ('Replicate', F_REPLICATE, BUTROW1+BUTOFF*2, COL3 + COLADD, BIGBUT, 0, 0, wx.ID_CANCEL, [], "OnReplicate", True, ""),
    506 
    507              ('Play Segment', F_PLAY, BUTROW1+BUTOFF*4, COL3 + COLADD, BIGBUT, 0, 0, -1, [], "OnPlay", True, ""),
    508              ('Play MIDI File', F_PLAYMIDI, BUTROW1+BUTOFF*5, COL3 + COLADD, BIGBUT, 0, 0, -1, [], "OnPlayMidi", True, ""),
    509              ('Pause', F_PAUSE, BUTROW1+BUTOFF*6, COL3 + COLADD, BIGBUT, 0, 0, -1, [], "OnPause", False, ""),
    510              ('Graph', F_GRAPH, 430, 20, (SEGDLG_SIZE[0]-40,60), 0, 0, -1, [], "", True, ""),
    511              ('Graph', F_RDOGRAPH, (BUTROW1+BUTOFF*10), COL3 + COLADD, (100,140), 0, 0, -1, ["MIDI File", "Segment"], "OnSetGraphType", True, ""),
    512 
    513              (GRAPH_LBLS, F_GRAPHLABELS, (BUTROW1+BUTOFF*10)+70, COL3 + COLADD+5, 200, 0, 0, -1, [], "OnSetGraphOptions", True, ""),
    514              (GRAPH_APP, F_GRAPHCLIPS, (BUTROW1+BUTOFF*10)+90, COL3 + COLADD+5, 200, 0, 0, -1, [], "OnSetGraphOptions", True, ""),
    515              (GRAPH_TRIGGER, F_GRAPHAPPEVTS, (BUTROW1+BUTOFF*10)+110, COL3 + COLADD+5, 200, 0, 0, -1, [], "OnSetGraphOptions", True, ""),
    516              ]        
    517 
    518 
    519     REPLICATE_MAX = 999
    520     F_RPINCREMENT = "tmIncrement"
    521     F_RPGRDPREVIEW = "grdPreview"
    522     F_RPPREFIX = "txtPrefix"
    523     F_RPREPLACE = "chkReplaceMatching"
    524     F_RPMOVE = "chkMoveMatching"
    525     F_RPNUMBER = "spnNumber"
    526     F_RPBUT = "btnPreview"
    527     REPLICATE_GRID =   [('Event Name', 200, F_ENAME),
    528                         ('Start',TIMEWIDTH, F_ESTART),
    529                         ('End',TIMEWIDTH, F_EEND)
    530                         ]
    531     REPLICATE_SIZE = (515,550)
    532     REPLICATEGRID_SIZE = (350,310)
    533     REPLICATE_CTRLS = [
    534              ('Replicate', 'frRep', 20, 20, (384, 480), 0, 0, -1, [], "", True, ""),
    535              ('Ok', F_OK, BUTROW1, COL3+150, BUTSIZE, 0, 0, wx.ID_OK, [], "OnOk", True, ""),
    536              ('Cancel', F_CANCEL, BUTROW1+BUTOFF*1, COL3+150, BUTSIZE, 0, 0, wx.ID_CANCEL, [], "", True, ""),
    537              ('Preview', F_RPBUT , BUTROW1+BUTOFF*2, COL3+150, BUTSIZE, 0, 0, -1, [], "OnPreview", True, ""),
    538              ('Name Prefix', F_RPPREFIX, ROW1, COL1, 300, 0, 0, -1, [], "", True, ""),
    539              ('Replace Existing Items Matching Prefix', F_RPREPLACE, ROW3, COL1, 200, 0, 0, -1, [], "", True, ""),
    540              ('Preview', F_RPGRDPREVIEW, ROW4-20, COL1, REPLICATEGRID_SIZE, 0, 0, -1, [], "", True, ""),
    541              ('Starting M/B/T', F_ESTART, ROW2, COL1, TM_WIDTH, 0, 0, -1, [], "", True, ""),
    542              ('Increment M/B/T', F_RPINCREMENT, ROW2, COL2+20, TM_WIDTH, 0, 0, -1, [], "", True, ""),
    543              ('Number', F_RPNUMBER, ROW2, COL3+40, INTWIDTH, 1, REPLICATE_MAX, -1, [], "", True, ""),
    544              ]
    545     
    546     
    547     MOVE_SIZE = (350,390)
    548     MOVE_CTRLS = [
    549              ('Move', 'frRep', 20, 20, (384, 480), 0, 0, -1, [], "", True, ""),
    550              ('Ok', F_OK, BUTROW1, COL3+150, BUTSIZE, 0, 0, wx.ID_OK, [], "OnOk", True, ""),
    551              ('Cancel', F_CANCEL, BUTROW1+BUTOFF*1, COL3+150, BUTSIZE, 0, 0, wx.ID_CANCEL, [], "", True, ""),
    552              ('Preview', F_RPBUT , BUTROW1+BUTOFF*2, COL3+150, BUTSIZE, 0, 0, -1, [], "OnPreview", True, ""),
    553              ('Starting M/B/T', F_ESTART, ROW1, COL1, TM_WIDTH, 0, 0, -1, [], "", True, ""),
    554              ('Increment M/B/T', F_RPINCREMENT, ROW1, COL2+20, TM_WIDTH, 0, 0, -1, [], "", True, ""),
    555              ('Preview', F_RPGRDPREVIEW, ROW2, COL1, MOVE_SIZE, 0, 0, -1, [], "", True, ""),
    556              ]
    557    
    558 if __name__ == '__main__':
    559     jd = JetDefs()
    560     jd.CreateHelpIniFile()
    561