Changes between Version 77 and Version 78 of wxGUIDevelopment


Ignore:
Timestamp:
Nov 24, 2011, 6:07:25 AM (12 years ago)
Author:
martinl
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • wxGUIDevelopment

    v77 v78  
    3030'''Update:''' GUI modules code reorganization done in r49347
    3131
    32 ''Background:'' Currently all GUI modules are located in directory `gui_modules`
    33 
    34 {{{
    35 colorrules.py
    36 dbm_base.py
    37 dbm_dialogs.py
    38 dbm.py
    39 debug.py
    40 disp_print.py
    41 gcmd.py
    42 gcpmanager.py
    43 gcpmapdisp.py
    44 gdialogs.py
    45 ghelp.py
    46 globalvar.py
    47 gmodeler.py
    48 goutput.py
    49 gpyshell.py
    50 gselect.py
    51 histogram.py
    52 layertree.py
    53 location_wizard.py
    54 mapdisp.py
    55 mapdisp_statusbar.py
    56 mapdisp_vdigit.py
    57 mapdisp_window.py
    58 mcalc_builder.py
    59 menudata.py
    60 menuform.py
    61 menu.py
    62 nviz_mapdisp.py
    63 nviz_preferences.py
    64 nviz.py
    65 nviz_tools.py
    66 ogc_services.py
    67 preferences.py
    68 prompt.py
    69 psmap_dialogs.py
    70 psmap.py
    71 render.py
    72 sqlbuilder.py
    73 toolbars.py
    74 units.py
    75 utils.py
    76 vclean.py
    77 vdigit.py
    78 workspace.py
    79 wxnviz.py
    80 wxplot_dialogs.py
    81 wxplot.py
    82 wxvdigit.py
    83 wxvdriver.py
    84 }}}
    85 
    86 The proposed ''packages'':
     32GUI modules from directory `gui_modules` has been moved to separated packages:
    8733
    8834 * `core` for core non-GUI classes (gcmd, debug, etc.)
    89  * `forms` for autogenerated GUI dialogs
    90  * `gui_core` for core GUI classes (goutput, etc)
     35 * `gui_core` for core GUI classes (goutput, prompt, menuform, etc)
    9136 * `lmgr` for Layer Manager
    9237 * `mapdisp` for Map Display
    93  * `modules` for non-core components (vector digitizer, georectifier, etc.)
    94 
    95 {{{
    96 /gui/wxpython
    97 |
    98 |- core
    99 |- forms
    100 |- gui_core
    101 |- lmgr
    102 |- mapdisp
    103 |- modules
    104    |- dbm
    105    |- colorrules
    106    |- gcpmanager
    107    |- histogram
    108    |- location_wizard
    109    |- misc
    110    |- modeler
    111    |- nviz
    112    |- ogc_services
    113    |- psmap
    114    |- scatterplot
    115    |- vdigit
    116    |- wxplot
    117 }}}
    118 
    119 The proposed ''modules'':
    120 
    121 {{{
    122 core/cmd.py
    123         gcmd.py:class Popen(subprocess.Popen):
    124         gcmd.py:class Command:
    125         gcmd.py:class CommandThread(Thread):
    126 core/debug.py
    127         debug.py:class DebugMsg:
    128 core/exceptions.py
    129         gcmd.py:class GException(Exception):
    130 core/menudata.py
    131         menudata.py:class MenuData:
    132 core/render.py
    133         render.py:class Layer(object):
    134         render.py:class MapLayer(Layer):
    135         render.py:class Overlay(Layer):
    136         render.py:class Map(object):
    137 core/settings.py
    138         preferences.py:class Settings:
    139 core/units.py
    140         units.py:class BaseUnits:
    141 core/workspace.py
    142         workspace.py:class ProcessWorkspaceFile:
    143         workspace.py:class WriteWorkspaceFile(object):
    144         workspace.py:class ProcessGrcFile(object):
    145 
    146 forms/core.py
    147         menuform.py:class GUI:
    148         menuform.py:class FloatValidator(wx.PyValidator):
    149 forms/frame.py
    150         menuform.py:class mainFrame(wx.Frame):
    151         menuform.py:class cmdPanel(wx.Panel):
    152         menuform.py:class GrassGUIApp(wx.App):
    153 forms/help.py
    154         ghelp.py:class HelpWindow(wx.html.HtmlWindow):
    155         ghelp.py:class HelpPanel(wx.Panel):
    156 forms/thread.py
    157         menuform.py:class UpdateThread(Thread):
    158         menuform.py:class UpdateQThread(Thread):
    159 
    160 gui_core/dialogs.py
    161         gdialogs.py:class ElementDialog(wx.Dialog):
    162         gdialogs.py:class MapLayersDialog(wx.Dialog):
    163         gdialogs.py:class GroupDialog(wx.Dialog):
    164         gdialogs.py:class ImageSizeDialog(wx.Dialog):
    165         gdialogs.py:class NewVectorDialog(ElementDialog):
    166         gdialogs.py:class StaticWrapText(wx.StaticText):
    167         preferences.py:class DefaultFontDialog(wx.Dialog):
    168 gui_core/extensions.py
    169         ghelp.py:class InstallExtensionWindow(wx.Frame):
    170         ghelp.py:class ExtensionTree(ItemTree):
    171 gui_core/helpframe.py
    172         ghelp.py:class HelpFrame(wx.Frame):
    173         ghelp.py:class AboutWindow(wx.Frame):
    174 gui_core/mapset_access.py
    175         preferences.py:class MapsetAccess(wx.Dialog):
    176         preferences.py:class CheckListMapset(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.CheckListCtrlMixin):
    177 gui_core/menu.py
    178         menu.py:class Menu(wx.MenuBar):
    179 gui_core/menutree.py
    180         ghelp.py:class MenuTreeWindow(wx.Panel):
    181         ghelp.py:class ItemTree(CT.CustomTreeCtrl):
    182         ghelp.py:class MenuTree(ItemTree):
    183 gui_core/messages.py
    184         gcmd.py:class GError:
    185         gcmd.py:class GWarning:
    186         gcmd.py:class GMessage:
    187 gui_core/notebook.py
    188         menuform.py:class GNotebook(FN.FlatNotebook):
    189 gui_core/output.py
    190         goutput.py:class CmdThread(threading.Thread):
    191         goutput.py:class GMConsole(wx.SplitterWindow):
    192         goutput.py:class GMStdout:
    193         goutput.py:class GMStderr:
    194         goutput.py:class GMStc(wx.stc.StyledTextCtrl):
    195 gui_core/preferences.py
    196         preferences.py:class PreferencesBaseDialog(wx.Dialog):
    197         preferences.py:class PreferencesDialog(PreferencesBaseDialog):
    198 gui_core/prompt.py
    199         prompt.py:class PromptListCtrl(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin):
    200         prompt.py:class TextCtrlAutoComplete(wx.ComboBox, listmix.ColumnSorterMixin):
    201         prompt.py:class GPrompt(object):
    202         prompt.py:class GPromptPopUp(GPrompt, TextCtrlAutoComplete):
    203         prompt.py:class GPromptSTC(GPrompt, wx.stc.StyledTextCtrl):
    204 gui_core/search.py
    205         ghelp.py:class SearchModuleWindow(wx.Panel):
    206 gui_core/select.py
    207         gselect.py:class Select(wx.combo.ComboCtrl):
    208         gselect.py:class VectorSelect(Select):
    209         gselect.py:class TreeCtrlComboPopup(wx.combo.ComboPopup):
    210         gselect.py:class VectorDBInfo:
    211         gselect.py:class LayerSelect(wx.ComboBox):
    212         gselect.py:class DriverSelect(wx.ComboBox):
    213         gselect.py:class DatabaseSelect(wx.TextCtrl):
    214         gselect.py:class TableSelect(wx.ComboBox):
    215         gselect.py:class ColumnSelect(wx.ComboBox):
    216         gselect.py:class DbaseSelect(wx.lib.filebrowsebutton.DirBrowseButton):
    217         gselect.py:class LocationSelect(wx.ComboBox):
    218         gselect.py:class MapsetSelect(wx.ComboBox):
    219         gselect.py:class SubGroupSelect(wx.ComboBox):
    220         gselect.py:class FormatSelect(wx.Choice):
    221         gselect.py:class GdalSelect(wx.Panel):
    222         gselect.py:class ProjSelect(wx.ComboBox):
    223         gselect.py:class ElementSelect(wx.Choice):
    224         gselect.py:class OgrTypeSelect(wx.Panel):
    225 gui_core/toolbars.py
    226         toolbars.py:class AbstractToolbar(wx.ToolBar):
    227 
    228 lmgr/dialogs.py
    229         gdialogs.py:class SetOpacityDialog(wx.Dialog):
    230         gdialogs.py:class LocationDialog(ElementDialog):
    231         gdialogs.py:class MapsetDialog(ElementDialog):
    232         gdialogs.py:class ImportDialog(wx.Dialog):
    233         gdialogs.py:class GdalImportDialog(ImportDialog):
    234         gdialogs.py:class GdalOutputDialog(wx.Dialog):
    235         gdialogs.py:class DxfImportDialog(ImportDialog):
    236         gdialogs.py:class LayersList(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin,
    237 lmgr/frame.py
    238         wxgui.py:class GMFrame(wx.Frame):
    239 lmgr/layertree.py
    240         layertree.py:class LayerTree(treemixin.DragAndDrop, CT.CustomTreeCtrl):
    241 lmgr/menudata.py
    242         menudata.py:class ManagerData(MenuData):
    243 lmgr/pyshell.py
    244         gpyshell.py:class PyShellWindow(wx.Panel):
    245 lmgr/sql_query.py
    246         gdialogs.py:class SqlQueryFrame(wx.Frame):
    247 lmgr/toolbars.py
    248         toolbars.py:class LMWorkspaceToolbar(AbstractToolbar):
    249         toolbars.py:class LMDataToolbar(AbstractToolbar):
    250         toolbars.py:class LMToolsToolbar(AbstractToolbar):
    251         toolbars.py:class LMMiscToolbar(AbstractToolbar):
    252         toolbars.py:class LMVectorToolbar(AbstractToolbar):
    253 
    254 mapdisp/dialogs.py
    255         gdialogs.py:class SavedRegion(wx.Dialog):
    256         gdialogs.py:class DecorationDialog(wx.Dialog):
    257         gdialogs.py:class TextLayerDialog(wx.Dialog):
    258 mapdisp/frame.py
    259         mapdisp.py:class MapFrameBase(wx.Frame):
    260         mapdisp.py:class MapFrame(MapFrameBase):
    261         mapdisp.py:class MapApp(wx.App):
    262 mapdisp/mapwindow.py
    263         mapdisp_window.py:class MapWindow(object):
    264         mapdisp_window.py:class BufferedWindow(MapWindow, wx.Window):
    265 mapdisp/print.py
    266         disp_print.py:class MapPrint(wx.Printout):
    267         disp_print.py:class PrintOptions:
    268 mapdisp/statusbar.py
    269         mapdisp_statusbar.py:class SbException:
    270         mapdisp_statusbar.py:class SbManager:
    271         mapdisp_statusbar.py:class SbItem:
    272         mapdisp_statusbar.py:class SbRender(SbItem):
    273         mapdisp_statusbar.py:class SbShowRegion(SbItem):
    274         mapdisp_statusbar.py:class SbAlignExtent(SbItem):
    275         mapdisp_statusbar.py:class SbResolution(SbItem):
    276         mapdisp_statusbar.py:class SbMapScale(SbItem):
    277         mapdisp_statusbar.py:class SbGoTo(SbItem):
    278         mapdisp_statusbar.py:class SbProjection(SbItem):
    279         mapdisp_statusbar.py:class SbMask(SbItem):
    280         mapdisp_statusbar.py:class SbTextItem(SbItem):
    281         mapdisp_statusbar.py:class SbDisplayGeometry(SbTextItem):
    282         mapdisp_statusbar.py:class SbCoordinates(SbTextItem):
    283         mapdisp_statusbar.py:class SbRegionExtent(SbTextItem):
    284         mapdisp_statusbar.py:class SbCompRegionExtent(SbRegionExtent):
    285         mapdisp_statusbar.py:class SbProgress(SbItem):
    286         mapdisp_statusbar.py:class SbGoToGCP(SbItem):
    287         mapdisp_statusbar.py:class SbRMSError(SbTextItem):
    288 mapdisp/toolbars.py
    289         toolbars.py:class MapToolbar(AbstractToolbar):
    290 
    291 modules/dbm/core.py
    292         dbm_base.py:class VectorDBInfo(gselect.VectorDBInfo):
    293         dbm.py:class Log:
    294 modules/dbm/dialogs.py
    295         dbm_dialogs.py:class DisplayAttributesDialog(wx.Dialog):
    296         dbm_dialogs.py:class ModifyTableRecord(wx.Dialog):
    297 modules/dbm/frame.py
    298         dbm.py:class AttributeManager(wx.Frame):
    299 modules/dbm/sqlbuilder.py
    300         sqlbuilder.py:class SQLFrame(wx.Frame):
    301 modules/dbm/widgets.py
    302         dbm.py:class TableListCtrl(wx.ListCtrl,
    303         dbm.py:class LayerListCtrl(wx.ListCtrl,
    304         dbm.py:class LayerBook(wx.Notebook):
    305         dbm.py:class VirtualAttributeList(wx.ListCtrl,
    306 
    307 modules/colorrules/core.py
    308         colorrules.py:class RulesPanel:
    309         colorrules.py:class ColorTable(wx.Frame):
    310 modules/colorrules/mapwindow.py
    311         colorrules.py:class BufferedWindow(wx.Window):
    312 modules/colorrules/raster.py
    313         colorrules.py:class RasterColorTable(ColorTable):
    314 modules/colorrules/vector.py
    315         colorrules.py:class VectorColorTable(ColorTable):
    316         colorrules.py:class ThematicVectorTable(VectorColorTable):
    317 
    318 modules/gcpmanager/dialogs.py
    319         gcpmanager.py:class VectGroup(wx.Dialog):
    320         gcpmanager.py:class EditGCP(wx.Dialog):
    321         gcpmanager.py:class GrSettingsDialog(wx.Dialog):
    322 modules/gcpmanager/gcpframe.py
    323         gcpmanager.py:class GCP(MapFrame, ColumnSorterMixin):
    324         gcpmanager.py:class GCPList(wx.ListCtrl,
    325 modules/gcpmanager/mapframe.py
    326         gcpmapdisp.py:class MapFrame(MapFrameBase):
    327 modules/gcpmanager/toolbars.py
    328         toolbars.py:class GCPManToolbar(AbstractToolbar):
    329         toolbars.py:class GCPDisplayToolbar(AbstractToolbar):
    330 modules/gcpmanager/wizard.py
    331         gcpmanager.py:class GCPWizard(object):
    332         gcpmanager.py:class LocationPage(TitledPage):
    333         gcpmanager.py:class GroupPage(TitledPage):
    334         gcpmanager.py:class DispMapPage(TitledPage):
    335 
    336 modules/histogram/mapwindow.py
    337         histogram.py:class BufferedWindow(wx.Window):
    338 modules/histogram/frame.py
    339         histogram.py:class HistFrame(wx.Frame):
    340 modules/histogram/toolbars.py
    341         toolbars.py:class HistogramToolbar(AbstractToolbar):
    342         toolbars.py:class Histogram2Toolbar(AbstractToolbar):
    343 modules/histogram/frame.py
    344         wxplot.py:class HistFrame(AbstractPlotFrame):
    345 
    346 modules/location_wizard/dialogs.py
    347         location_wizard.py:class RegionDef(BaseClass, wx.Frame):
    348         location_wizard.py:class TransList(wx.VListBox):
    349         location_wizard.py:class SelectTransformDialog(wx.Dialog):
    350 modules/location_wizard/wizard.py
    351         location_wizard.py:class BaseClass(wx.Object):
    352         location_wizard.py:class TitledPage(BaseClass, wiz.WizardPageSimple):
    353         location_wizard.py:class DatabasePage(TitledPage):
    354         location_wizard.py:class CoordinateSystemPage(TitledPage):
    355         location_wizard.py:class ProjectionsPage(TitledPage):
    356         location_wizard.py:class ItemList(wx.ListCtrl,
    357         location_wizard.py:class ProjParamsPage(TitledPage):
    358         location_wizard.py:class DatumPage(TitledPage):
    359         location_wizard.py:class EllipsePage(TitledPage):
    360         location_wizard.py:class GeoreferencedFilePage(TitledPage):
    361         location_wizard.py:class WKTPage(TitledPage):
    362         location_wizard.py:class EPSGPage(TitledPage):
    363         location_wizard.py:class CustomPage(TitledPage):
    364         location_wizard.py:class SummaryPage(TitledPage):
    365         location_wizard.py:class LocationWizard(wx.Object):
    366 
    367 modules/misc/mapcalc.py
    368         mcalc_builder.py:class MapCalcFrame(wx.Frame):
    369 modules/misc/vclean.py
    370         vclean.py:class VectorCleaningFrame(wx.Frame):
    371 
    372 modules/modeler/menudata.py
    373         menudata.py:class ModelerData(MenuData):
    374 modules/modeler/toolbars.py
    375         toolbars.py:class ModelToolbar(AbstractToolbar):
    376 modules/modeler/core.py
    377         gmodeler.py:class Model(object):
    378         gmodeler.py:class ModelObject:
    379         gmodeler.py:class ModelAction(ModelObject, ogl.RectangleShape):
    380         gmodeler.py:class ModelData(ModelObject, ogl.EllipseShape):
    381         gmodeler.py:class ModelRelation(ogl.LineShape):
    382         gmodeler.py:class ProcessModelFile:
    383         gmodeler.py:class WriteModelFile:
    384         gmodeler.py:class ModelItem(ModelObject):
    385         gmodeler.py:class ModelLoop(ModelItem, ogl.RectangleShape):
    386         gmodeler.py:class ModelCondition(ModelItem, ogl.PolygonShape):
    387 modules/modeler/frame.py
    388         gmodeler.py:class ModelFrame(wx.Frame):
    389         gmodeler.py:class ModelCanvas(ogl.ShapeCanvas):
    390         gmodeler.py:class ModelEvtHandler(ogl.ShapeEvtHandler):
    391         gmodeler.py:class VariablePanel(wx.Panel):
    392         gmodeler.py:class VariableListCtrl(ModelListCtrl):
    393         gmodeler.py:class ItemPanel(wx.Panel):
    394         gmodeler.py:class ItemListCtrl(ModelListCtrl):
    395         gmodeler.py:class ItemCheckListCtrl(ItemListCtrl, listmix.CheckListCtrlMixin):
    396 modules/modeler/dialogs.py
    397         gmodeler.py:class ModelDataDialog(ElementDialog):
    398         gmodeler.py:class ModelSearchDialog(wx.Dialog):
    399         gmodeler.py:class ModelRelationDialog(wx.Dialog):
    400         gmodeler.py:class ModelParamDialog(wx.Dialog): 
    401         gmodeler.py:class ModelListCtrl(wx.ListCtrl,
    402         gmodeler.py:class ModelItemDialog(wx.Dialog):
    403         gmodeler.py:class ModelLoopDialog(ModelItemDialog):
    404         gmodeler.py:class ModelConditionDialog(ModelItemDialog):
    405 modules/modeler/preferences.py
    406         gmodeler.py:class PreferencesDialog(PreferencesBaseDialog):
    407         gmodeler.py:class PropertiesDialog(wx.Dialog):
    408 modules/modeler/python_export.py
    409         gmodeler.py:class WritePythonFile:
    410 
    411 modules/nviz/wxcore.py
    412         wxnviz.py:class Nviz(object):
    413         wxnviz.py:class Texture(object):
    414         wxnviz.py:class ImageTexture(Texture):
    415         wxnviz.py:class TextTexture(Texture):
    416 modules/nviz/mapdisp.py
    417         nviz_mapdisp.py:class NvizThread(Thread):
    418         nviz_mapdisp.py:class GLWindow(MapWindow, glcanvas.GLCanvas):
    419 modules/nviz/preferences.py
    420         nviz_preferences.py:class NvizPreferencesDialog(PreferencesBaseDialog):
    421 modules/nviz/core.py
    422         nviz_tools.py:class ScrolledPanel(SP.ScrolledPanel):
    423         nviz_tools.py:class NTCValidator(wx.PyValidator):
    424         nviz_tools.py:class NumTextCtrl(wx.TextCtrl):
    425         nviz_tools.py:class FloatSlider(wx.Slider):
    426 modules/nviz/tools.py
    427         nviz_tools.py:class NvizToolWindow(FN.FlatNotebook):
    428         nviz_tools.py:class PositionWindow(wx.Window):
    429         nviz_tools.py:class ViewPositionWindow(PositionWindow):
    430         nviz_tools.py:class LightPositionWindow(PositionWindow):
    431 modules/nviz/toolbars.py
    432         toolbars.py:class LMNvizToolbar(AbstractToolbar):
    433 modules/nviz/workspace.py
    434         workspace.py:class Nviz.:
    435 
    436 modules/ogc_services/wms.py
    437         ogc_services.py:class WMSDialog(wx.Dialog):
    438 modules/ogc_services/core.py
    439         ogc_services.py:class LayersList(TreeListCtrl, listmix.ListCtrlAutoWidthMixin):
    440 
    441 modules/profile/toolbars.py
    442         toolbars.py:class ProfileToolbar(AbstractToolbar):
    443 modules/profile/frame.py
    444         wxplot.py:class ProfileFrame(AbstractPlotFrame):
    445 
    446 modules/psmap/menudata.py
    447         menudata.py:class PsMapData(MenuData):
    448 modules/psmap/toolbars.py
    449         toolbars.py:class PsMapToolbar(AbstractToolbar):
    450 modules/psmap/core.py
    451         psmap_dialogs.py:class UnitConversion:
    452         psmap_dialogs.py:class TCValidator(wx.PyValidator):
    453         psmap_dialogs.py:class PenStyleComboBox(wx.combo.OwnerDrawnComboBox):
    454         psmap_dialogs.py:class CheckListCtrl(wx.ListCtrl, CheckListCtrlMixin, ListCtrlAutoWidthMixin):
    455 modules/psmap/instructions.py
    456         psmap_dialogs.py:class Instruction:
    457         psmap_dialogs.py:class InstructionObject:
    458         psmap_dialogs.py:class InitMap(InstructionObject):
    459         psmap_dialogs.py:class MapFrame(InstructionObject):
    460         psmap_dialogs.py:class PageSetup(InstructionObject):
    461         psmap_dialogs.py:class Mapinfo(InstructionObject):
    462         psmap_dialogs.py:class Text(InstructionObject):
    463         psmap_dialogs.py:class Scalebar(InstructionObject):
    464         psmap_dialogs.py:class RasterLegend(InstructionObject):
    465         psmap_dialogs.py:class VectorLegend(InstructionObject):
    466         psmap_dialogs.py:class Raster(InstructionObject):
    467         psmap_dialogs.py:class Vector(InstructionObject):
    468         psmap_dialogs.py:class VProperties(InstructionObject):
    469 modules/psmap/dialogs.py
    470         psmap_dialogs.py:class PsmapDialog(wx.Dialog):
    471         psmap_dialogs.py:class PageSetupDialog(PsmapDialog):
    472         psmap_dialogs.py:class MapDialog(PsmapDialog):
    473         psmap_dialogs.py:class MapFramePanel(wx.Panel):
    474         psmap_dialogs.py:class RasterPanel(wx.Panel):
    475         psmap_dialogs.py:class VectorPanel(wx.Panel):
    476         psmap_dialogs.py:class RasterDialog(PsmapDialog):
    477         psmap_dialogs.py:class MainVectorDialog(PsmapDialog):
    478         psmap_dialogs.py:class VPropertiesDialog(PsmapDialog):
    479         psmap_dialogs.py:class LegendDialog(PsmapDialog):
    480         psmap_dialogs.py:class MapinfoDialog(PsmapDialog):
    481         psmap_dialogs.py:class ScalebarDialog(PsmapDialog):
    482         psmap_dialogs.py:class TextDialog(PsmapDialog):
    483 modules/psmap/frame.py
    484         psmap.py:class PsMapFrame(wx.Frame):
    485 modules/psmap/mapwindow.py
    486         psmap.py:class PsMapBufferedWindow(wx.Window):
    487 
    488 modules/scatterplot/toolbars.py
    489         toolbars.py:class ScatterplotToolbar(AbstractToolbar):
    490 modules/scatterplot/frame.py
    491         wxplot.py:class ScatterFrame(AbstractPlotFrame):
    492 
    493 modules/vdigit/wxdisplay.py
    494         wxvdriver.py:class DisplayDriver:
    495 modules/vdigit/wxcore.py
    496         wxvdigit.py:class VDigitError:
    497         wxvdigit.py:class IVDigit:
    498 modules/vdigit/mapdisp.py
    499         mapdisp_vdigit.py:class VDigitWindow(BufferedWindow):
    500 modules/vdigit/toolbars.py
    501         toolbars.py:class VDigitToolbar(AbstractToolbar):
    502 modules/vdigit/core.py
    503         vdigit.py:class VDigit(IVDigit):
    504 modules/vdigit/settings.py
    505         vdigit.py:class VDigitSettingsDialog(wx.Dialog):
    506 modules/vdigit/dialogs.py
    507         vdigit.py:class VDigitCategoryDialog(wx.Dialog, listmix.ColumnSorterMixin):
    508         vdigit.py:class CategoryListCtrl(wx.ListCtrl,
    509         vdigit.py:class VDigitZBulkDialog(wx.Dialog):
    510         vdigit.py:class VDigitDuplicatesDialog(wx.Dialog):
    511         vdigit.py:class CheckListFeature(wx.ListCtrl, listmix.ListCtrlAutoWidthMixin, listmix.CheckListCtrlMixin):
    512 
    513 modules/wxplot/dialogs.py
    514         wxplot_dialogs.py:class ProfileRasterDialog(wx.Dialog):
    515         wxplot_dialogs.py:class ScatterRasterDialog(wx.Dialog):
    516         wxplot_dialogs.py:class PlotStatsFrame(wx.Frame):
    517         wxplot_dialogs.py:class HistRasterDialog(wx.Dialog):
    518         wxplot_dialogs.py:class TextDialog(wx.Dialog):
    519         wxplot_dialogs.py:class OptDialog(wx.Dialog):
    520 modules/wxplot/core.py
    521         wxplot.py:class AbstractPlotFrame(wx.Frame):
    522 }}}
     38 * `vdigit` for Vector Digitizer
     39 * `gcp` for Georectifier
     40 * `nviz` for 3D view (wxNviz)
     41 * `gmodeler` for Graphical Modeler
     42 * `psmap` for Cartographic Composer
    52343== Vector digitizer ==
    52444