Initial shot on Bee plugin
authorJan Vrany <jan.vrany@fit.cvut.cz>
Fri, 07 Jun 2019 19:53:28 +0100
changeset 160 fea681d31a3c
parent 159 c00d27805420
child 161 103644ba5941
Initial shot on Bee plugin
plugins/bee/BeeSymbol.st
plugins/bee/BeeSymbolListApplication.st
plugins/bee/BeeSymbolPresenter.st
plugins/bee/GDBMI_bee_list_symbols.st
plugins/bee/Make.proto
plugins/bee/Make.spec
plugins/bee/Makefile.init
plugins/bee/abbrev.stc
plugins/bee/bc.mak
plugins/bee/bmake.bat
plugins/bee/extensions.st
plugins/bee/jv_vdb_plugins_bee.st
plugins/bee/jv_vdb_plugins_beeWINrc.rc
plugins/bee/libInit.cc
plugins/bee/mingwmake.bat
plugins/bee/vcmake.bat
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/bee/BeeSymbol.st	Fri Jun 07 19:53:28 2019 +0100
@@ -0,0 +1,69 @@
+"{ Package: 'jv:vdb/plugins/bee' }"
+
+"{ NameSpace: Smalltalk }"
+
+GDBObject subclass:#BeeSymbol
+	instanceVariableNames:'name addr size'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'VDB-Plugin-Bee-Model'
+!
+
+
+!BeeSymbol class methodsFor:'accessing-magritte'!
+
+descriptionContainer
+    ^ super descriptionContainer
+        define: #addr as: Integer;
+        define: #size as: Integer;
+        yourself
+
+    "Created: / 07-06-2019 / 16:21:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!BeeSymbol methodsFor:'accessing'!
+
+addr
+    ^ addr
+!
+
+addr:something
+    addr := something.
+!
+
+name
+    ^ name
+!
+
+name:something
+    name := something.
+!
+
+size
+    ^ size
+!
+
+size:something
+    size := something.
+! !
+
+!BeeSymbol methodsFor:'printing & storing'!
+
+printOn:aStream
+    "append a printed representation of the receiver to the argument, aStream"
+
+    super printOn:aStream.
+    aStream nextPut:$(.
+    name printOn:aStream.
+    aStream nextPut:$).
+
+    "Modified: / 07-06-2019 / 14:32:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!BeeSymbol class methodsFor:'documentation'!
+
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/bee/BeeSymbolListApplication.st	Fri Jun 07 19:53:28 2019 +0100
@@ -0,0 +1,141 @@
+"{ Package: 'jv:vdb/plugins/bee' }"
+
+"{ NameSpace: Smalltalk }"
+
+VDBAbstractListApplication subclass:#BeeSymbolListApplication
+	instanceVariableNames:'symbolListHolder selectedSymbolHolder'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'VDB-Plugin-Bee-UI'
+!
+
+
+!BeeSymbolListApplication class methodsFor:'accessing - defaults'!
+
+defaultWindowTitle
+    ^ 'Bee Symbols'
+
+    "Modified: / 07-06-2019 / 15:00:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!BeeSymbolListApplication methodsFor:'aspects'!
+
+selectedSymbolHolder
+    "return/create the 'selectedSymbolHolder' value holder (automatically generated)"
+
+    selectedSymbolHolder isNil ifTrue:[
+        selectedSymbolHolder := ValueHolder new.
+        selectedSymbolHolder addDependent:self.
+    ].
+    ^ selectedSymbolHolder
+!
+
+selectedSymbolHolder:something
+    "set the 'selectedSymbolHolder' value holder (automatically generated)"
+
+    |oldValue newValue|
+
+    selectedSymbolHolder notNil ifTrue:[
+        oldValue := selectedSymbolHolder value.
+        selectedSymbolHolder removeDependent:self.
+    ].
+    selectedSymbolHolder := something.
+    selectedSymbolHolder notNil ifTrue:[
+        selectedSymbolHolder addDependent:self.
+    ].
+    newValue := selectedSymbolHolder value.
+    oldValue ~~ newValue ifTrue:[
+        self update:#value with:newValue from:selectedSymbolHolder.
+    ].
+!
+
+symbolListHolder
+    "return/create the 'symbolListHolder' value holder (automatically generated)"
+
+    symbolListHolder isNil ifTrue:[
+        symbolListHolder := ValueHolder new.
+        symbolListHolder addDependent:self.
+    ].
+    ^ symbolListHolder
+!
+
+symbolListHolder:something
+    "set the 'symbolListHolder' value holder (automatically generated)"
+
+    |oldValue newValue|
+
+    symbolListHolder notNil ifTrue:[
+        oldValue := symbolListHolder value.
+        symbolListHolder removeDependent:self.
+    ].
+    symbolListHolder := something.
+    symbolListHolder notNil ifTrue:[
+        symbolListHolder addDependent:self.
+    ].
+    newValue := symbolListHolder value.
+    oldValue ~~ newValue ifTrue:[
+        self update:#value with:newValue from:symbolListHolder.
+    ].
+! !
+
+!BeeSymbolListApplication methodsFor:'change & update'!
+
+update:aspect with:param from:sender
+    "Invoked when an object that I depend upon sends a change notification."
+
+    sender == symbolListHolder ifTrue:[
+        self enqueueDelayedUpdateInternalList.
+        ^ self.
+    ].
+    super update:aspect with:param from:sender
+
+    "Created: / 07-06-2019 / 15:05:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!BeeSymbolListApplication methodsFor:'change & update-delayed'!
+
+delayedUpdateContents
+    | symbols |
+
+    debugger notNil ifTrue:[
+        debugger send: GDBMI_bee_list_symbols new andWithResultDo: [ :result |
+            result isDone ifTrue:[
+                symbols := result propertyAt: #result.
+                symbols sort:[ :a :b | a name < b name ].
+                self symbolListHolder value: symbols.
+            ]
+        ]
+    ] ifFalse:[ 
+        self symbolListHolder value: nil.
+    ].
+
+    "Created: / 07-06-2019 / 14:59:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 07-06-2019 / 21:42:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+delayedUpdateInternalList
+    | symbols symbolPs |
+
+    symbols := self symbolListHolder value ? #().
+    symbolPs := symbols collect:[ :reg | BeeSymbolPresenter new setSymbol: reg ].
+    self internalListHolder value: symbolPs
+
+    "Modified: / 07-06-2019 / 14:53:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+delayedUpdateSelection
+    | symbolP |
+
+    symbolP := self internalSelectionHolder value.    
+    self selectedSymbolHolder value: (symbolP notNil ifTrue:[ symbolP symbol ] ifFalse:[ nil ])
+
+    "Modified (format): / 07-06-2019 / 15:07:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!BeeSymbolListApplication class methodsFor:'documentation'!
+
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/bee/BeeSymbolPresenter.st	Fri Jun 07 19:53:28 2019 +0100
@@ -0,0 +1,46 @@
+"{ Package: 'jv:vdb/plugins/bee' }"
+
+"{ NameSpace: Smalltalk }"
+
+VDBAbstractPresenter subclass:#BeeSymbolPresenter
+	instanceVariableNames:'symbol'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'VDB-Plugin-Bee-Presentation'
+!
+
+!BeeSymbolPresenter methodsFor:'accessing'!
+
+label
+    ^ String streamContents: [ :s |
+        symbol addr printOn:s base: 16 size: (8 * 2) fill: $0.
+        s space.
+        s nextPutAll: symbol name
+    ].
+
+    "Created: / 07-06-2019 / 14:39:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 07-06-2019 / 16:20:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+subject
+    ^ symbol
+
+    "Modified: / 07-06-2019 / 14:38:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+symbol
+    ^ symbol
+!
+
+symbol:aBeeSymbol
+    symbol := aBeeSymbol.
+! !
+
+!BeeSymbolPresenter methodsFor:'initialization'!
+
+setSymbol: aBeeSymbol
+    symbol := aBeeSymbol
+
+    "Created: / 07-06-2019 / 14:54:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/bee/GDBMI_bee_list_symbols.st	Fri Jun 07 19:53:28 2019 +0100
@@ -0,0 +1,31 @@
+"{ Package: 'jv:vdb/plugins/bee' }"
+
+"{ NameSpace: Smalltalk }"
+
+GDBMICommand subclass:#GDBMI_bee_list_symbols
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'VDB-Plugin-Bee-Commands'
+!
+
+!GDBMI_bee_list_symbols methodsFor:'accessing'!
+
+operation
+    "superclass GDBMICommand says that I am responsible to implement this method"
+
+    ^ 'bee-list-symbols'
+
+    "Modified: / 07-06-2019 / 14:15:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!GDBMI_bee_list_symbols methodsFor:'accessing-descriptors'!
+
+resultDescription
+    ^ super resultDescription
+        define: #result as: Array of: BeeSymbol;
+        yourself
+
+    "Created: / 07-06-2019 / 14:30:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/bee/Make.proto	Fri Jun 07 19:53:28 2019 +0100
@@ -0,0 +1,146 @@
+# $Header$
+#
+# DO NOT EDIT
+# automagically generated from the projectDefinition: jv_vdb_plugins_bee.
+#
+# Warning: once you modify this file, do not rerun
+# stmkmp or projectDefinition-build again - otherwise, your changes are lost.
+#
+# The Makefile as generated by this Make.proto supports the following targets:
+#    make         - compile all st-files to a classLib
+#    make clean   - clean all temp files
+#    make clobber - clean all
+#
+# This file contains definitions for Unix based platforms.
+# It shares common definitions with the win32-make in Make.spec.
+
+#
+# position (of this package) in directory hierarchy:
+# (must point to ST/X top directory, for tools and includes)
+TOP=../../../../stx
+INCLUDE_TOP=$(TOP)/..
+
+# subdirectories where targets are to be made:
+SUBDIRS=
+
+
+# subdirectories where Makefiles are to be made:
+# (only define if different from SUBDIRS)
+# ALLSUBDIRS=
+
+REQUIRED_SUPPORT_DIRS=
+
+# if your embedded C code requires any system includes,
+# add the path(es) here:,
+# ********** OPTIONAL: MODIFY the next lines ***
+# LOCALINCLUDES=-Ifoo -Ibar
+LOCALINCLUDES= -I$(INCLUDE_TOP)/jv/libgdbs -I$(INCLUDE_TOP)/jv/vdb -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libview2 -I$(INCLUDE_TOP)/stx/libwidg2
+
+
+# if you need any additional defines for embedded C code,
+# add them here:,
+# ********** OPTIONAL: MODIFY the next lines ***
+# LOCALDEFINES=-Dfoo -Dbar -DDEBUG
+LOCALDEFINES=
+
+LIBNAME=libjv_vdb_plugins_bee
+STCLOCALOPT='-package=$(PACKAGE)' -I. $(LOCALINCLUDES) $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) -headerDir=.  -varPrefix=$(LIBNAME)
+
+
+# ********** OPTIONAL: MODIFY the next line ***
+# additional C-libraries that should be pre-linked with the class-objects
+LD_OBJ_LIBS=
+LOCAL_SHARED_LIBS=
+
+
+# ********** OPTIONAL: MODIFY the next line ***
+# additional C targets or libraries should be added below
+LOCAL_EXTRA_TARGETS=
+
+OBJS= $(COMMON_OBJS) $(UNIX_OBJS)
+
+
+
+all:: preMake classLibRule postMake
+
+pre_objs::  
+
+
+
+
+
+
+# Enforce recompilation of package definition class if Mercurial working
+# copy state changes. Together with --guessVersion it ensures that package
+# definition class always contains correct binary revision string.
+ifneq (**NOHG**, $(shell hg root 2> /dev/null || echo -n '**NOHG**'))
+jv_vdb_plugins_bee.$(O): $(shell hg root)/.hg/dirstate
+endif
+
+
+
+
+# run default testsuite for this package
+test: $(TOP)/goodies/builder/reports
+	$(MAKE) -C $(TOP)/goodies/builder/reports -f Makefile.init
+	$(TOP)/goodies/builder/reports/report-runner.sh -D . -r Builder::TestReport -p $(PACKAGE)
+
+
+
+# add more install actions here
+install::
+
+# add more install actions for aux-files (resources) here
+installAux::
+
+# add more preMake actions here
+preMake::
+
+# add more postMake actions here
+postMake:: cleanjunk
+
+# build all mandatory prerequisite packages (containing superclasses) for this package
+prereq:
+	cd $(TOP)/libbasic && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	cd $(TOP)/goodies/announcements && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	cd $(TOP)/goodies/refactoryBrowser/parser && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	cd $(TOP)/libbasic2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	cd $(TOP)/libbasic3 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	cd $(TOP)/libcomp && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	cd $(TOP)/libui && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	cd $(TOP)/libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	cd $(TOP)/libview2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	cd $(TOP)/libwidg && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	cd $(TOP)/goodies/magritte && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	cd $(TOP)/libwidg2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	cd ../../../libgdbs && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	cd $(TOP)/libtool && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	cd ../../ && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+
+
+
+# build all packages containing referenced classes for this package
+# they are not needed to compile the package (but later, to load it)
+references:
+
+
+cleanjunk::
+	-rm -f *.s *.s2
+
+clean::
+	-rm -f *.o *.H
+
+clobber:: clean
+	-rm -f *.so *.dll
+
+
+# BEGINMAKEDEPEND --- do not remove this line; make depend needs it
+$(OUTDIR)BeeSymbol.$(O) BeeSymbol.$(C) BeeSymbol.$(H): BeeSymbol.st $(INCLUDE_TOP)/jv/libgdbs/GDBObject.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)BeeSymbolListApplication.$(O) BeeSymbolListApplication.$(C) BeeSymbolListApplication.$(H): BeeSymbolListApplication.st $(INCLUDE_TOP)/jv/vdb/VDBAbstractApplication.$(H) $(INCLUDE_TOP)/jv/vdb/VDBAbstractContentsApplication.$(H) $(INCLUDE_TOP)/jv/vdb/VDBAbstractListApplication.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(STCHDR)
+$(OUTDIR)BeeSymbolPresenter.$(O) BeeSymbolPresenter.$(C) BeeSymbolPresenter.$(H): BeeSymbolPresenter.st $(INCLUDE_TOP)/jv/vdb/VDBAbstractPresenter.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/AbstractHierarchicalItem.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
+$(OUTDIR)GDBMI_bee_list_symbols.$(O) GDBMI_bee_list_symbols.$(C) GDBMI_bee_list_symbols.$(H): GDBMI_bee_list_symbols.st $(INCLUDE_TOP)/jv/libgdbs/GDBCommand.$(H) $(INCLUDE_TOP)/jv/libgdbs/GDBMICommand.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)jv_vdb_plugins_bee.$(O) jv_vdb_plugins_bee.$(C) jv_vdb_plugins_bee.$(H): jv_vdb_plugins_bee.st $(INCLUDE_TOP)/stx/libbasic/LibraryDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(STCHDR)
+$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)/jv/vdb/VDBAbstractApplication.$(H) $(INCLUDE_TOP)/jv/vdb/VDBDebuggerApplication.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(STCHDR)
+
+# ENDMAKEDEPEND --- do not remove this line
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/bee/Make.spec	Fri Jun 07 19:53:28 2019 +0100
@@ -0,0 +1,72 @@
+# $Header$
+#
+# DO NOT EDIT
+# automagically generated from the projectDefinition: jv_vdb_plugins_bee.
+#
+# Warning: once you modify this file, do not rerun
+# stmkmp or projectDefinition-build again - otherwise, your changes are lost.
+#
+# This file contains specifications which are common to all platforms.
+#
+
+# Do NOT CHANGE THESE DEFINITIONS
+# (otherwise, ST/X will have a hard time to find out the packages location from its packageID,
+#  to find the source code of a class and to find the library for a package)
+MODULE=jv
+MODULE_DIR=vdb/plugins/bee
+PACKAGE=$(MODULE):$(MODULE_DIR)
+
+
+# Argument(s) to the stc compiler (stc --usage).
+#  -headerDir=. : create header files locally
+#                (if removed, they will be created as common
+#  -Pxxx       : defines the package
+#  -Zxxx       : a prefix for variables within the classLib
+#  -Dxxx       : defines passed to CC for inline C-code
+#  -Ixxx       : include path passed to CC for inline C-code
+#  +optspace   : optimized for space
+#  +optspace2  : optimized more for space
+#  +optspace3  : optimized even more for space
+#  +optinline  : generate inline code for some ST constructs
+#  +inlineNew  : additionally inline new
+#  +inlineMath : additionally inline some floatPnt math stuff
+#
+# ********** OPTIONAL: MODIFY the next line(s) ***
+# STCLOCALOPTIMIZATIONS=+optinline +inlineNew
+# STCLOCALOPTIMIZATIONS=+optspace3
+STCLOCALOPTIMIZATIONS=+optspace3
+
+
+# Argument(s) to the stc compiler (stc --usage).
+#  -warn            : no warnings
+#  -warnNonStandard : no warnings about ST/X extensions
+#  -warnEOLComments : no warnings about EOL comment extension
+#  -warnPrivacy     : no warnings about privateClass extension
+#  -warnUnused      : no warnings about unused variables
+#
+# ********** OPTIONAL: MODIFY the next line(s) ***
+# STCWARNINGS=-warn
+# STCWARNINGS=-warnNonStandard
+# STCWARNINGS=-warnEOLComments
+STCWARNINGS=-warnNonStandard
+
+COMMON_CLASSES= \
+	BeeSymbol \
+	BeeSymbolListApplication \
+	BeeSymbolPresenter \
+	GDBMI_bee_list_symbols \
+	jv_vdb_plugins_bee \
+
+
+
+
+COMMON_OBJS= \
+    $(OUTDIR)BeeSymbol.$(O) \
+    $(OUTDIR)BeeSymbolListApplication.$(O) \
+    $(OUTDIR)BeeSymbolPresenter.$(O) \
+    $(OUTDIR)GDBMI_bee_list_symbols.$(O) \
+    $(OUTDIR)jv_vdb_plugins_bee.$(O) \
+    $(OUTDIR)extensions.$(O) \
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/bee/Makefile.init	Fri Jun 07 19:53:28 2019 +0100
@@ -0,0 +1,27 @@
+#
+# DO NOT EDIT
+#
+# make uses this file (Makefile) only, if there is no
+# file named "makefile" (lower-case m) in the same directory.
+# My only task is to generate the real makefile and call make again.
+# Thereafter, I am no longer used and needed.
+#
+# MACOSX caveat:
+#   as filenames are not case sensitive (in a default setup),
+#   we cannot use the above trick. Therefore, this file is now named
+#   "Makefile.init", and you have to execute "make -f Makefile.init" to
+#   get the initial makefile.  This is now also done by the toplevel CONFIG
+#   script.
+
+.PHONY: run
+
+run: makefile
+	$(MAKE) -f makefile
+
+#only needed for the definition of $(TOP)
+include Make.proto
+
+makefile: mf
+
+mf:
+	$(TOP)/rules/stmkmf
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/bee/abbrev.stc	Fri Jun 07 19:53:28 2019 +0100
@@ -0,0 +1,8 @@
+# automagically generated by the project definition
+# this file is needed for stc to be able to compile modules independently.
+# it provides information about a classes filename, category and especially namespace.
+BeeSymbol BeeSymbol jv:vdb/plugins/bee 'VDB-Plugin-Bee-Model' 0
+BeeSymbolListApplication BeeSymbolListApplication jv:vdb/plugins/bee 'VDB-Plugin-Bee-UI' 2
+BeeSymbolPresenter BeeSymbolPresenter jv:vdb/plugins/bee 'VDB-Plugin-Bee-Presentation' 0
+GDBMI_bee_list_symbols GDBMI_bee_list_symbols jv:vdb/plugins/bee 'VDB-Plugin-Bee-Commands' 0
+jv_vdb_plugins_bee jv_vdb_plugins_bee jv:vdb/plugins/bee '* Projects & Packages *' 3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/bee/bc.mak	Fri Jun 07 19:53:28 2019 +0100
@@ -0,0 +1,101 @@
+# $Header$
+#
+# DO NOT EDIT
+# automagically generated from the projectDefinition: jv_vdb_plugins_bee.
+#
+# Warning: once you modify this file, do not rerun
+# stmkmp or projectDefinition-build again - otherwise, your changes are lost.
+#
+# Notice, that the name bc.mak is historical (from times, when only borland c was supported).
+# This file contains make rules for the win32 platform using either borland-bcc or visual-c.
+# It shares common definitions with the unix-make in Make.spec.
+# The bc.mak supports the following targets:
+#    bmake         - compile all st-files to a classLib (dll)
+#    bmake clean   - clean all temp files
+#    bmake clobber - clean all
+#
+# Historic Note:
+#  this used to contain only rules to make with borland
+#    (called via bmake, by "make.exe -f bc.mak")
+#  this has changed; it is now also possible to build using microsoft visual c
+#    (called via vcmake, by "make.exe -f bc.mak -DUSEVC")
+#
+TOP=..\..\..\..\stx
+INCLUDE_TOP=$(TOP)\..
+
+
+
+!INCLUDE $(TOP)\rules\stdHeader_bc
+
+!INCLUDE Make.spec
+
+LIBNAME=libjv_vdb_plugins_bee
+MODULE_PATH=vdb\plugins\bee
+RESFILES=jv_vdb_plugins_beeWINrc.$(RES)
+
+
+
+LOCALINCLUDES= -I$(INCLUDE_TOP)\jv\libgdbs -I$(INCLUDE_TOP)\jv\vdb -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\libwidg2
+LOCALDEFINES=
+
+STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES)  -varPrefix=$(LIBNAME)
+LOCALLIBS=
+
+OBJS= $(COMMON_OBJS) $(WIN32_OBJS)
+
+ALL::  classLibRule
+
+classLibRule: $(OUTDIR) $(OUTDIR)$(LIBNAME).dll
+
+!INCLUDE $(TOP)\rules\stdRules_bc
+
+# build all mandatory prerequisite packages (containing superclasses) for this package
+prereq:
+	pushd ..\..\..\..\stx\libbasic & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\..\..\stx\goodies\announcements & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\..\..\stx\goodies\refactoryBrowser\parser & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\..\..\stx\libbasic2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\..\..\stx\libbasic3 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\..\..\stx\libcomp & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\..\..\stx\libui & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\..\..\stx\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\..\..\stx\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\..\..\stx\libwidg & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\..\..\stx\goodies\magritte & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\..\..\stx\libwidg2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\..\libgdbs & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\..\..\stx\libtool & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\.. & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+
+
+
+
+
+
+
+test: $(TOP)\goodies\builder\reports
+	pushd $(TOP)\goodies\builder\reports & $(MAKE_BAT)
+	$(TOP)\goodies\builder\reports\report-runner.bat -D . -r Builder::TestReport -p $(PACKAGE)
+        
+clean::
+	-del *.$(CSUFFIX)
+
+
+# BEGINMAKEDEPEND --- do not remove this line; make depend needs it
+$(OUTDIR)BeeSymbol.$(O) BeeSymbol.$(C) BeeSymbol.$(H): BeeSymbol.st $(INCLUDE_TOP)\jv\libgdbs\GDBObject.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)BeeSymbolListApplication.$(O) BeeSymbolListApplication.$(C) BeeSymbolListApplication.$(H): BeeSymbolListApplication.st $(INCLUDE_TOP)\jv\vdb\VDBAbstractApplication.$(H) $(INCLUDE_TOP)\jv\vdb\VDBAbstractContentsApplication.$(H) $(INCLUDE_TOP)\jv\vdb\VDBAbstractListApplication.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(STCHDR)
+$(OUTDIR)BeeSymbolPresenter.$(O) BeeSymbolPresenter.$(C) BeeSymbolPresenter.$(H): BeeSymbolPresenter.st $(INCLUDE_TOP)\jv\vdb\VDBAbstractPresenter.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\AbstractHierarchicalItem.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
+$(OUTDIR)GDBMI_bee_list_symbols.$(O) GDBMI_bee_list_symbols.$(C) GDBMI_bee_list_symbols.$(H): GDBMI_bee_list_symbols.st $(INCLUDE_TOP)\jv\libgdbs\GDBCommand.$(H) $(INCLUDE_TOP)\jv\libgdbs\GDBMICommand.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)jv_vdb_plugins_bee.$(O) jv_vdb_plugins_bee.$(C) jv_vdb_plugins_bee.$(H): jv_vdb_plugins_bee.st $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(STCHDR)
+$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\jv\vdb\VDBAbstractApplication.$(H) $(INCLUDE_TOP)\jv\vdb\VDBDebuggerApplication.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(STCHDR)
+
+# ENDMAKEDEPEND --- do not remove this line
+
+# **Must be at end**
+
+# Enforce recompilation of package definition class if Mercurial working
+# copy state changes. Together with --guessVersion it ensures that package
+# definition class always contains correct binary revision string.
+!IFDEF HGROOT
+$(OUTDIR)jv_vdb_plugins_bee.$(O): $(HGROOT)\.hg\dirstate
+!ENDIF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/bee/bmake.bat	Fri Jun 07 19:53:28 2019 +0100
@@ -0,0 +1,15 @@
+@REM -------
+@REM make using Borland bcc32
+@REM type bmake, and wait...
+@REM do not edit - automatically generated from ProjectDefinition
+@REM -------
+@SET DEFINES=
+@REM Kludge got Mercurial, cannot be implemented in Borland make
+@FOR /F "tokens=*" %%i in ('hg root') do SET HGROOT=%%i
+@IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
+
+make.exe -N -f bc.mak  %DEFINES% %*
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/bee/extensions.st	Fri Jun 07 19:53:28 2019 +0100
@@ -0,0 +1,34 @@
+"{ Package: 'jv:vdb/plugins/bee' }"!
+
+!VDBDebuggerApplication methodsFor:'menu actions'!
+
+doOpenBeeSymbols
+    self doOpenToolApplicationClass: BeeSymbolListApplication name
+
+    "Created: / 07-06-2019 / 21:39:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!VDBDebuggerApplication methodsFor:'menus'!
+
+mainMenuBee: aMenu
+    "Adds a Smalltalk/X debugging menu items to the context menu."
+
+    <menuextension: #mainMenu>
+
+    (aMenu menuItemLabeled: 'Window') submenu
+        addSeparator;
+        addItem: (
+            (MenuItem label: (self class classResources string: 'Bee Symbols')
+                 itemValue: #doOpenBeeSymbols)
+                 receiver: self
+        ).
+
+    "Created: / 07-06-2019 / 21:46:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!jv_vdb_plugins_bee class methodsFor:'documentation'!
+
+extensionsVersion_HG
+
+    ^ '$Changeset: <not expanded> $'
+! !
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/bee/jv_vdb_plugins_bee.st	Fri Jun 07 19:53:28 2019 +0100
@@ -0,0 +1,137 @@
+"{ Package: 'jv:vdb/plugins/bee' }"
+
+"{ NameSpace: Smalltalk }"
+
+LibraryDefinition subclass:#jv_vdb_plugins_bee
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'* Projects & Packages *'
+!
+
+
+!jv_vdb_plugins_bee class methodsFor:'description'!
+
+excludedFromPreRequisites
+    "obsolete; temporarily, this is still called for, but will eventually vanish.
+    
+     List packages which are to be explicitely excluded from the automatic constructed
+     prerequisites lists (both). 
+     If empty, everything that is found along the inheritance of any of
+     my classes is considered to be a prerequisite package."
+
+    ^ #(
+    )
+!
+
+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.
+     Please take a look at the #referencedPreRequisites method as well."
+
+    ^ #(
+        #'jv:libgdbs'    "GDBCommand - superclass of GDBMI_bee_list_symbols"
+        #'jv:vdb'    "VDBAbstractApplication - extended"
+        #'stx:libbasic'    "LibraryDefinition - superclass of jv_vdb_plugins_bee"
+        #'stx:libview2'    "ApplicationModel - extended"
+        #'stx:libwidg2'    "AbstractHierarchicalItem - superclass of BeeSymbolPresenter"
+    )
+!
+
+referencedPreRequisites
+    "list packages which are a prerequisite, because they contain
+     classes which are referenced by my classes.
+     These packages are NOT needed as a prerequisite for compiling or loading,
+     however, a class from it may be referenced during execution and having it
+     unloaded then may lead to a runtime doesNotUnderstand error, unless the caller
+     includes explicit checks for the package being present.
+     This method is generated automatically,
+     by searching all classes (and their packages) which are referenced by my classes.
+     Please also take a look at the #mandatoryPreRequisites method"
+
+    ^ #(
+    )
+!
+
+subProjects
+    "list packages which are known as subprojects.
+     The generated makefile will enter those and make there as well.
+     However: they are not forced to be loaded when a package is loaded;
+     for those, redefine #referencedPrerequisites or #mandatoryPreRequisites."
+
+    ^ #(
+    )
+! !
+
+!jv_vdb_plugins_bee 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"
+        BeeSymbol
+        BeeSymbolListApplication
+        BeeSymbolPresenter
+        #'GDBMI_bee_list_symbols'
+        #'jv_vdb_plugins_bee'
+    )
+!
+
+extensionMethodNames
+    "lists the extension methods which are to be included in the project.
+     Entries are 2-element array literals, consisting of class-name and selector.
+     A correponding method with real names must be present in my concrete subclasses
+     if it has extensions."
+
+    ^ #(
+        VDBDebuggerApplication doOpenBeeSymbols
+        VDBDebuggerApplication mainMenuBee:
+    )
+! !
+
+!jv_vdb_plugins_bee class methodsFor:'description - project information'!
+
+companyName
+    "Returns a company string which will appear in <lib>.rc.
+     Under win32, this is placed into the dll's file-info.
+     Other systems may put it elsewhere, or ignore it."
+
+    ^ 'My Company'
+!
+
+description
+    "Returns a description string which will appear in nt.def / bc.def"
+
+    ^ 'Class Library'
+!
+
+legalCopyright
+    "Returns a copyright string which will appear in <lib>.rc.
+     Under win32, this is placed into the dll's file-info.
+     Other systems may put it elsewhere, or ignore it."
+
+    ^ 'My CopyRight or CopyLeft 2019'
+!
+
+productName
+    "Returns a product name which will appear in <lib>.rc.
+     Under win32, this is placed into the dll's file-info.
+     This method is usually redefined in a concrete application definition"
+
+    ^ 'LibraryName'
+! !
+
+!jv_vdb_plugins_bee class methodsFor:'documentation'!
+
+version_HG
+    ^ '$Changeset: <not expanded> $'
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/bee/jv_vdb_plugins_beeWINrc.rc	Fri Jun 07 19:53:28 2019 +0100
@@ -0,0 +1,37 @@
+//
+// DO NOT EDIT
+// automagically generated from the projectDefinition: jv_vdb_plugins_bee.
+//
+VS_VERSION_INFO VERSIONINFO
+  FILEVERSION     8,0,32767,32767
+  PRODUCTVERSION  8,0,99,0
+#if (__BORLANDC__)
+  FILEFLAGSMASK   VS_FF_DEBUG | VS_FF_PRERELEASE
+  FILEFLAGS       VS_FF_PRERELEASE | VS_FF_SPECIALBUILD
+  FILEOS          VOS_NT_WINDOWS32
+  FILETYPE        VFT_DLL
+  FILESUBTYPE     VS_USER_DEFINED
+#endif
+
+BEGIN
+  BLOCK "StringFileInfo"
+  BEGIN
+    BLOCK "040904E4"
+    BEGIN
+      VALUE "CompanyName", "My Company\0"
+      VALUE "FileDescription", "Class Library (LIB)\0"
+      VALUE "FileVersion", "8.0.32767.32767\0"
+      VALUE "InternalName", "jv:vdb/plugins/bee\0"
+      VALUE "LegalCopyright", "My CopyRight or CopyLeft 2019\0"
+      VALUE "ProductName", "LibraryName\0"
+      VALUE "ProductVersion", "8.0.99.0\0"
+      VALUE "ProductDate", "Fri, 07 Jun 2019 18:53:03 GMT\0"
+    END
+
+  END
+
+  BLOCK "VarFileInfo"
+  BEGIN                               //  Language   |    Translation
+    VALUE "Translation", 0x409, 0x4E4 // U.S. English, Windows Multilingual
+  END
+END
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/bee/libInit.cc	Fri Jun 07 19:53:28 2019 +0100
@@ -0,0 +1,46 @@
+/*
+ * $Header$
+ *
+ * DO NOT EDIT
+ * automagically generated from the projectDefinition: jv_vdb_plugins_bee.
+ */
+#define __INDIRECTVMINITCALLS__
+#include <stc.h>
+
+#ifdef WIN32
+# pragma codeseg INITCODE "INITCODE"
+#endif
+
+#if defined(INIT_TEXT_SECTION) || defined(DLL_EXPORT)
+DLL_EXPORT void _libjv_vdb_plugins_bee_Init() INIT_TEXT_SECTION;
+DLL_EXPORT void _libjv_vdb_plugins_bee_InitDefinition() INIT_TEXT_SECTION;
+#endif
+
+extern void _BeeSymbol_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
+extern void _BeeSymbolListApplication_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
+extern void _BeeSymbolPresenter_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
+extern void _GDBMI_137bee_137list_137symbols_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
+extern void _jv_137vdb_137plugins_137bee_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
+
+extern void _jv_137vdb_137plugins_137bee_extensions_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);
+
+void _libjv_vdb_plugins_bee_InitDefinition(int pass, struct __vmData__ *__pRT__, OBJ snd)
+{
+  __BEGIN_PACKAGE2__("libjv_vdb_plugins_bee__DFN", _libjv_vdb_plugins_bee_InitDefinition, "jv:vdb/plugins/bee");
+    _jv_137vdb_137plugins_137bee_Init(pass,__pRT__,snd);
+
+  __END_PACKAGE__();
+}
+
+void _libjv_vdb_plugins_bee_Init(int pass, struct __vmData__ *__pRT__, OBJ snd)
+{
+  __BEGIN_PACKAGE2__("libjv_vdb_plugins_bee", _libjv_vdb_plugins_bee_Init, "jv:vdb/plugins/bee");
+    _BeeSymbol_Init(pass,__pRT__,snd);
+    _BeeSymbolListApplication_Init(pass,__pRT__,snd);
+    _BeeSymbolPresenter_Init(pass,__pRT__,snd);
+    _GDBMI_137bee_137list_137symbols_Init(pass,__pRT__,snd);
+    _jv_137vdb_137plugins_137bee_Init(pass,__pRT__,snd);
+
+    _jv_137vdb_137plugins_137bee_extensions_Init(pass,__pRT__,snd);
+  __END_PACKAGE__();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/bee/mingwmake.bat	Fri Jun 07 19:53:28 2019 +0100
@@ -0,0 +1,18 @@
+@REM -------
+@REM make using mingw gnu compiler
+@REM type mingwmake, and wait...
+@REM do not edit - automatically generated from ProjectDefinition
+@REM -------
+@SET DEFINES=
+@REM Kludge got Mercurial, cannot be implemented in Borland make
+@FOR /F "tokens=*" %%i in ('hg root') do SET HGROOT=%%i
+@IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
+
+@pushd ..\..\..\..\stx\rules
+@call find_mingw.bat
+@popd
+make.exe -N -f bc.mak %DEFINES% %USEMINGW_ARG% %*
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/bee/vcmake.bat	Fri Jun 07 19:53:28 2019 +0100
@@ -0,0 +1,22 @@
+@REM -------
+@REM make using Microsoft Visual C compiler
+@REM type vcmake, and wait...
+@REM do not edit - automatically generated from ProjectDefinition
+@REM -------
+
+@if not defined VSINSTALLDIR (
+    pushd ..\..\..\..\stx\rules
+    call vcsetup.bat
+    popd
+)
+@SET DEFINES=
+@REM Kludge got Mercurial, cannot be implemented in Borland make
+@FOR /F "tokens=*" %%i in ('hg root') do SET HGROOT=%%i
+@IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
+
+
+make.exe -N -f bc.mak -DUSEVC=1 %DEFINES% %*
+
+
+
+