application/jv_vdb_application.st
changeset 18 0f44fe9848a0
child 19 b28377075a9c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/application/jv_vdb_application.st	Sun Sep 21 01:37:33 2014 +0100
@@ -0,0 +1,186 @@
+"{ Package: 'jv:vdb/application' }"
+
+ApplicationDefinition subclass:#jv_vdb_application
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'* Projects & Packages *'
+!
+
+
+!jv_vdb_application class methodsFor:'description'!
+
+applicationIconFileName
+    "answer the base-name of the application icon (i.e. 'app' in <app>.ico).
+
+     Subclasses MUST redefine this to either return the name of the icon file or
+     nil, if they dont have one.
+     We NO LONGER SUPPORT THE PREVIOUS APPNAME-DEFAULT,
+     because users tend to forget to add the icon file and then get a failing build. "
+
+    ^ 'vdb'.
+
+    "Modified: / 21-09-2014 / 01:35:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+applicationName
+    "answer the name of the application.
+     This is also the name of the generated .exe file.
+
+     Subclasses may redefine this"
+
+    ^ 'vdb'
+
+    "
+     bosch_dapasx_application applicationName     
+     stx_projects_smalltalk applicationName     
+    "
+
+    "Created: / 21-09-2014 / 01:35:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+excludedFromPreRequisites
+    "list packages which are to be explicitely excluded from the automatic constructed
+     prerequisites list. If empty, everything that is found along the inheritance of any of
+     my classes is considered to be a prerequisite package."
+
+    ^ #(
+    )
+!
+
+isGUIApplication
+    "return true, if this is a GUI application.
+     (these need more libraries and use a different startup procedure)"
+
+    ^ true
+!
+
+mandatoryPreRequisites
+    "list packages which are mandatory as a prerequisite.
+     This are packages containing superclasses of my classes and classes which
+     are extended by myself.
+     They are mandatory, because we need these packages as a prerequisite for loading and compiling.
+     This method is generated automatically,
+     by searching along the inheritance chain of all of my classes."
+
+    ^ #(
+        #'stx:libbasic'    "ApplicationDefinition - superclass of jv_vdb_application"
+    )
+!
+
+referencedPreRequisites
+    "list packages which are a prerequisite, because they contain
+     classes which are referenced by my classes.
+     We do not need these packages as a prerequisite for loading or compiling.
+     This method is generated automatically,
+     by searching all classes (and their packages) which are referenced by my classes."
+
+    ^ #(
+        #'jv:libgdbs'    "GDBDebugger - referenced by VDBStartup class>>main:"
+        #'jv:vdb'    "VDBDebuggerApplication - referenced by VDBStartup class>>main:"
+        #'stx:libbasic2'    "UUID - referenced by VDBStartup class>>applicationUUID"
+    )
+!
+
+subProjects
+    "list packages which are known as subprojects.
+     This method is generated automatically; however, when generating automatically,
+     packages are only added - never removed, unless listed in #excludedFromSubProjects."
+
+    ^ #(
+)
+! !
+
+!jv_vdb_application class methodsFor:'description - contents'!
+
+classNamesAndAttributes
+    "lists the classes which are to be included in the project.
+     Each entry in the list may be: a single class-name (symbol),
+     or an array-literal consisting of class name and attributes.
+     Attributes are: #autoload or #<os> where os is one of win32, unix,..."
+
+    ^ #(
+        "<className> or (<className> attributes...) in load order"
+        VDBStartup
+        #'jv_vdb_application'
+    )
+!
+
+extensionMethodNames
+    "list class/selector pairs of extensions.
+     A correponding method with real names must be present in my concrete subclasses"
+
+    ^ #(
+    )
+! !
+
+!jv_vdb_application class methodsFor:'description - project information'!
+
+companyName
+    "Returns a company string which will appear in <lib>.rc.
+     Under win32, this is placed into the dlls file-info"
+
+    ^ 'Jan Vrany'
+
+    "Modified: / 21-09-2014 / 01:34:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+description
+    "Returns a description string which will appear in nt.def / bc.def"
+
+    ^ 'Visual Debugger'
+
+    "Modified: / 21-09-2014 / 01:34:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+legalCopyright
+    "Returns a copyright string which will appear in <lib>.rc.
+     Under win32, this is placed into the dlls file-info"
+
+    ^ 'Copyring (C) 2014 Jan Vrany'
+
+    "Modified: / 21-09-2014 / 01:34:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+productInstallDirBaseName
+    "Returns a default installDir which will appear in <app>.nsi.
+     This is usually not the one you want to keep"
+
+    ^ 'vdb'
+
+    "Modified: / 21-09-2014 / 01:34:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+productName
+    "Returns a product name which will appear in <lib>.rc.
+     Under win32, this is placed into the dlls file-info.
+     This method is usually redefined in a concrete application definition"
+
+    ^ 'Visual Debugger'
+
+    "Modified: / 21-09-2014 / 01:33:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!jv_vdb_application class methodsFor:'description - startup'!
+
+startupClassName
+    "the name of the class which starts the show in its <startupSelector> method.
+     Usually, the name of a subclass of StandAloneStartup."
+
+    #VDBStartup
+
+    "Modified: / 21-09-2014 / 01:33:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+startupSelector
+    "the message that is sent to the startupClass to start the show"
+
+    ^ #'start'        
+! !
+
+!jv_vdb_application class methodsFor:'documentation'!
+
+version_HG
+    ^ '$Changeset: <not expanded> $'
+! !
+