diff --git a/Documentation/doxygen.conf.in b/Documentation/doxygen.conf.in index e51c74f93f..22ac1ad644 100644 --- a/Documentation/doxygen.conf.in +++ b/Documentation/doxygen.conf.in @@ -1,2432 +1,2432 @@ # Doxyfile 1.8.8 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. # # All text after a double hash (##) is considered a comment and is placed in # front of the TAG it is preceding. # # All text after a single hash (#) is considered a comment and will be ignored. # The format is: # TAG = value [value, ...] # For lists, items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (\" \"). #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all text # before the first occurrence of this tag. Doxygen uses libiconv (or the iconv # built into libc) for the transcoding. See http://www.gnu.org/software/libiconv # for the list of possible encodings. # The default value is: UTF-8. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by # double-quotes, unless you are using Doxywizard) that should identify the # project for which the documentation is generated. This name is used in the # title of most generated pages and in a few other places. # The default value is: My Project. PROJECT_NAME = "Medical Imaging Interaction Toolkit" # The PROJECT_NUMBER tag can be used to enter a project or revision number. This # could be handy for archiving the generated documentation or if some version # control system is used. PROJECT_NUMBER = @MITK_VERSION_STRING@ # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a # quick idea about the purpose of the project. Keep the description short. PROJECT_BRIEF = "Medical Imaging Interaction Toolkit" # With the PROJECT_LOGO tag one can specify an logo or icon that is included in # the documentation. The maximum height of the logo should not exceed 55 pixels # and the maximum width should not exceed 200 pixels. Doxygen will copy the logo # to the output directory. PROJECT_LOGO = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is # entered, it will be relative to the location where doxygen was started. If # left blank the current directory will be used. OUTPUT_DIRECTORY = "@MITK_DOXYGEN_OUTPUT_DIR@" # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub- # directories (in 2 levels) under the output directory of each output format and # will distribute the generated files over these directories. Enabling this # option can be useful when feeding doxygen a huge amount of source files, where # putting all generated files in the same directory would otherwise causes # performance problems for the file system. # The default value is: NO. CREATE_SUBDIRS = NO # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII # characters to appear in the names of generated files. If set to NO, non-ASCII # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode # U+3044. # The default value is: NO. ALLOW_UNICODE_NAMES = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, # Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), # Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, # Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), # Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, # Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, # Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, # Ukrainian and Vietnamese. # The default value is: English. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member # descriptions after the members that are listed in the file and class # documentation (similar to Javadoc). Set to NO to disable this. # The default value is: YES. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief # description of a member or function before the detailed description # # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. # The default value is: YES. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator that is # used to form the text in various listings. Each string in this list, if found # as the leading text of the brief description, will be stripped from the text # and the result, after processing the whole list, is used as the annotated # text. Otherwise, the brief description is used as-is. If left blank, the # following values are used ($name is automatically replaced with the name of # the entity):The $name class, The $name widget, The $name file, is, provides, # specifies, contains, represents, a, an and the. ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # doxygen will generate a detailed section even if there is only a brief # description. # The default value is: NO. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. # The default value is: NO. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path # before files name in the file list and in the header files. If set to NO the # shortest path that makes the file name unique will be used # The default value is: YES. FULL_PATH_NAMES = NO # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. # Stripping is only done if one of the specified strings matches the left-hand # part of the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the path to # strip. # # Note that you can specify absolute paths here, but also relative paths, which # will be relative from the directory where doxygen is started. # This tag requires that the tag FULL_PATH_NAMES is set to YES. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the # path mentioned in the documentation of a class, which tells the reader which # header file to include in order to use a class. If left blank only the name of # the header file containing the class definition is used. Otherwise one should # specify the list of include paths that are normally passed to the compiler # using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but # less readable) file names. This can be useful is your file systems doesn't # support long names like on DOS, Mac, or CD-ROM. # The default value is: NO. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the # first line (until the first dot) of a Javadoc-style comment as the brief # description. If set to NO, the Javadoc-style will behave just like regular Qt- # style comments (thus requiring an explicit @brief command for a brief # description.) # The default value is: NO. JAVADOC_AUTOBRIEF = NO # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first # line (until the first dot) of a Qt-style comment as the brief description. If # set to NO, the Qt-style will behave just like regular Qt-style comments (thus # requiring an explicit \brief command for a brief description.) # The default value is: NO. QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a # multi-line C++ special comment block (i.e. a block of //! or /// comments) as # a brief description. This used to be the default behavior. The new default is # to treat a multi-line C++ comment block as a detailed description. Set this # tag to YES if you prefer the old behavior instead. # # Note that setting this tag to YES also means that rational rose comments are # not recognized any more. # The default value is: NO. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the # documentation from any documented member that it re-implements. # The default value is: YES. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a # new page for each member. If set to NO, the documentation of a member will be # part of the file/class/namespace that contains it. # The default value is: NO. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen # uses this value to replace tabs by spaces in code fragments. # Minimum value: 1, maximum value: 16, default value: 4. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that act as commands in # the documentation. An alias has the form: # name=value # For example adding # "sideeffect=@par Side Effects:\n" # will allow you to put the command \sideeffect (or @sideeffect) in the # documentation, which will result in a user-defined paragraph with heading # "Side Effects:". You can put \n's in the value part of an alias to insert # newlines. ALIASES = "FIXME=\par Fix Me's:\n" \ "BlueBerry=\if BLUEBERRY" \ "endBlueBerry=\endif" \ "bundlemainpage{1}=\page \1" \ "embmainpage{1}=\page \1" \ "github{2}=<a href=\"https://github.com/MITK/MITK/blob/master/\1\">\2</a>" \ "deprecatedSince{1}=\xrefitem deprecatedSince\1 \"\" \"Functions deprecated as of \1\" \deprecated (as of \1) " \ "minimumCMakeVersion=@MITK_CMAKE_MINIMUM_REQUIRED_VERSION@" \ "minimumQt5Version=@MITK_QT5_MINIMUM_VERSION@" \ "imageMacro{3}=\image html \1 \2 \n \image latex \1 \2 width=\3cm" \ "developersguidemainpage{1}=\page \1 " \ "usersguidemainpage{1}=\page \1 " \ "nondependentPluginLink{3}= \ref \1 \"\3\" " # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. For # instance, some of the names that are used will be different. The list of all # members will be omitted, etc. # The default value is: NO. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or # Python sources only. Doxygen will then generate output that is more tailored # for that language. For instance, namespaces will be presented as packages, # qualified scopes will look different, etc. # The default value is: NO. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources. Doxygen will then generate output that is tailored for Fortran. # The default value is: NO. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for VHDL. # The default value is: NO. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given # extension. Doxygen has a built-in mapping, but you can override or extend it # using this tag. The format is ext=language, where ext is a file extension, and # language is one of the parsers supported by doxygen: IDL, Java, Javascript, # C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: # FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: # Fortran. In the later case the parser tries to guess whether the code is fixed # or free formatted code, this is the default for Fortran type files), VHDL. For # instance to make doxygen treat .inc files as Fortran files (default is PHP), # and .f files as C (default is Fortran), use: inc=Fortran f=C. # # Note For files without extension you can use no_extension as a placeholder. # # Note that for custom extensions you also need to set FILE_PATTERNS otherwise # the files are not read by doxygen. EXTENSION_MAPPING = cmake=c++ # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments # according to the Markdown format, which allows for more readable # documentation. See http://daringfireball.net/projects/markdown/ for details. # The output of markdown processing is further processed by doxygen, so you can # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in # case of backward compatibilities issues. # The default value is: YES. MARKDOWN_SUPPORT = YES # When enabled doxygen tries to link words that correspond to documented # classes, or namespaces to their corresponding documentation. Such a link can # be prevented in individual cases by by putting a % sign in front of the word # or globally by setting AUTOLINK_SUPPORT to NO. # The default value is: YES. AUTOLINK_SUPPORT = YES # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should set this # tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); # versus func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. # The default value is: NO. BUILTIN_STL_SUPPORT = YES # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. # The default value is: NO. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip (see: # http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen # will parse them like normal C++ but will assume all classes use public instead # of private inheritance when no explicit protection keyword is present. # The default value is: NO. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate # getter and setter methods for a property. Setting this option to YES will make # doxygen to replace the get and set methods by a property in the documentation. # This will only work if the methods are indeed getting or setting a simple # type. If this is not the case, or you want to show the methods anyway, you # should set this option to NO. # The default value is: YES. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. # The default value is: NO. DISTRIBUTE_GROUP_DOC = YES # Set the SUBGROUPING tag to YES to allow class member groups of the same type # (for instance a group of public functions) to be put as a subgroup of that # type (e.g. under the Public Functions section). Set it to NO to prevent # subgrouping. Alternatively, this can be done per class using the # \nosubgrouping command. # The default value is: YES. SUBGROUPING = YES # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions # are shown inside the group in which they are included (e.g. using \ingroup) # instead of on a separate page (for HTML and Man pages) or section (for LaTeX # and RTF). # # Note that this feature does not work in combination with # SEPARATE_MEMBER_PAGES. # The default value is: NO. INLINE_GROUPED_CLASSES = NO # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions # with only public data fields or simple typedef fields will be shown inline in # the documentation of the scope in which they are defined (i.e. file, # namespace, or group documentation), provided this scope is documented. If set # to NO, structs, classes, and unions are shown on a separate page (for HTML and # Man pages) or section (for LaTeX and RTF). # The default value is: NO. INLINE_SIMPLE_STRUCTS = NO # When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or # enum is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically be # useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. # The default value is: NO. TYPEDEF_HIDES_STRUCT = NO # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This # cache is used to resolve symbols given their name and scope. Since this can be # an expensive process and often the same symbol appears multiple times in the # code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small # doxygen will become slower. If the cache is too large, memory is wasted. The # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 # symbols. At the end of a run doxygen will report the cache usage and suggest # the optimal cache size from a speed point of view. # Minimum value: 0, maximum value: 9, default value: 0. LOOKUP_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. Private # class members and static file members will be hidden unless the # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. # Note: This will also disable the warnings about undocumented members that are # normally produced when WARNINGS is set to YES. # The default value is: NO. EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES all private members of a class will # be included in the documentation. # The default value is: NO. EXTRACT_PRIVATE = NO # If the EXTRACT_PACKAGE tag is set to YES all members with package or internal # scope will be included in the documentation. # The default value is: NO. EXTRACT_PACKAGE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file will be # included in the documentation. # The default value is: NO. EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined # locally in source files will be included in the documentation. If set to NO # only classes defined in header files are included. Does not have any effect # for Java sources. # The default value is: YES. EXTRACT_LOCAL_CLASSES = @MITK_DOXYGEN_INTERNAL_DOCS@ # This flag is only useful for Objective-C code. When set to YES local methods, # which are defined in the implementation section but not in the interface are # included in the documentation. If set to NO only methods in the interface are # included. # The default value is: NO. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base name of # the file that contains the anonymous namespace. By default anonymous namespace # are hidden. # The default value is: NO. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all # undocumented members inside documented classes or files. If set to NO these # members will be included in the various overviews, but no documentation # section is generated. This option has no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. If set # to NO these classes will be included in the various overviews. This option has # no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend # (class|struct|union) declarations. If set to NO these declarations will be # included in the documentation. # The default value is: NO. HIDE_FRIEND_COMPOUNDS = @MITK_DOXYGEN_HIDE_FRIEND_COMPOUNDS@ # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any # documentation blocks found inside the body of a function. If set to NO these # blocks will be appended to the function's detailed documentation block. # The default value is: NO. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation that is typed after a # \internal command is included. If the tag is set to NO then the documentation # will be excluded. Set it to YES to include the internal documentation. # The default value is: NO. INTERNAL_DOCS = @MITK_DOXYGEN_INTERNAL_DOCS@ # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file # names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. # The default value is: system dependent. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with # their full class and namespace scopes in the documentation. If set to YES the # scope will be hidden. # The default value is: NO. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of # the files that are included by a file in the documentation of that file. # The default value is: YES. SHOW_INCLUDE_FILES = YES # If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each # grouped member an include statement to the documentation, telling the reader # which file to include in order to use the member. # The default value is: NO. SHOW_GROUPED_MEMB_INC = NO # If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include # files with double quotes in the documentation rather than with sharp brackets. # The default value is: NO. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the # documentation for inline members. # The default value is: YES. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the # (detailed) documentation of file and class members alphabetically by member # name. If set to NO the members will appear in declaration order. # The default value is: YES. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief # descriptions of file, namespace and class members alphabetically by member # name. If set to NO the members will appear in declaration order. Note that # this will also influence the order of the classes in the class list. # The default value is: NO. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the # (brief and detailed) documentation of class members so that constructors and # destructors are listed first. If set to NO the constructors will appear in the # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. # Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief # member documentation. # Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting # detailed member documentation. # The default value is: NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy # of group names into alphabetical order. If set to NO the group names will # appear in their defined order. # The default value is: NO. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by # fully-qualified names, including namespaces. If set to NO, the class list will # be sorted only by class name, not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the alphabetical # list. # The default value is: NO. SORT_BY_SCOPE_NAME = YES # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper # type resolution of all parameters of a function it will reject a match between # the prototype and the implementation of a member function even if there is # only one candidate or it is obvious which candidate to choose by doing a # simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still # accept a match between prototype and implementation in such cases. # The default value is: NO. STRICT_PROTO_MATCHING = NO # The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the # todo list. This list is created by putting \todo commands in the # documentation. # The default value is: YES. GENERATE_TODOLIST = @MITK_DOXYGEN_GENERATE_TODOLIST@ # The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the # test list. This list is created by putting \test commands in the # documentation. # The default value is: YES. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug # list. This list is created by putting \bug commands in the documentation. # The default value is: YES. GENERATE_BUGLIST = @MITK_DOXYGEN_GENERATE_BUGLIST@ # The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO) # the deprecated list. This list is created by putting \deprecated commands in # the documentation. # The default value is: YES. GENERATE_DEPRECATEDLIST= @MITK_DOXYGEN_GENERATE_DEPRECATEDLIST@ # The ENABLED_SECTIONS tag can be used to enable conditional documentation # sections, marked by \if <section_label> ... \endif and \cond <section_label> # ... \endcond blocks. ENABLED_SECTIONS = @MITK_DOXYGEN_ENABLED_SECTIONS@ # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the # initial value of a variable or macro / define can have for it to appear in the # documentation. If the initializer consists of more lines than specified here # it will be hidden. Use a value of 0 to hide initializers completely. The # appearance of the value of individual variables and macros / defines can be # controlled using \showinitializer or \hideinitializer command in the # documentation regardless of this setting. # Minimum value: 0, maximum value: 10000, default value: 30. MAX_INITIALIZER_LINES = 0 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at # the bottom of the documentation of classes and structs. If set to YES the list # will mention the files that were used to generate the documentation. # The default value is: YES. SHOW_USED_FILES = YES # Set the SHOW_FILES tag to NO to disable the generation of the Files page. This # will remove the Files entry from the Quick Index and from the Folder Tree View # (if specified). # The default value is: YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces # page. This will remove the Namespaces entry from the Quick Index and from the # Folder Tree View (if specified). # The default value is: YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command command input-file, where command is the value of the # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided # by doxygen. Whatever the program writes to standard output is used as the file # version. For an example see the documentation. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. To create the layout file # that represents doxygen's defaults, run doxygen with the -l option. You can # optionally specify a file name after the option, if omitted DoxygenLayout.xml # will be used as the name of the layout file. # # Note that if you run doxygen from a directory containing a file called # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE # tag is left empty. LAYOUT_FILE = "@MITK_SOURCE_DIR@/Documentation/MITKDoxygenLayout.xml" # The CITE_BIB_FILES tag can be used to specify one or more bib files containing # the reference definitions. This must be a list of .bib files. The .bib # extension is automatically appended if omitted. This requires the bibtex tool # to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. # For LaTeX the style of the bibliography can be controlled using # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the # search path. See also \cite for info how to create references. CITE_BIB_FILES = #--------------------------------------------------------------------------- # Configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated to # standard output by doxygen. If QUIET is set to YES this implies that the # messages are off. # The default value is: NO. QUIET = YES # The WARNINGS tag can be used to turn on/off the warning messages that are # generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES # this implies that the warnings are on. # # Tip: Turn warnings on while writing the documentation. # The default value is: YES. WARNINGS = YES # If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag # will automatically be disabled. # The default value is: YES. WARN_IF_UNDOCUMENTED = YES # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some parameters # in a documented function, or documenting parameters that don't exist or using # markup commands wrongly. # The default value is: YES. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that # are documented, but have no documentation for their parameters or return # value. If set to NO doxygen will only warn about wrong or incomplete parameter # documentation, but not about the absence of documentation. # The default value is: NO. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that doxygen # can produce. The string should contain the $file, $line, and $text tags, which # will be replaced by the file and line number from which the warning originated # and the warning text. Optionally the format may contain $version, which will # be replaced by the version of the file (if it could be obtained via # FILE_VERSION_FILTER) # The default value is: $file:$line: $text. WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning and error # messages should be written. If left blank the output is written to standard # error (stderr). WARN_LOGFILE = #--------------------------------------------------------------------------- # Configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag is used to specify the files and/or directories that contain # documented source files. You may enter file names like myfile.cpp or # directories like /usr/src/myproject. Separate the files or directories with # spaces. # Note: If this tag is empty the current directory is searched. INPUT = @MITK_SOURCE_DIR@ \ @MITK_BINARY_DIR@ \ @MITK_DOXYGEN_ADDITIONAL_INPUT_DIRS@ # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses # libiconv (or the iconv built into libc) for the transcoding. See the libiconv # documentation (see: http://www.gnu.org/software/libiconv) for the list of # possible encodings. # The default value is: UTF-8. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and # *.h) to filter out the source-files in the directories. If left blank the # following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii, # *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, # *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, # *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, # *.qsf, *.as and *.js. FILE_PATTERNS = *.h \ *.dox \ *.md # The RECURSIVE tag can be used to specify whether or not subdirectories should # be searched for input files as well. # The default value is: NO. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should be # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. # # Note that relative paths are relative to the directory from which doxygen is # run. EXCLUDE = "@MITK_SOURCE_DIR@/Utilities/IpFunc/" \ "@MITK_SOURCE_DIR@/Utilities/IpSegmentation/" \ "@MITK_SOURCE_DIR@/Utilities/qtsingleapplication/" \ "@MITK_SOURCE_DIR@/Applications/PluginGenerator/" \ "@MITK_SOURCE_DIR@/Modules/CppMicroServices/core/doc/snippets/" \ "@MITK_SOURCE_DIR@/Modules/CppMicroServices/core/doc/doxygen/standalone/" \ "@MITK_SOURCE_DIR@/Modules/CppMicroServices/core/test/" \ "@MITK_SOURCE_DIR@/Modules/CppMicroServices/core/examples/" \ "@MITK_SOURCE_DIR@/Modules/CppMicroServices/core/src/util/jsoncpp.cpp" \ "@MITK_SOURCE_DIR@/Modules/CppMicroServices/third_party" \ "@MITK_SOURCE_DIR@/CMake/PackageDepends" \ "@MITK_SOURCE_DIR@/CMakeExternals" \ "@MITK_SOURCE_DIR@/Licenses" \ "@MITK_BINARY_DIR@/Documentation/Doxygen" \ "@MITK_BINARY_DIR@/bin/" \ "@MITK_BINARY_DIR@/PT/" \ "@MITK_BINARY_DIR@/GP/" \ "@MITK_BINARY_DIR@/_CPack_Packages/" \ @MITK_DOXYGEN_ADDITIONAL_EXCLUDE_DIRS@ # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded # from the input. # The default value is: NO. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. # # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories for example use the pattern */test/* EXCLUDE_PATTERNS = README* \ moc_* \ ui_* \ qrc_* \ wrap_* \ Register* \ */files.cmake \ */.git/* \ *_p.h \ *Private.* \ */Internal/* \ */internal/* \ */Snippets/* \ */snippets/* \ */testing/* \ */Testing/* \ */test/* \ */resource/* \ "@MITK_BINARY_DIR@/*.cmake" \ @MITK_DOXYGEN_EXCLUDE_PATTERNS@ # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test # # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories use the pattern */test/* EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or directories # that contain example code fragments that are included (see the \include # command). EXAMPLE_PATH = "@MITK_SOURCE_DIR@/Examples/" \ "@MITK_SOURCE_DIR@/Examples/Tutorial/" \ "@MITK_SOURCE_DIR@/Examples/Plugins/" \ "@MITK_SOURCE_DIR@/Examples/QtFreeRender/" \ "@MITK_SOURCE_DIR@/Modules/Core/" \ "@MITK_SOURCE_DIR@/Modules/CppMicroServices/core/doc/snippets/" \ "@MITK_SOURCE_DIR@/Modules/CppMicroServices/core/examples/" \ "@MITK_SOURCE_DIR@/Modules/OpenCL/Documentation/doxygen/snippets/" \ "@MITK_SOURCE_DIR@/Modules/IGT/Tutorial/" \ "@MITK_SOURCE_DIR@/Plugins/org.mitk.gui.common/src/" \ "@MITK_SOURCE_DIR@/Plugins/org.mitk.gui.qt.igtexamples/" \ "@MITK_SOURCE_DIR@/Plugins/org.mitk.gui.qt.igttracking/" # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and # *.h) to filter out the source-files in the directories. If left blank all # files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude commands # irrespective of the value of the RECURSIVE tag. # The default value is: NO. EXAMPLE_RECURSIVE = YES # The IMAGE_PATH tag can be used to specify one or more files or directories # that contain images that are to be included in the documentation (see the # \image command). IMAGE_PATH = "@MITK_SOURCE_DIR@/Documentation/Doxygen/" \ "@MITK_SOURCE_DIR@" # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command: # # <filter> <input-file> # # where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the # name of an input file. Doxygen will then use the output that the filter # program writes to standard output. If FILTER_PATTERNS is specified, this tag # will be ignored. # # Note that the filter must not add or remove lines; it is applied before the # code is scanned, but not when the output code is generated. If lines are added # or removed, the anchors will not be placed correctly. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the # filter if there is a match. The filters are a list of the form: pattern=filter # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how # filters are used. If the FILTER_PATTERNS tag is empty or if none of the # patterns match the file name, INPUT_FILTER is applied. FILTER_PATTERNS = *.cmake=@CMakeDoxygenFilter_EXECUTABLE@ # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER ) will also be used to filter the input files that are used for # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). # The default value is: NO. FILTER_SOURCE_FILES = NO # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file # pattern. A pattern will override the setting for FILTER_PATTERN (if any) and # it is also possible to disable source filtering for a specific pattern using # *.ext= (so without naming a filter). # This tag requires that the tag FILTER_SOURCE_FILES is set to YES. FILTER_SOURCE_PATTERNS = # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that # is part of the input, its contents will be placed on the main page # (index.html). This can be useful if you have a project on for instance GitHub # and want to reuse the introduction page also for the doxygen output. USE_MDFILE_AS_MAINPAGE = #--------------------------------------------------------------------------- # Configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will be # generated. Documented entities will be cross-referenced with these sources. # # Note: To get rid of all source code in the generated output, make sure that # also VERBATIM_HEADERS is set to NO. # The default value is: NO. SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body of functions, # classes and enums directly into the documentation. # The default value is: NO. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any # special comment blocks from generated source code fragments. Normal C, C++ and # Fortran comments will always remain visible. # The default value is: YES. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES then for each documented # function all documented functions referencing it will be listed. # The default value is: NO. REFERENCED_BY_RELATION = YES # If the REFERENCES_RELATION tag is set to YES then for each documented function # all documented entities called/used by that function will be listed. # The default value is: NO. REFERENCES_RELATION = YES # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set # to YES, then the hyperlinks from functions in REFERENCES_RELATION and # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will # link to the documentation. # The default value is: YES. REFERENCES_LINK_SOURCE = YES # If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the # source code will show a tooltip with additional information such as prototype, # brief description and links to the definition and documentation. Since this # will make the HTML file larger and loading of large files a bit slower, you # can opt to disable this feature. # The default value is: YES. # This tag requires that the tag SOURCE_BROWSER is set to YES. SOURCE_TOOLTIPS = YES # If the USE_HTAGS tag is set to YES then the references to source code will # point to the HTML generated by the htags(1) tool instead of doxygen built-in # source browser. The htags tool is part of GNU's global source tagging system # (see http://www.gnu.org/software/global/global.html). You will need version # 4.8.6 or higher. # # To use it do the following: # - Install the latest version of global # - Enable SOURCE_BROWSER and USE_HTAGS in the config file # - Make sure the INPUT points to the root of the source tree # - Run doxygen as normal # # Doxygen will invoke htags (and that will in turn invoke gtags), so these # tools must be available from the command line (i.e. in the search path). # # The result: instead of the source browser generated by doxygen, the links to # source code will now point to the output of htags. # The default value is: NO. # This tag requires that the tag SOURCE_BROWSER is set to YES. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a # verbatim copy of the header file for each class for which an include is # specified. Set to NO to disable this. # See also: Section \class. # The default value is: YES. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # Configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all # compounds will be generated. Enable this if the project contains a lot of # classes, structs, unions or interfaces. # The default value is: YES. ALPHABETICAL_INDEX = YES # The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in # which the alphabetical index list will be split. # Minimum value: 1, maximum value: 20, default value: 5. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. COLS_IN_ALPHA_INDEX = 3 # In case all classes in a project start with a common prefix, all classes will # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag # can be used to specify a prefix (or a list of prefixes) that should be ignored # while generating the index headers. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. IGNORE_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES doxygen will generate HTML output # The default value is: YES. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of # it. # The default directory is: html. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each # generated HTML page (for example: .htm, .php, .asp). # The default value is: .html. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a user-defined HTML header file for # each generated HTML page. If the tag is left blank doxygen will generate a # standard header. # # To get valid HTML the header file that includes any scripts and style sheets # that doxygen needs, which is dependent on the configuration options used (e.g. # the setting GENERATE_TREEVIEW). It is highly recommended to start with a # default header using # doxygen -w html new_header.html new_footer.html new_stylesheet.css # YourConfigFile # and then modify the file new_header.html. See also section "Doxygen usage" # for information on how to generate the default header that doxygen normally # uses. # Note: The header is subject to change so you typically have to regenerate the # default header when upgrading to a newer version of doxygen. For a description # of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each # generated HTML page. If the tag is left blank doxygen will generate a standard # footer. See HTML_HEADER for more information on how to generate a default # footer and what special commands can be used inside the footer. See also # section "Doxygen usage" for information on how to generate the default footer # that doxygen normally uses. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style # sheet that is used by each HTML page. It can be used to fine-tune the look of # the HTML output. If left blank doxygen will generate a default style sheet. # See also section "Doxygen usage" for information on how to generate the style # sheet that doxygen normally uses. # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as # it is more robust and this tag (HTML_STYLESHEET) will in the future become # obsolete. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_STYLESHEET = # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined # cascading style sheets that are included after the standard style sheets # created by doxygen. Using this option one can overrule certain style aspects. # This is preferred over using HTML_STYLESHEET since it does not replace the # standard style sheet and is therefor more robust against future updates. # Doxygen will copy the style sheet files to the output directory. # Note: The order of the extra stylesheet files is of importance (e.g. the last # stylesheet in the list overrules the setting of the previous ones in the # list). For an example see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_STYLESHEET = @MITK_DOXYGEN_STYLESHEET@ # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note # that these files will be copied to the base HTML output directory. Use the # $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these # files. In the HTML_STYLESHEET file, use the file name only. Also note that the # files will be copied as-is; there are no commands or markers available. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_FILES = "@MITK_SOURCE_DIR@/Documentation/Doxygen/mitkLogo.jpg" # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen # will adjust the colors in the stylesheet and background images according to # this color. Hue is specified as an angle on a colorwheel, see # http://en.wikipedia.org/wiki/Hue for more information. For instance the value # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 # purple, and 360 is red again. # Minimum value: 0, maximum value: 359, default value: 220. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors # in the HTML output. For a value of 0 the output will use grayscales only. A # value of 255 will produce the most vivid colors. # Minimum value: 0, maximum value: 255, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_SAT = 100 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the # luminance component of the colors in the HTML output. Values below 100 # gradually make the output lighter, whereas values above 100 make the output # darker. The value divided by 100 is the actual gamma applied, so 80 represents # a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not # change the gamma. # Minimum value: 40, maximum value: 240, default value: 80. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting this # to NO can help when comparing the output of multiple runs. # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_TIMESTAMP = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_DYNAMIC_SECTIONS = @MITK_DOXYGEN_HTML_DYNAMIC_SECTIONS@ # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries # shown in the various tree structured indices initially; the user can expand # and collapse entries dynamically later on. Doxygen will expand the tree to # such a level that at most the specified number of entries are visible (unless # a fully collapsed tree already exceeds this amount). So setting the number of # entries 1 will produce a full collapsed tree by default. 0 is a special value # representing an infinite number of entries and will result in a full expanded # tree by default. # Minimum value: 0, maximum value: 9999, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_INDEX_NUM_ENTRIES = 100 # If the GENERATE_DOCSET tag is set to YES, additional index files will be # generated that can be used as input for Apple's Xcode 3 integrated development # environment (see: http://developer.apple.com/tools/xcode/), introduced with # OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a # Makefile in the HTML output directory. Running make will produce the docset in # that directory and running make install will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at # startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html # for more information. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_DOCSET = NO # This tag determines the name of the docset feed. A documentation feed provides # an umbrella under which multiple documentation sets from a single provider # (such as a company or product suite) can be grouped. # The default value is: Doxygen generated docs. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_FEEDNAME = "Doxygen generated docs" # This tag specifies a string that should uniquely identify the documentation # set bundle. This should be a reverse domain-name style string, e.g. # com.mycompany.MyDocSet. Doxygen will append .docset to the name. # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_BUNDLE_ID = org.doxygen.Project # The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify # the documentation publisher. This should be a reverse domain-name style # string, e.g. com.mycompany.MyDocSet.documentation. # The default value is: org.doxygen.Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. # The default value is: Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three # additional HTML index files: index.hhp, index.hhc, and index.hhk. The # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop # (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on # Windows. # # The HTML Help Workshop contains a compiler that can convert all HTML output # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML # files are now used as the Windows 98 help format, and will replace the old # Windows help format (.hlp) on all Windows platforms in the future. Compressed # HTML files also contain an index, a table of contents, and you can search for # words in the documentation. The HTML workshop also contains a viewer for # compressed HTML files. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_HTMLHELP = NO # The CHM_FILE tag can be used to specify the file name of the resulting .chm # file. You can add a path in front of the file if the result should not be # written to the html output directory. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_FILE = # The HHC_LOCATION tag can be used to specify the location (absolute path # including file name) of the HTML help compiler ( hhc.exe). If non-empty # doxygen will try to run the HTML help compiler on the generated index.hhp. # The file has to be specified with full path. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. HHC_LOCATION = # The GENERATE_CHI flag controls if a separate .chi index file is generated ( # YES) or that it should be included in the master .chm file ( NO). # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. GENERATE_CHI = NO # The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc) # and project file content. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_INDEX_ENCODING = # The BINARY_TOC flag controls whether a binary table of contents is generated ( # YES) or a normal table of contents ( NO) in the .chm file. Furthermore it # enables the Previous and Next buttons. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members to # the table of contents of the HTML help documentation and to the tree view. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help # (.qch) of the generated HTML documentation. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_QHP = @MITK_DOXYGEN_GENERATE_QHP@ # If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify # the file name of the resulting .qch file. The path specified is relative to # the HTML output folder. # This tag requires that the tag GENERATE_QHP is set to YES. QCH_FILE = @MITK_DOXYGEN_QCH_FILE@ # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help # Project output. For more information please see Qt Help Project / Namespace # (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_QHP is set to YES. QHP_NAMESPACE = "org.mitk" # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt # Help Project output. For more information please see Qt Help Project / Virtual # Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- # folders). # The default value is: doc. # This tag requires that the tag GENERATE_QHP is set to YES. QHP_VIRTUAL_FOLDER = MITK # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom # filter to add. For more information please see Qt Help Project / Custom # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- # filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_NAME = # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see Qt Help Project / Custom # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- # filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's filter section matches. Qt Help Project / Filter Attributes (see: # http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_SECT_FILTER_ATTRS = # The QHG_LOCATION tag can be used to specify the location of Qt's # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the # generated .qhp file. # This tag requires that the tag GENERATE_QHP is set to YES. QHG_LOCATION = @QT_HELPGENERATOR_EXECUTABLE@ # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be # generated, together with the HTML files, they form an Eclipse help plugin. To # install this plugin and make it available under the help contents menu in # Eclipse, the contents of the directory containing the HTML and XML files needs # to be copied into the plugins directory of eclipse. The name of the directory # within the plugins directory should be the same as the ECLIPSE_DOC_ID value. # After copying Eclipse needs to be restarted before the help appears. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_ECLIPSEHELP = NO # A unique identifier for the Eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have this # name. Each documentation set should have its own identifier. # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. ECLIPSE_DOC_ID = org.doxygen.Project # If you want full control over the layout of the generated HTML pages it might # be necessary to disable the index and replace it with your own. The # DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top # of each HTML page. A value of NO enables the index and the value YES disables # it. Since the tabs in the index contain the same information as the navigation # tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. DISABLE_INDEX = NO # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. If the tag # value is set to YES, a side panel will be generated containing a tree-like # index structure (just like the one that is generated for HTML Help). For this # to work a browser that supports JavaScript, DHTML, CSS and frames is required # (i.e. any modern browser). Windows users are probably better off using the # HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can # further fine-tune the look of the index. As an example, the default style # sheet generated by doxygen has an example that shows how to put an image at # the root of the tree instead of the PROJECT_NAME. Since the tree basically has # the same information as the tab index, you could consider setting # DISABLE_INDEX to YES when enabling this option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_TREEVIEW = YES # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that # doxygen will group on one line in the generated HTML documentation. # # Note that a value of 0 will completely suppress the enum values from appearing # in the overview section. # Minimum value: 0, maximum value: 20, default value: 4. # This tag requires that the tag GENERATE_HTML is set to YES. ENUM_VALUES_PER_LINE = 4 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used # to set the initial width (in pixels) of the frame in which the tree is shown. # Minimum value: 0, maximum value: 1500, default value: 250. # This tag requires that the tag GENERATE_HTML is set to YES. TREEVIEW_WIDTH = 300 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to # external symbols imported via tag files in a separate window. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. EXT_LINKS_IN_WINDOW = NO # Use this tag to change the font size of LaTeX formulas included as images in # the HTML documentation. When you change the font size after a successful # doxygen run you need to manually remove any form_*.png images from the HTML # output directory to force them to be regenerated. # Minimum value: 8, maximum value: 50, default value: 10. # This tag requires that the tag GENERATE_HTML is set to YES. FORMULA_FONTSIZE = 10 # Use the FORMULA_TRANPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are not # supported properly for IE 6.0, but are supported on all modern browsers. # # Note that when changing this option you need to delete any form_*.png files in # the HTML output directory before the changes have effect. # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. FORMULA_TRANSPARENT = YES # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see # http://www.mathjax.org) which uses client side Javascript for the rendering # instead of using prerendered bitmaps. Use this if you do not have LaTeX # installed or if you want to formulas look prettier in the HTML output. When # enabled you may also need to install MathJax separately and configure the path # to it using the MATHJAX_RELPATH option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. USE_MATHJAX = YES # When MathJax is enabled you can set the default output format to be used for # the MathJax output. See the MathJax site (see: # http://docs.mathjax.org/en/latest/output.html) for more details. # Possible values are: HTML-CSS (which is slower, but has the best # compatibility), NativeMML (i.e. MathML) and SVG. # The default value is: HTML-CSS. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_FORMAT = HTML-CSS # When MathJax is enabled you need to specify the location relative to the HTML # output directory using the MATHJAX_RELPATH option. The destination directory # should contain the MathJax.js script. For instance, if the mathjax directory # is located at the same level as the HTML output directory, then # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax # Content Delivery Network so you can quickly see the result without installing # MathJax. However, it is strongly recommended to install a local copy of # MathJax from http://www.mathjax.org before deployment. # The default value is: http://cdn.mathjax.org/mathjax/latest. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_RELPATH = http://www.mathjax.org/mathjax # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax # extension names that should be enabled during MathJax rendering. For example # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_EXTENSIONS = # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces # of code that will be used on startup of the MathJax code. See the MathJax site # (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an # example see the documentation. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_CODEFILE = # When the SEARCHENGINE tag is enabled doxygen will generate a search box for # the HTML output. The underlying search engine uses javascript and DHTML and # should work on any modern browser. Note that when using HTML help # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) # there is already a search function so this one should typically be disabled. # For large projects the javascript based search engine can be slow, then # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to # search using the keyboard; to jump to the search box use <access key> + S # (what the <access key> is depends on the OS and browser, but it is typically # <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down # key> to jump into the search results window, the results can be navigated # using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel # the search. The filter options can be selected when the cursor is inside the # search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys> # to select a filter and <Enter> or <escape> to activate or cancel the filter # option. # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. SEARCHENGINE = YES # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a web server instead of a web client using Javascript. There # are two flavors of web server based searching depending on the EXTERNAL_SEARCH # setting. When disabled, doxygen will generate a PHP script for searching and # an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing # and searching needs to be provided by external tools. See the section # "External Indexing and Searching" for details. # The default value is: NO. # This tag requires that the tag SEARCHENGINE is set to YES. SERVER_BASED_SEARCH = NO # When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP # script for searching. Instead the search results are written to an XML file # which needs to be processed by an external indexer. Doxygen will invoke an # external search engine pointed to by the SEARCHENGINE_URL option to obtain the # search results. # # Doxygen ships with an example indexer ( doxyindexer) and search engine # (doxysearch.cgi) which are based on the open source search engine library # Xapian (see: http://xapian.org/). # # See the section "External Indexing and Searching" for details. # The default value is: NO. # This tag requires that the tag SEARCHENGINE is set to YES. EXTERNAL_SEARCH = NO # The SEARCHENGINE_URL should point to a search engine hosted by a web server # which will return the search results when EXTERNAL_SEARCH is enabled. # # Doxygen ships with an example indexer ( doxyindexer) and search engine # (doxysearch.cgi) which are based on the open source search engine library # Xapian (see: http://xapian.org/). See the section "External Indexing and # Searching" for details. # This tag requires that the tag SEARCHENGINE is set to YES. SEARCHENGINE_URL = # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed # search data is written to a file for indexing by an external tool. With the # SEARCHDATA_FILE tag the name of this file can be specified. # The default file is: searchdata.xml. # This tag requires that the tag SEARCHENGINE is set to YES. SEARCHDATA_FILE = searchdata.xml # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the # EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is # useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple # projects and redirect the results back to the right project. # This tag requires that the tag SEARCHENGINE is set to YES. EXTERNAL_SEARCH_ID = # The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen # projects other than the one defined by this configuration file, but that are # all added to the same external search index. Each project needs to have a # unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of # to a relative location where the documentation can be found. The format is: # EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ... # This tag requires that the tag SEARCHENGINE is set to YES. EXTRA_SEARCH_MAPPINGS = #--------------------------------------------------------------------------- # Configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output. # The default value is: YES. GENERATE_LATEX = NO # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of # it. # The default directory is: latex. # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. # # Note that when enabling USE_PDFLATEX this option is only used for generating # bitmaps for formulas in the HTML output, but not in the Makefile that is # written to the output directory. # The default file is: latex. # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate # index for LaTeX. # The default file is: makeindex. # This tag requires that the tag GENERATE_LATEX is set to YES. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES doxygen generates more compact LaTeX # documents. This may be useful for small projects and may help to save some # trees in general. # The default value is: NO. # This tag requires that the tag GENERATE_LATEX is set to YES. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used by the # printer. # Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x # 14 inches) and executive (7.25 x 10.5 inches). # The default value is: a4. # This tag requires that the tag GENERATE_LATEX is set to YES. PAPER_TYPE = a4 # The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names # that should be included in the LaTeX output. To get the times font for # instance you can specify # EXTRA_PACKAGES=times # If left blank no extra packages will be included. # This tag requires that the tag GENERATE_LATEX is set to YES. EXTRA_PACKAGES = amssymb # The LATEX_HEADER tag can be used to specify a personal LaTeX header for the # generated LaTeX document. The header should contain everything until the first # chapter. If it is left blank doxygen will generate a standard header. See # section "Doxygen usage" for information on how to let doxygen write the # default header to a separate file. # # Note: Only use a user-defined header if you know what you are doing! The # following commands have a special meaning inside the header: $title, # $datetime, $date, $doxygenversion, $projectname, $projectnumber, # $projectbrief, $projectlogo. Doxygen will replace $title with the empy string, # for the replacement values of the other commands the user is refered to # HTML_HEADER. # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_HEADER = # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the # generated LaTeX document. The footer should contain everything after the last # chapter. If it is left blank doxygen will generate a standard footer. See # LATEX_HEADER for more information on how to generate a default footer and what # special commands can be used inside the footer. # # Note: Only use a user-defined footer if you know what you are doing! # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_FOOTER = # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the LATEX_OUTPUT output # directory. Note that the files will be copied as-is; there are no commands or # markers available. # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_EXTRA_FILES = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is # prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will # contain links (just like the HTML output) instead of page references. This # makes the output suitable for online browsing using a PDF viewer. # The default value is: YES. # This tag requires that the tag GENERATE_LATEX is set to YES. PDF_HYPERLINKS = NO # If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate # the PDF file directly from the LaTeX files. Set this option to YES to get a # higher quality PDF documentation. # The default value is: YES. # This tag requires that the tag GENERATE_LATEX is set to YES. USE_PDFLATEX = NO # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode # command to the generated LaTeX files. This will instruct LaTeX to keep running # if errors occur, instead of asking the user for help. This option is also used # when generating formulas in HTML. # The default value is: NO. # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_BATCHMODE = NO # If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the # index chapters (such as File Index, Compound Index, etc.) in the output. # The default value is: NO. # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_HIDE_INDICES = NO # If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source # code with syntax highlighting in the LaTeX output. # # Note that which sources are shown also depends on other settings such as # SOURCE_BROWSER. # The default value is: NO. # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_SOURCE_CODE = NO # The LATEX_BIB_STYLE tag can be used to specify the style to use for the # bibliography, e.g. plainnat, or ieeetr. See # http://en.wikipedia.org/wiki/BibTeX and \cite for more info. # The default value is: plain. # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_BIB_STYLE = plain #--------------------------------------------------------------------------- # Configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES doxygen will generate RTF output. The # RTF output is optimized for Word 97 and may not look too pretty with other RTF # readers/editors. # The default value is: NO. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of # it. # The default directory is: rtf. # This tag requires that the tag GENERATE_RTF is set to YES. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES doxygen generates more compact RTF # documents. This may be useful for small projects and may help to save some # trees in general. # The default value is: NO. # This tag requires that the tag GENERATE_RTF is set to YES. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will # contain hyperlink fields. The RTF file will contain links (just like the HTML # output) instead of page references. This makes the output suitable for online # browsing using Word or some other Word compatible readers that support those # fields. # # Note: WordPad (write) and others do not support links. # The default value is: NO. # This tag requires that the tag GENERATE_RTF is set to YES. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's config # file, i.e. a series of assignments. You only have to provide replacements, # missing definitions are set to their default value. # # See also section "Doxygen usage" for information on how to generate the # default style sheet that doxygen normally uses. # This tag requires that the tag GENERATE_RTF is set to YES. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an RTF document. Syntax is # similar to doxygen's config file. A template extensions file can be generated # using doxygen -e rtf extensionFile. # This tag requires that the tag GENERATE_RTF is set to YES. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # Configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES doxygen will generate man pages for # classes and files. # The default value is: NO. GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. If a # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of # it. A directory man3 will be created inside the directory specified by # MAN_OUTPUT. # The default directory is: man. # This tag requires that the tag GENERATE_MAN is set to YES. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to the generated # man pages. In case the manual section does not start with a number, the number # 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is # optional. # The default value is: .3. # This tag requires that the tag GENERATE_MAN is set to YES. MAN_EXTENSION = .3 # The MAN_SUBDIR tag determines the name of the directory created within # MAN_OUTPUT in which the man pages are placed. If defaults to man followed by # MAN_EXTENSION with the initial . removed. # This tag requires that the tag GENERATE_MAN is set to YES. MAN_SUBDIR = # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it # will generate one additional man file for each entity documented in the real # man page(s). These additional files only source the real man page, but without # them the man command would be unable to find the correct page. # The default value is: NO. # This tag requires that the tag GENERATE_MAN is set to YES. MAN_LINKS = NO #--------------------------------------------------------------------------- # Configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES doxygen will generate an XML file that # captures the structure of the code including all documentation. # The default value is: NO. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. If a # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of # it. # The default directory is: xml. # This tag requires that the tag GENERATE_XML is set to YES. XML_OUTPUT = xml # If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program # listings (including syntax highlighting and cross-referencing information) to # the XML output. Note that enabling this will significantly increase the size # of the XML output. # The default value is: YES. # This tag requires that the tag GENERATE_XML is set to YES. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # Configuration options related to the DOCBOOK output #--------------------------------------------------------------------------- # If the GENERATE_DOCBOOK tag is set to YES doxygen will generate Docbook files # that can be used to generate PDF. # The default value is: NO. GENERATE_DOCBOOK = NO # The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be put in # front of it. # The default directory is: docbook. # This tag requires that the tag GENERATE_DOCBOOK is set to YES. DOCBOOK_OUTPUT = docbook # If the DOCBOOK_PROGRAMLISTING tag is set to YES doxygen will include the # program listings (including syntax highlighting and cross-referencing # information) to the DOCBOOK output. Note that enabling this will significantly # increase the size of the DOCBOOK output. # The default value is: NO. # This tag requires that the tag GENERATE_DOCBOOK is set to YES. DOCBOOK_PROGRAMLISTING = NO #--------------------------------------------------------------------------- # Configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen # Definitions (see http://autogen.sf.net) file that captures the structure of # the code including all documentation. Note that this feature is still # experimental and incomplete at the moment. # The default value is: NO. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # Configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES doxygen will generate a Perl module # file that captures the structure of the code including all documentation. # # Note that this feature is still experimental and incomplete at the moment. # The default value is: NO. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES doxygen will generate the necessary # Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI # output from the Perl module output. # The default value is: NO. # This tag requires that the tag GENERATE_PERLMOD is set to YES. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be nicely # formatted so it can be parsed by a human reader. This is useful if you want to # understand what is going on. On the other hand, if this tag is set to NO the # size of the Perl module output will be much smaller and Perl will parse it # just the same. # The default value is: YES. # This tag requires that the tag GENERATE_PERLMOD is set to YES. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file are # prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful # so different doxyrules.make files included by the same Makefile don't # overwrite each other's variables. # This tag requires that the tag GENERATE_PERLMOD is set to YES. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES doxygen will evaluate all # C-preprocessor directives found in the sources and include files. # The default value is: YES. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES doxygen will expand all macro names # in the source code. If set to NO only conditional compilation will be # performed. Macro expansion can be done in a controlled way by setting # EXPAND_ONLY_PREDEF to YES. # The default value is: NO. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. MACRO_EXPANSION = YES # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then # the macro expansion is limited to the macros specified with the PREDEFINED and # EXPAND_AS_DEFINED tags. # The default value is: NO. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES the includes files in the # INCLUDE_PATH will be searched if a #include is found. # The default value is: YES. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by the # preprocessor. # This tag requires that the tag SEARCH_INCLUDES is set to YES. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will be # used. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that are # defined before the preprocessor is started (similar to the -D option of e.g. # gcc). The argument of the tag is a list of macros of the form: name or # name=definition (no spaces). If the definition and the "=" are omitted, "=1" # is assumed. To prevent a macro definition from being undefined via #undef or # recursively expanded use the := operator instead of the = operator. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. PREDEFINED = itkNotUsed(x)= \ "itkSetMacro(name,type)=virtual void Set##name (type _arg);" \ "itkGetMacro(name,type)=virtual type Get##name ();" \ "itkGetConstMacro(name,type)=virtual type Get##name () const;" \ "itkSetStringMacro(name)=virtual void Set##name (const char* _arg);" \ "itkGetStringMacro(name)=virtual const char* Get##name () const;" \ "itkSetClampMacro(name,type,min,max)=virtual void Set##name (type _arg);" \ "itkSetObjectMacro(name,type)=virtual void Set##name (type* _arg);" \ "itkGetObjectMacro(name,type)=virtual type* Get##name ();" \ "itkSetConstObjectMacro(name,type)=virtual void Set##name ( const type* _arg);" \ "itkGetConstObjectMacro(name,type)=virtual const type* Get##name ();" \ "itkGetConstReferenceMacro(name,type)=virtual const type& Get##name ();" \ "itkGetConstReferenceObjectMacro(name,type)=virtual const type::Pointer& Get##name () const;" \ "itkBooleanMacro(name)=virtual void name##On (); virtual void name##Off ();" \ "itkSetVector2Macro(name,type)=virtual void Set##name (type _arg1, type _arg2) virtual void Set##name (type _arg[2]);" \ "itkGetVector2Macro(name,type)=virtual type* Get##name () const; virtual void Get##name (type& _arg1, type& _arg2) const; virtual void Get##name (type _arg[2]) const;" \ "itkSetVector3Macro(name,type)=virtual void Set##name (type _arg1, type _arg2, type _arg3) virtual void Set##name (type _arg[3]);" \ "itkGetVector3Macro(name,type)=virtual type* Get##name () const; virtual void Get##name (type& _arg1, type& _arg2, type& _arg3) const; virtual void Get##name (type _arg[3]) const;" \ "itkSetVector4Macro(name,type)=virtual void Set##name (type _arg1, type _arg2, type _arg3, type _arg4) virtual void Set##name (type _arg[4]);" \ "itkGetVector4Macro(name,type)=virtual type* Get##name () const; virtual void Get##name (type& _arg1, type& _arg2, type& _arg3, type& _arg4) const; virtual void Get##name (type _arg[4]) const;" \ "itkSetVector6Macro(name,type)=virtual void Set##name (type _arg1, type _arg2, type _arg3, type _arg4, type _arg5, type _arg6) virtual void Set##name (type _arg[6]);" \ "itkGetVector6Macro(name,type)=virtual type* Get##name () const; virtual void Get##name (type& _arg1, type& _arg2, type& _arg3, type& _arg4, type& _arg5, type& _arg6) const; virtual void Get##name (type _arg[6]) const;" \ "itkSetVectorMacro(name,type,count)=virtual void Set##name(type data[]);" \ "itkGetVectorMacro(name,type,count)=virtual type* Get##name () const;" \ "itkNewMacro(type)=static Pointer New();" \ "itkFactorylessNewMacro(type)=static Pointer New();" \ "itkCloneMacro(type)=Pointer Clone() const;" \ "itkTypeMacro(thisClass,superclass)=virtual const char *GetClassName() const;" \ "itkConceptMacro(name,concept)=enum { name = 0 };" \ "ITK_NUMERIC_LIMITS=std::numeric_limits" \ "ITK_TYPENAME=typename" \ "FEM_ABSTRACT_CLASS(thisClass,parentClass)=public: /** Standard Self typedef.*/ typedef thisClass Self; /** Standard Superclass typedef. */ typedef parentClass Superclass; /** Pointer or SmartPointer to an object. */ typedef Self* Pointer; /** Const pointer or SmartPointer to an object. */ typedef const Self* ConstPointer; private:" \ "FEM_CLASS(thisClass,parentClass)=FEM_ABSTRACT_CLASS(thisClass,parentClass) public: /** Create a new object from the existing one */ virtual Baseclass::Pointer Clone() const; /** Class ID for FEM object factory */ static const int CLID; /** Virtual function to access the class ID */ virtual int ClassID() const { return CLID; /** Object creation in an itk compatible way */ static Self::Pointer New() { return new Self(); } private:" \ FREEVERSION \ ERROR_CHECKING \ HAS_TIFF \ HAS_JPEG \ HAS_NETLIB \ HAS_PNG \ HAS_ZLIB \ HAS_GLUT \ HAS_QT \ VCL_USE_NATIVE_STL=1 \ VCL_USE_NATIVE_COMPLEX=1 \ VCL_HAS_BOOL=1 \ VXL_BIG_ENDIAN=1 \ VXL_LITTLE_ENDIAN=0 \ VNL_DLL_DATA= \ size_t=vcl_size_t \ "US_PREPEND_NAMESPACE(x)=us::x" \ "US_BEGIN_NAMESPACE= namespace us {" \ "US_END_NAMESPACE=}" \ "US_BASECLASS_NAME=itk::LightObject" \ US_EXPORT= \ "DEPRECATED(func)=func" \ @US_PLATFORM@ # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this # tag can be used to specify a list of macro names that should be expanded. The # macro definition that is found in the sources will be used. Use the PREDEFINED # tag if you want to use a different macro definition that overrules the # definition found in the source code. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will # remove all references to function-like macros that are alone on a line, have # an all uppercase name, and do not end with a semicolon. Such function macros # are typically used for boiler-plate code, and will confuse the parser if not # removed. # The default value is: YES. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration options related to external references #--------------------------------------------------------------------------- # The TAGFILES tag can be used to specify one or more tag files. For each tag # file the location of the external documentation should be added. The format of # a tag file without this location is as follows: # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # TAGFILES = file1=loc1 "file2 = loc2" ... # where loc1 and loc2 can be relative or absolute paths or URLs. See the # section "Linking to external documentation" for more information about the use # of tag files. # Note: Each tag file must have a unique name (where the name does NOT include # the path). If a tag file is not located in the directory in which doxygen is # run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create a # tag file that is based on the input files it reads. See section "Linking to # external documentation" for more information about the usage of tag files. GENERATE_TAGFILE = @MITK_DOXYGEN_TAGFILE_NAME@ # If the ALLEXTERNALS tag is set to YES all external class will be listed in the # class index. If set to NO only the inherited external classes will be listed. # The default value is: NO. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in # the modules index. If set to NO, only the current project's groups will be # listed. # The default value is: YES. EXTERNAL_GROUPS = NO # If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in # the related pages index. If set to NO, only the current project's pages will # be listed. # The default value is: YES. EXTERNAL_PAGES = YES #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram # (in HTML and LaTeX) for classes with base or super classes. Setting the tag to # NO turns the diagrams off. Note that this option also works with HAVE_DOT # disabled, but it is recommended to install and use dot, since it yields more # powerful graphs. # The default value is: YES. CLASS_DIAGRAMS = YES # You can include diagrams made with dia in doxygen documentation. Doxygen will # then run dia to produce the diagram and insert it in the documentation. The # DIA_PATH tag allows you to specify the directory where the dia binary resides. # If left empty dia is assumed to be found in the default search path. DIA_PATH = # If set to YES, the inheritance and collaboration graphs will hide inheritance # and usage relations if the target is undocumented or is not a class. # The default value is: YES. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz (see: # http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent # Bell Labs. The other options in this section have no effect if this option is # set to NO # The default value is: NO. HAVE_DOT = @HAVE_DOT@ # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed # to run in parallel. When set to 0 doxygen will base this on the number of # processors available in the system. You can set it explicitly to a value # larger than 0 to get control over the balance between CPU load and processing # speed. # Minimum value: 0, maximum value: 32, default value: 0. # This tag requires that the tag HAVE_DOT is set to YES. DOT_NUM_THREADS = @MITK_DOXYGEN_DOT_NUM_THREADS@ # When you want a differently looking font in the dot files that doxygen # generates you can specify the font name using DOT_FONTNAME. You need to make # sure dot is able to find the font, which can be done by putting it in a # standard location or by setting the DOTFONTPATH environment variable or by # setting DOT_FONTPATH to the directory containing the font. # The default value is: Helvetica. # This tag requires that the tag HAVE_DOT is set to YES. DOT_FONTNAME = Helvetica # The DOT_FONTSIZE tag can be used to set the size (in points) of the font of # dot graphs. # Minimum value: 4, maximum value: 24, default value: 10. # This tag requires that the tag HAVE_DOT is set to YES. DOT_FONTSIZE = 10 # By default doxygen will tell dot to use the default font as specified with # DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set # the path where dot can find it using this tag. # This tag requires that the tag HAVE_DOT is set to YES. DOT_FONTPATH = # If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for # each documented class showing the direct and indirect inheritance relations. # Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a # graph for each documented class showing the direct and indirect implementation # dependencies (inheritance, containment, and class references variables) of the # class with other documented classes. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for # groups, showing the direct groups dependencies. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. # The default value is: NO. # This tag requires that the tag HAVE_DOT is set to YES. UML_LOOK = @MITK_DOXYGEN_UML_LOOK@ # If the UML_LOOK tag is enabled, the fields and methods are shown inside the # class node. If there are many fields or methods and many nodes the graph may # become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the # number of items for each type to make the size more manageable. Set this to 0 # for no limit. Note that the threshold may be exceeded by 50% before the limit # is enforced. So when you set the threshold to 10, up to 15 fields may appear, # but if the number exceeds 15, the total amount of fields shown is limited to # 10. # Minimum value: 0, maximum value: 100, default value: 10. # This tag requires that the tag HAVE_DOT is set to YES. UML_LIMIT_NUM_FIELDS = 10 # If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and # collaboration graphs will show the relations between templates and their # instances. # The default value is: NO. # This tag requires that the tag HAVE_DOT is set to YES. TEMPLATE_RELATIONS = YES # If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to # YES then doxygen will generate a graph for each documented file showing the # direct and indirect include dependencies of the file with other documented # files. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. INCLUDE_GRAPH = NO # If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are # set to YES then doxygen will generate a graph for each documented file showing # the direct and indirect include dependencies of the file with other documented # files. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. INCLUDED_BY_GRAPH = NO # If the CALL_GRAPH tag is set to YES then doxygen will generate a call # dependency graph for every global function or class method. # # Note that enabling this option will significantly increase the time of a run. # So in most cases it will be better to enable call graphs for selected # functions only using the \callgraph command. # The default value is: NO. # This tag requires that the tag HAVE_DOT is set to YES. CALL_GRAPH = NO # If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller # dependency graph for every global function or class method. # # Note that enabling this option will significantly increase the time of a run. # So in most cases it will be better to enable caller graphs for selected # functions only using the \callergraph command. # The default value is: NO. # This tag requires that the tag HAVE_DOT is set to YES. CALLER_GRAPH = NO # If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical # hierarchy of all classes instead of a textual one. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. GRAPHICAL_HIERARCHY = NO # If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the # dependencies a directory has on other directories in a graphical way. The # dependency relations are determined by the #include relations between the # files in the directories. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. # Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order # to make the SVG files visible in IE 9+ (other browsers do not have this # requirement). # Possible values are: png, jpg, gif and svg. # The default value is: png. # This tag requires that the tag HAVE_DOT is set to YES. DOT_IMAGE_FORMAT = png # If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to # enable generation of interactive SVG images that allow zooming and panning. # # Note that this requires a modern browser other than Internet Explorer. Tested # and working are Firefox, Chrome, Safari, and Opera. # Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make # the SVG files visible. Older versions of IE do not have SVG support. # The default value is: NO. # This tag requires that the tag HAVE_DOT is set to YES. INTERACTIVE_SVG = NO # The DOT_PATH tag can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. # This tag requires that the tag HAVE_DOT is set to YES. DOT_PATH = "@DOXYGEN_DOT_PATH@" # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the \dotfile # command). # This tag requires that the tag HAVE_DOT is set to YES. DOTFILE_DIRS = # The MSCFILE_DIRS tag can be used to specify one or more directories that # contain msc files that are included in the documentation (see the \mscfile # command). MSCFILE_DIRS = # The DIAFILE_DIRS tag can be used to specify one or more directories that # contain dia files that are included in the documentation (see the \diafile # command). DIAFILE_DIRS = # When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the # path where java can find the plantuml.jar file. If left blank, it is assumed # PlantUML is not used or called during a preprocessing step. Doxygen will # generate a warning when it encounters a \startuml command in this case and # will not generate output for the diagram. # This tag requires that the tag HAVE_DOT is set to YES. PLANTUML_JAR_PATH = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes # that will be shown in the graph. If the number of nodes in a graph becomes # larger than this value, doxygen will truncate the graph, which is visualized # by representing a node as a red box. Note that doxygen if the number of direct # children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that # the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. # Minimum value: 0, maximum value: 10000, default value: 50. # This tag requires that the tag HAVE_DOT is set to YES. -DOT_GRAPH_MAX_NODES = 50 +DOT_GRAPH_MAX_NODES = 120 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs # generated by dot. A depth value of 3 means that only nodes reachable from the # root by following a path via at most 3 edges will be shown. Nodes that lay # further from the root node will be omitted. Note that setting this option to 1 # or 2 may greatly reduce the computation time needed for large code bases. Also # note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. # Minimum value: 0, maximum value: 1000, default value: 0. # This tag requires that the tag HAVE_DOT is set to YES. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, because dot on Windows does not seem # to support this out of the box. # # Warning: Depending on the platform used, enabling this option may lead to # badly anti-aliased labels on the edges of a graph (i.e. they become hard to # read). # The default value is: NO. # This tag requires that the tag HAVE_DOT is set to YES. DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) support # this, this feature is disabled by default. # The default value is: NO. # This tag requires that the tag HAVE_DOT is set to YES. DOT_MULTI_TARGETS = NO # If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page # explaining the meaning of the various boxes and arrows in the dot generated # graphs. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES doxygen will remove the intermediate dot # files that are used to generate the various graphs. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. DOT_CLEANUP = YES diff --git a/Plugins/org.blueberry.core.commands/src/berryINamedHandleStateIds.h b/Plugins/org.blueberry.core.commands/src/berryINamedHandleStateIds.h index 34730d9443..c7ab29a8e2 100755 --- a/Plugins/org.blueberry.core.commands/src/berryINamedHandleStateIds.h +++ b/Plugins/org.blueberry.core.commands/src/berryINamedHandleStateIds.h @@ -1,48 +1,48 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYINAMEDHANDLESTATEIDS_H_ #define BERRYINAMEDHANDLESTATEIDS_H_ #include <QString> namespace berry { /** * <p> * State identifiers that are understood by named handle objects that implement * {@link IObjectWithState}. * </p> * <p> * Clients may implement or extend this class. * </p> * */ struct INamedHandleStateIds { /** * The state id used for overriding the description of a named handle - * object. This state's value must return a {@link String}. + * object. This state's value must return a \c String . */ static const QString DESCRIPTION; // = "DESCRIPTION"; /** * The state id used for overriding the name of a named handle object. This - * state's value must return a {@link String}. + * state's value must return a \c String . */ static const QString NAME; // = "NAME"; }; } #endif /* BERRYINAMEDHANDLESTATEIDS_H_ */ diff --git a/Plugins/org.blueberry.core.commands/src/berryIParameterValueConverter.h b/Plugins/org.blueberry.core.commands/src/berryIParameterValueConverter.h index d69f77d166..487a0f66ee 100755 --- a/Plugins/org.blueberry.core.commands/src/berryIParameterValueConverter.h +++ b/Plugins/org.blueberry.core.commands/src/berryIParameterValueConverter.h @@ -1,104 +1,89 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYABSTRACTPARAMETERVALUECONVERTER_H_ #define BERRYABSTRACTPARAMETERVALUECONVERTER_H_ #include <berryObject.h> #include <berryMacros.h> #include <org_blueberry_core_commands_Export.h> namespace berry { /** * <p> * Supports conversion between objects and strings for command parameter values. * Extenders must produce strings that identify objects (of a specific command * parameter type) as well as consume the strings to locate and return the * objects they identify. * </p> * <p> * This class offers multiple handlers of a command a consistent way of * converting string parameter values into the objects that the handlers would * prefer to deal with. This class also gives clients a way to serialize * object parameters as strings so that entire parameterized commands can be * serialized, stored and later deserialized and executed. * </p> * <p> * This class will typically be extended so the subclass can be referenced from * the <code>converter</code> attribute of the * <code>commandParameterType</code> elemement of the * <code>org.blueberry.ui.commands</code> extension-point. Objects implementing * this interface may also be passed directly to - * {@link ParameterType#Define(IParameterValueConverter::Pointer)} by - * clients. + * {@link ParameterType#Define} by clients. * </p> * * @see ParameterType#Define(IParameterValueConverter::Pointer) * @see ParameterizedCommand#Serialize() */ struct BERRY_COMMANDS IParameterValueConverter { virtual ~IParameterValueConverter(); - /** - * Returns whether the provided value is compatible with this parameter - * value converter. An object is compatible with a converter if the object is an - * instance of the class defined in the <code>type</code> attribute of - * the <code>commandParameterType</code> element. - * - * @param value - * an object to check for compatibility with this parameter type; - * may be <code>null</code>. - * @return <code>true</code> if the value is compatible with this converter, - * <code>false</code> otherwise - */ - //virtual bool IsCompatible(const Object::ConstPointer value) const = 0; - /** * Converts a string encoded command parameter value into the parameter * value object. * * @param parameterValue * a command parameter value string describing an object; may be * <code>null</code> * @return the object described by the command parameter value string; may * be <code>null</code> * @throws ParameterValueConversionException * if an object cannot be produced from the * <code>parameterValue</code> string */ virtual Object::Pointer ConvertToObject(const QString& parameterValue) = 0; /** * Converts a command parameter value object into a string that encodes a * reference to the object or serialization of the object. * * @param parameterValue * an object to convert into an identifying string; may be * <code>null</code> * @return a string describing the provided object; may be <code>null</code> * @throws ParameterValueConversionException * if a string reference or serialization cannot be provided for * the <code>parameterValue</code> */ virtual QString ConvertToString(const Object::Pointer& parameterValue) = 0; }; } Q_DECLARE_INTERFACE(berry::IParameterValueConverter, "org.blueberry.core.commands.IParameterValueConverter") #endif /* BERRYABSTRACTPARAMETERVALUECONVERTER_H_ */ diff --git a/Plugins/org.blueberry.core.commands/src/berryNamedHandleObjectWithState.h b/Plugins/org.blueberry.core.commands/src/berryNamedHandleObjectWithState.h index 431a5428bb..2fa0297267 100644 --- a/Plugins/org.blueberry.core.commands/src/berryNamedHandleObjectWithState.h +++ b/Plugins/org.blueberry.core.commands/src/berryNamedHandleObjectWithState.h @@ -1,72 +1,72 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYNAMEDHANDLEOBJECTWITHSTATE_H_ #define BERRYNAMEDHANDLEOBJECTWITHSTATE_H_ #include "common/berryNamedHandleObject.h" #include "berryIObjectWithState.h" #include <QHash> namespace berry { /** * <p> * A named handle object that can carry state with it. This state can be used to * override the name or description. * </p> * <p> * Clients may neither instantiate nor extend this class. * </p> */ class BERRY_COMMANDS NamedHandleObjectWithState : public NamedHandleObject, public IObjectWithState { public: berryObjectMacro(berry::NamedHandleObjectWithState); void AddState(const QString& stateId, const SmartPointer<State>& state) override; QString GetDescription() const override; QString GetName() const override; SmartPointer<State> GetState(const QString& stateId) const override; QList<QString> GetStateIds() const override; void RemoveState(const QString& id) override; private: /** * The map of states currently held by this command. If this command has no * state, then this will be empty. */ QHash<QString, SmartPointer<State> > states; protected: /** - * Constructs a new instance of <code>NamedHandleObject<WithState/code>. + * Constructs a new instance of <code>NamedHandleObjectWithState</code>. * * @param id * The identifier for this handle; must not be empty. */ NamedHandleObjectWithState(const QString& id); }; } #endif /*BERRYNAMEDHANDLEOBJECTWITHSTATE_H_*/ diff --git a/Plugins/org.blueberry.core.commands/src/berryParameterType.h b/Plugins/org.blueberry.core.commands/src/berryParameterType.h index 8bf61603e8..c99c67c6f9 100755 --- a/Plugins/org.blueberry.core.commands/src/berryParameterType.h +++ b/Plugins/org.blueberry.core.commands/src/berryParameterType.h @@ -1,203 +1,203 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYPARAMETERTYPE_H_ #define BERRYPARAMETERTYPE_H_ #include "common/berryHandleObject.h" #include "berryIParameterTypeListener.h" #include "berryIParameterValueConverter.h" #include <QSharedPointer> namespace berry { struct IParameterValueConverter; /** * <p> * Provides information about the type of a command parameter. Clients can use a * parameter type to check if an object matches the type of the parameter with - * {@link #IsCompatible(Object::Pointer)} and can get an + * \c IsCompatible(Object::Pointer) and can get an * {@link IParameterValueConverter} to convert between objects matching * the parameter type and strings that encode the object's identity. * </p> * <p> * A command parameter is not required to declare a type. To determine if a * given parameter has a type, check if an {@link IParameter} implements * {@link ITypedParameter} and if so, use * {@link ITypedParameter#GetParameterType()} like this: * </p> * * <pre> * IParameter::Pointer parameter = // ... get IParameter from Command * if (ITypedParameter::Pointer typedParameter = parameter.Cast<ITypedParameter>()) * { * ParameterType::Pointer type = typedParameter->GetParameterType(); * if (type) { * // this parameter has a ParameterType * } * } * </pre> * * @see IParameter * @see ITypedParameter#GetParameterType() */ class BERRY_COMMANDS ParameterType: public HandleObject { //implements Comparable { public: berryObjectMacro(ParameterType); /** * Adds a listener to this parameter type that will be notified when its * state changes. * * @param listener * The listener to be added; must not be <code>null</code>. */ void AddListener(IParameterTypeListener* listener); /** * Compares this parameter type with another object by comparing each of the * non-transient attributes. * * @param object * The object with which to compare; must be an instance of * {@link ParameterType}. * @return A negative integer, zero or a positive integer, if the object is * greater than, equal to or less than this parameter type. */ bool operator<(const Object* object) const override; /** * <p> * Defines this parameter type, setting the defined property to * <code>true</code>. * </p> * <p> * Notification is sent to all listeners that something has changed. * </p> * * @param type * a string identifying the object type for this parameter * type; <code>null</code> is interpreted as * <code>"QObject"</code> * @param parameterTypeConverter - * an {@link AbstractParameterValueConverter} to perform + * an \c AbstractParameterValueConverter to perform * string/object conversions for parameter values; may be * <code>null</code> */ void Define(const QString& type, const QSharedPointer<IParameterValueConverter>& parameterTypeConverter); /** * Returns the value converter associated with this parameter, if any. * * @return The parameter value converter, or <code>null</code> if there is * no value converter for this parameter. * @throws NotDefinedException * if the parameter type is not currently defined */ IParameterValueConverter* GetValueConverter() const; /** * Returns whether the provided value is compatible with this parameter * type. An object is compatible with a parameter type if the object is an * instance of the class defined as the parameter's type class. * * @param value * an object to check for compatibility with this parameter type; * may be <code>null</code>. * @return <code>true</code> if the value is compatible with this type, * <code>false</code> otherwise * @throws NotDefinedException * if the parameter type is not currently defined */ bool IsCompatible(const QObject* const value) const; /** * Unregisters listener for changes to properties of this parameter type. * * @param listener * the instance to unregister. Must not be <code>null</code>. * If an attempt is made to unregister an instance which is not * already registered with this instance, no operation is * performed. */ void RemoveListener(IParameterTypeListener* listener); /** * The string representation of this parameter type. For debugging purposes * only. This string should not be shown to an end user. * * @return The string representation; never <code>null</code>. */ QString ToString() const override; /** * Makes this parameter type become undefined. Notification is sent to all * listeners. */ void Undefine() override; protected: friend class CommandManager; /** * Constructs a new instance based on the given identifier. When a parameter * type is first constructed, it is undefined. Parameter types should only * be constructed by the {@link CommandManager} to ensure that the * identifier remains unique. * * @param id * The identifier for this type. This value must not be * <code>null</code>, and must be unique amongst all parameter * types. */ ParameterType(const QString& id); private: /** * Notifies all listeners that this parameter type has changed. This sends * the given event to all of the listeners, if any. * * @param event * The event to send to the listeners; must not be * <code>null</code>. */ void FireParameterTypeChanged(const SmartPointer<ParameterTypeEvent> event); /** * An {@link AbstractParameterValueConverter} for converting parameter * values between objects and strings. This may be <code>null</code>. */ QSharedPointer<IParameterValueConverter> parameterTypeConverter; /** * A string specifying the object type of this parameter type. This will be * <code>null</code> when the parameter type is undefined but never null * when it is defined. */ QString type; IParameterTypeListener::Events parameterTypeEvents; }; } #endif /* BERRYPARAMETERTYPE_H_ */ diff --git a/Plugins/org.blueberry.core.commands/src/berryParameterizedCommand.h b/Plugins/org.blueberry.core.commands/src/berryParameterizedCommand.h index cface1be45..1b4bc39516 100755 --- a/Plugins/org.blueberry.core.commands/src/berryParameterizedCommand.h +++ b/Plugins/org.blueberry.core.commands/src/berryParameterizedCommand.h @@ -1,334 +1,334 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYPARAMETERIZEDCOMMAND_H_ #define BERRYPARAMETERIZEDCOMMAND_H_ #include <berryObject.h> #include <berryMacros.h> #include "common/berryCommandExceptions.h" #include <org_blueberry_core_commands_Export.h> #include <list> #include <map> namespace berry { struct IParameter; class Command; class Parameterization; /** * <p> * A command that has had one or more of its parameters specified. This class * serves as a utility class for developers that need to manipulate commands * with parameters. It handles the behaviour of generating a parameter map and a * human-readable name. * </p> */ class BERRY_COMMANDS ParameterizedCommand: public Object { //implements Comparable { public: berryObjectMacro(ParameterizedCommand); /** * The index of the parameter id in the parameter values. * * @deprecated no longer used */ static const int INDEX_PARAMETER_ID; // = 0; /** * The index of the human-readable name of the parameter itself, in the * parameter values. * * @deprecated no longer used */ static const int INDEX_PARAMETER_NAME; // = 1; /** * The index of the human-readable name of the value of the parameter for * this command. * * @deprecated no longer used */ static const int INDEX_PARAMETER_VALUE_NAME; // = 2; /** * The index of the value of the parameter that the command can understand. * * @deprecated no longer used */ static const int INDEX_PARAMETER_VALUE_VALUE; // = 3; /** * Constructs a new instance of <code>ParameterizedCommand</code> with * specific values for zero or more of its parameters. * * @param command * The command that is parameterized; must not be * <code>null</code>. * @param parameterizations * An array of parameterizations binding parameters to values for * the command. This value may be <code>null</code>. */ ParameterizedCommand(const SmartPointer<Command>& command, const QList<Parameterization>& parameterizations); bool operator<(const Object* object) const override; bool operator==(const Object* object) const override; /** * Executes this command with its parameters. This does extra checking to * see if the command is enabled and defined. If it is not both enabled and * defined, then the execution listeners will be notified and an exception * thrown. * * @param trigger * The object that triggered the execution; may be * <code>null</code>. * @param applicationContext * The state of the application at the time the execution was * triggered; may be <code>null</code>. * @return The result of the execution; may be <code>null</code>. * @throws ExecutionException * If the handler has problems executing this command. * @throws NotDefinedException * If the command you are trying to execute is not defined. * @throws NotEnabledException * If the command you are trying to execute is not enabled. * @throws NotHandledException * If there is no handler. */ Object::Pointer ExecuteWithChecks(const Object::ConstPointer& trigger, const Object::Pointer& applicationContext); /** * Returns the base command. It is possible for more than one parameterized * command to have the same identifier. * * @return The command; never <code>null</code>, but may be undefined. */ SmartPointer<Command> GetCommand() const; /** * Returns the command's base identifier. It is possible for more than one * parameterized command to have the same identifier. * * @return The command id; never <code>null</code>. */ QString GetId() const; /** * Returns a human-readable representation of this command with all of its * parameterizations. * * @return The human-readable representation of this parameterized command; * never <code>null</code>. * @throws NotDefinedException * If the underlying command is not defined. */ QString GetName() const; /** * Returns the parameter map, as can be used to construct an * <code>ExecutionEvent</code>. * * @return The map of parameter ids (<code>String</code>) to parameter * values (<code>String</code>). This map is never * <code>null</code>, but may be empty. */ QHash<QString, QString> GetParameterMap() const; uint HashCode() const override; /** - * Returns a {@link String} containing the command id, parameter ids and - * parameter values for this {@link ParameterizedCommand}. The returned - * {@link String} can be stored by a client and later used to reconstruct an + * Returns a \c String containing the command id, parameter ids and + * parameter values for this \c ParameterizedCommand . The returned + * \c String can be stored by a client and later used to reconstruct an * equivalent {@link ParameterizedCommand} using the - * {@link CommandManager#deserialize(String)} method. + * \c CommandManager.deserialize(String) method. * <p> - * The syntax of the returned {@link String} is as follows: + * The syntax of the returned \c String is as follows: * </p> * * <blockquote> * <code>serialization = <u>commandId</u> [ '(' parameters ')' ]</code><br> * <code>parameters = parameter [ ',' parameters ]</code><br> * <code>parameter = <u>parameterId</u> [ '=' <u>parameterValue</u> ]</code> * </blockquote> * * <p> * In the syntax above, sections inside square-brackets are optional. The * characters in single quotes (<code>(</code>, <code>)</code>, * <code>,</code> and <code>=</code>) indicate literal characters. * </p> * <p> * <code><u>commandId</u></code> represents the command id encoded with * separator characters escaped. <code><u>parameterId</u></code> and * <code><u>parameterValue</u></code> represent the parameter ids and * values encoded with separator characters escaped. The separator * characters <code>(</code>, <code>)</code>, <code>,</code> and * <code>=</code> are escaped by prepending a <code>%</code>. This * requires <code>%</code> to be escaped, which is also done by prepending * a <code>%</code>. * </p> * <p> * The order of the parameters is not defined (and not important). A missing * <code><u>parameterValue</u></code> indicates that the value of the * parameter is <code>null</code>. * </p> * <p> * For example, the string shown below represents a serialized parameterized * command that can be used to show the Resource perspective: * </p> * <p> * <code>org.eclipse.ui.perspectives.showPerspective(org.eclipse.ui.perspectives.showPerspective.perspectiveId=org.eclipse.ui.resourcePerspective)</code> * </p> * <p> * This example shows the more general form with multiple parameters, * <code>null</code> value parameters, and escaped <code>=</code> in the * third parameter value. * </p> * <p> * <code>command.id(param1.id=value1,param2.id,param3.id=esc%=val3)</code> * </p> * * @return A string containing the escaped command id, parameter ids and * parameter values; never <code>null</code>. * @see CommandManager#deserialize(String) */ QString Serialize(); QString ToString() const override; /** * <p> * Generates all the possible combinations of command parameterizations for * the given command. If the command has no parameters, then this is simply * a parameterized version of that command. If a parameter is optional, both * the included and not included cases are considered. * </p> * <p> * If one of the parameters cannot be loaded due to a * <code>ParameterValuesException</code>, then it is simply ignored. * </p> * * @param command * The command for which the parameter combinations should be * generated; must not be <code>null</code>. * @return A collection of <code>ParameterizedCommand</code> instances * representing all of the possible combinations. This value is * never empty and it is never <code>null</code>. * @throws NotDefinedException * If the command is not defined. */ static QList<ParameterizedCommand::Pointer> GenerateCombinations(const SmartPointer<Command> command); /** * Take a command and a map of parameter IDs to values, and generate the * appropriate parameterized command. * * @param command * The command object. Must not be <code>null</code>. * @param parameters * A map of String parameter ids to objects. May be * <code>null</code>. * @return the parameterized command, or <code>null</code> if it could not * be generated */ static ParameterizedCommand::Pointer GenerateCommand(const SmartPointer<Command> command, const QHash<QString, Object::Pointer>& parameters); private: /** * The constant integer hash code value meaning the hash code has not yet * been computed. */ static const uint HASH_CODE_NOT_COMPUTED; // = 0; /** * A factor for computing the hash code for all parameterized commands. */ static const uint HASH_FACTOR; // = 89; /** * The seed for the hash code for all parameterized commands. */ static const uint HASH_INITIAL; /** * Escapes special characters in the command id, parameter ids and parameter * values for {@link #serialize()}. The special characters * {@link CommandManager#PARAMETER_START_CHAR}, * {@link CommandManager#PARAMETER_END_CHAR}, * {@link CommandManager#ID_VALUE_CHAR}, * {@link CommandManager#PARAMETER_SEPARATOR_CHAR} and * {@link CommandManager#ESCAPE_CHAR} are escaped by prepending a * {@link CommandManager#ESCAPE_CHAR} character. * * @param rawText * a <code>String</code> to escape special characters in for * serialization. * @return a <code>String</code> representing <code>rawText</code> with * special serialization characters escaped */ static QString Escape(const QString& rawText); /** * Generates every possible combination of parameter values for the given * parameters. Parameters values that cannot be initialized are just * ignored. Optional parameters are considered. * * @param startIndex * The index in the <code>parameters</code> that we should * process. This must be a valid index. * @param parameters * The parameters in to process; must not be <code>null</code>. * @return A collection (<code>Collection</code>) of combinations (<code>List</code> * of <code>Parameterization</code>). */ static QList<QList<Parameterization> > ExpandParameters(unsigned int startIndex, const QList<SmartPointer<IParameter> >& parameters); /** * The base command which is being parameterized. This value is never * <code>null</code>. */ const SmartPointer<Command> command; /** * The hash code for this object. This value is computed lazily, and marked * as invalid when one of the values on which it is based changes. */ mutable uint hashCode; /** * This is an array of parameterization defined for this command. This value * may be <code>null</code> if the command has no parameters. */ QList<Parameterization> parameterizations; mutable QString name; }; } #endif /* BERRYPARAMETERIZEDCOMMAND_H_ */ diff --git a/Plugins/org.blueberry.core.expressions/src/berryIPropertyTester.h b/Plugins/org.blueberry.core.expressions/src/berryIPropertyTester.h index f59ba32e7f..9fef880fd8 100644 --- a/Plugins/org.blueberry.core.expressions/src/berryIPropertyTester.h +++ b/Plugins/org.blueberry.core.expressions/src/berryIPropertyTester.h @@ -1,108 +1,108 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYIPROPERTYTESTER_H_ #define BERRYIPROPERTYTESTER_H_ #include <berryMacros.h> #include <berryObject.h> #include <org_blueberry_core_expressions_Export.h> #include <Poco/Any.h> #include <string> #include <vector> #include <QObject> namespace berry { /** * A property tester can be used to add additional properties to test to an * existing type. * <p> * This interface is not intended to be implemented by clients. Clients * should subclass type <code>PropertyTester</code>. * </p> */ struct BERRY_EXPRESSIONS IPropertyTester : public Object { berryObjectMacro(berry::IPropertyTester); ~IPropertyTester() override; /** * Returns whether the property tester can handle the given * property or not. * * @param namespaze the name space to be considered * @param property the property to test * @return <code>true</code> if the tester provides an implementation * for the given property; otherwise <code>false</code> is returned */ virtual bool Handles(const QString& namespaze, const QString& property) = 0; /** * Returns whether the implementation class for this property tester is * loaded or not. * * @return <code>true</code>if the implementation class is loaded; * <code>false</code> otherwise */ virtual bool IsInstantiated() = 0; /** * Returns <code>true</code> if the implementation class of this property * tester can be loaded. This is the case if the plug-in providing * the implementation class is active. Returns <code>false</code> otherwise. * * @return whether the implementation class can be loaded or not */ virtual bool IsDeclaringPluginActive() = 0; /** * Loads the implementation class for this property tester and returns an * instance of this class. * * @return an instance of the implementation class for this property tester * * @throws CoreException if the implementation class cannot be loaded */ virtual IPropertyTester* Instantiate() = 0; /** * Executes the property test determined by the parameter <code>property</code>. * * @param receiver the receiver of the property test * @param property the property to test * @param args additional arguments to evaluate the property. If no arguments * are specified in the <code>test</code> expression an array of length 0 * is passed * @param expectedValue the expected value of the property. The value is either * of type <code>java.lang.String</code> or a boxed base type. If no value was * specified in the <code>test</code> expressions then <code>null</code> is passed * - * @return returns <code>true<code> if the property is equal to the expected value; + * @return returns <code>true</code> if the property is equal to the expected value; * otherwise <code>false</code> is returned */ virtual bool Test(Object::ConstPointer receiver, const QString& property, const QList<Object::Pointer>& args, Object::Pointer expectedValue) = 0; }; } // namespace berry Q_DECLARE_INTERFACE(berry::IPropertyTester, "org.blueberry.IPropertyTester") #endif /*BERRYIPROPERTYTESTER_H_*/ diff --git a/Plugins/org.blueberry.core.jobs/src/berryIJobStatus.h b/Plugins/org.blueberry.core.jobs/src/berryIJobStatus.h index a065d074eb..34fe2a001e 100644 --- a/Plugins/org.blueberry.core.jobs/src/berryIJobStatus.h +++ b/Plugins/org.blueberry.core.jobs/src/berryIJobStatus.h @@ -1,42 +1,42 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef _BERRYIJOBSTATUS_H #define _BERRYIJOBSTATUS_H #include "berryIStatus.h" #include "berryObject.h" #include "berryJob.h" namespace berry { /** * Represents status relating to the execution of jobs. * @see IStatus - * @noimplement This interface is not intended to be implemented by clients. - * @noextend This interface is not intended to be extended by clients. + * @note This interface is not intended to be implemented by clients. + * @note This interface is not intended to be extended by clients. */ struct IJobStatus : public virtual IStatus { berryObjectMacro(IJobStatus); /** * Returns the job associated with this status. * @return the job associated with this status */ virtual Job::Pointer GetJob() = 0; }; } #endif /*_BERRYIJOBSTATUS_H */ diff --git a/Plugins/org.blueberry.core.jobs/src/berryILock.h b/Plugins/org.blueberry.core.jobs/src/berryILock.h index 64e3613029..bdd2d295c6 100644 --- a/Plugins/org.blueberry.core.jobs/src/berryILock.h +++ b/Plugins/org.blueberry.core.jobs/src/berryILock.h @@ -1,121 +1,121 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef _BERRY_ILOCK_H_ #define _BERRY_ILOCK_H_ #include <berryObject.h> #include <berryMacros.h> #include "berryJobExceptions.h" namespace berry { /** * A lock is used to control access to an exclusive resource. * <p> * Locks are reentrant. That is, they can be acquired multiple times by the same thread * without releasing. Locks are only released when the number of successful acquires * equals the number of successful releases. * </p><p> * Locks are capable of detecting and recovering from programming errors that cause * circular waiting deadlocks. When a deadlock between two or more <tt>ILock</tt> * instances is detected, detailed debugging information is printed to the log file. The * locks will then automatically recover from the deadlock by employing a release * and wait strategy. One thread will lose control of the locks it owns, thus breaking * the deadlock and allowing other threads to proceed. Once that thread's locks are * all available, it will be given exclusive access to all its locks and allowed to proceed. * A thread can only lose locks while it is waiting on an <tt>acquire()</tt> call. * * </p><p> * Successive acquire attempts by different threads are queued and serviced on * a first come, first served basis. * </p><p> * It is very important that acquired locks eventually get released. Calls to release * should be done in a finally block to ensure they execute. For example: * <pre> * try { * lock.acquire(); * // ... do work here ... * } finally { * lock.release(); * } * </pre> * Note: although <tt>lock.acquire</tt> should never fail, it is good practice to place * it inside the try block anyway. Releasing without acquiring is far less catastrophic * than acquiring without releasing. * </p> * * @see IJobManager#NewLock() - * @noimplement This interface is not intended to be implemented by clients. + * @note This interface is not intended to be implemented by clients. */ struct BERRY_JOBS ILock: public Object { berryObjectMacro(berry::ILock); /** * Attempts to acquire this lock. If the lock is in use and the specified delay is * greater than zero, the calling thread will block until one of the following happens: * <ul> * <li>This lock is available</li> * <li>The thread is interrupted</li> * <li>The specified delay has elapsed</li> * </ul> * <p> * While a thread is waiting, locks it already owns may be granted to other threads * if necessary to break a deadlock. In this situation, the calling thread may be blocked * for longer than the specified delay. On returning from this call, the calling thread * will once again have exclusive access to any other locks it owned upon entering * the acquire method. * * @param delay the number of milliseconds to delay * @return <code>true</code> if the lock was successfully acquired, and * <code>false</code> otherwise. * @exception InterruptedException if the thread was interrupted */ virtual bool Acquire(long delay) throw (InterruptedException) = 0; /** * Acquires this lock. If the lock is in use, the calling thread will block until the lock * becomes available. If the calling thread owns several locks, it will be blocked * until all threads it requires become available, or until the thread is interrupted. * While a thread is waiting, its locks may be granted to other threads if necessary * to break a deadlock. On returning from this call, the calling thread will * have exclusive access to this lock, and any other locks it owned upon * entering the acquire method. * <p> * This implementation ignores attempts to interrupt the thread. If response to * interruption is needed, use the method <code>acquire(long)</code> */ virtual void Acquire(); /** * Returns the number of nested acquires on this lock that have not been released. * This is the number of times that release() must be called before the lock is * freed. * * @return the number of nested acquires that have not been released */ virtual int GetDepth() = 0; /** * Releases this lock. Locks must only be released by the thread that currently * owns the lock. */ virtual void Release() = 0; }; } #endif // BERRY_ILOCK_H diff --git a/Plugins/org.blueberry.core.jobs/src/berryIProgressMonitor.h b/Plugins/org.blueberry.core.jobs/src/berryIProgressMonitor.h index 33761768c4..337835b44b 100644 --- a/Plugins/org.blueberry.core.jobs/src/berryIProgressMonitor.h +++ b/Plugins/org.blueberry.core.jobs/src/berryIProgressMonitor.h @@ -1,113 +1,113 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRY_IPROGRESS_MONITOR_H #define BERRY_IPROGRESS_MONITOR_H #include <org_blueberry_core_jobs_Export.h> #include "berryObject.h" #include <string> namespace berry { struct IProgressMonitor: public Object { berryObjectMacro(berry::IProgressMonitor); /** Constant indicating an unknown amount of work. */ static const int UNKNOWN = -1; /** * Notifies that the main task is beginning. This must only be called once * on a given progress monitor instance. * * @param name the name (or description) of the main task * @param totalWork the total number of work units into which * the main task is been subdivided. If the value is <code>UNKNOWN</code> * the implementation is free to indicate progress in a way which * doesn't require the total number of work units in advance. */ virtual void BeginTask(const std::string& name, int totalWork) = 0; /** * Notifies that the work is done; that is, either the main task is completed * or the user canceled it. This method may be called more than once * (implementations should be prepared to handle this case). */ virtual void Done() = 0; /** * Internal method to handle scaling correctly. This method * must not be called by a client. Clients should * always use the method <code>worked(int)</code>. * * @param work the amount of work done */ virtual void InternalWorked(double work) = 0; /** * Returns whether cancellation of current operation has been requested. * Long-running operations should poll to see if cancellation * has been requested. * * @return <code>true</code> if cancellation has been requested, * and <code>false</code> otherwise - * @see #setCanceled(bool) + * @see #SetCanceled */ virtual bool IsCanceled() = 0; /** * Sets the cancel state to the given value. * * @param value <code>true</code> indicates that cancellation has * been requested (but not necessarily acknowledged); * <code>false</code> clears this flag - * @see #isCanceled() + * @see #IsCanceled */ virtual void SetCanceled(bool value) = 0; /** * Sets the task name to the given value. This method is used to * restore the task label after a nested operation was executed. * Normally there is no need for clients to call this method. * * @param name the name (or description) of the main task - * @see #beginTask + * @see #BeginTask */ virtual void SetTaskName(const std::string& name) = 0; /** * Notifies that a subtask of the main task is beginning. * Subtasks are optional; the main task might not have subtasks. * * @param name the name (or description) of the subtask */ virtual void SubTask(const std::string& name) = 0; /** * Notifies that a given number of work unit of the main task * has been completed. Note that this amount represents an * installment, as opposed to a cumulative amount of work done * to date. * * @param work a non-negative number of work units just completed */ virtual void Worked(int work) = 0; }; } #endif /* _BERRY_IPROGRESS_MONITOR_H */ diff --git a/Plugins/org.blueberry.core.jobs/src/berryIProgressMonitorWithBlocking.h b/Plugins/org.blueberry.core.jobs/src/berryIProgressMonitorWithBlocking.h index 44d4a4174c..691af5e1ce 100644 --- a/Plugins/org.blueberry.core.jobs/src/berryIProgressMonitorWithBlocking.h +++ b/Plugins/org.blueberry.core.jobs/src/berryIProgressMonitorWithBlocking.h @@ -1,80 +1,80 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef _BERRY_IPROGRESSMONITORWITHBLOCKING_H #define _BERRY_IPROGRESSMONITORWITHBLOCKING_H #include "berryObject.h" #include <org_blueberry_core_jobs_Export.h> #include "berryIStatus.h" #include "berryIProgressMonitor.h" namespace berry { /** * An extension to the IProgressMonitor interface for monitors that want to * support feedback when an activity is blocked due to concurrent activity in * another thread. * <p> * When a monitor that supports this extension is passed to an operation, the * operation should call <code>setBlocked</code> whenever it knows that it * must wait for a lock that is currently held by another thread. The operation * should continue to check for and respond to cancellation requests while * blocked. When the operation is no longer blocked, it must call <code>clearBlocked</code> * to clear the blocked state. * <p> * This interface can be used without OSGi running. * </p><p> * Clients may implement this interface. * </p> * @see IProgressMonitor */ struct BERRY_JOBS IProgressMonitorWithBlocking: public IProgressMonitor { berryObjectMacro(berry::IProgressMonitorWithBlocking); /** * Indicates that this operation is blocked by some background activity. If * a running operation ever calls <code>setBlocked</code>, it must * eventually call <code>clearBlocked</code> before the operation * completes. * <p> * If the caller is blocked by a currently executing job, this method will return * an <code>IJobStatus</code> indicating the job that is currently blocking * the caller. If this blocking job is not known, this method will return a plain * informational <code>IStatus</code> object. * </p> * * @param reason an optional status object whose message describes the * reason why this operation is blocked, or <code>null</code> if this * information is not available. - * @see #clearBlocked() + * @see #ClearBlocked */ virtual void SetBlocked(IStatus::Pointer reason)= 0; /** * Clears the blocked state of the running operation. If a running * operation ever calls <code>setBlocked</code>, it must eventually call * <code>clearBlocked</code> before the operation completes. * - * @see #setBlocked(IStatus) + * @see #SetBlocked */ virtual void ClearBlocked() = 0; }; } #endif /* _BERRY_IPROGRESSMONITORWITHBLOCKING_H */ diff --git a/Plugins/org.blueberry.core.jobs/src/berryJob.h b/Plugins/org.blueberry.core.jobs/src/berryJob.h index 62e2305e0a..b1944e391f 100644 --- a/Plugins/org.blueberry.core.jobs/src/berryJob.h +++ b/Plugins/org.blueberry.core.jobs/src/berryJob.h @@ -1,635 +1,565 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef _BERRY_JOB_H #define _BERRY_JOB_H #include <Poco/Thread.h> #include <org_blueberry_core_jobs_Export.h> -// #include "berryISchedulingRule.h" #include "berryJobExceptions.h" #include "internal/berryInternalJob.h" #include <berryObject.h> #include <string> namespace berry { struct IJobManager; /** * Jobs are units of runnable work that can be scheduled to be run with the job * manager. Once a job has completed, it can be scheduled to run again (jobs are * reusable). * <p> * Jobs have a state that indicates what they are currently doing. When constructed, * jobs start with a state value of <code>NONE</code>. When a job is scheduled * to be run, it moves into the <code>WAITING</code> state. When a job starts * running, it moves into the <code>RUNNING</code> state. When execution finishes * (either normally or through cancellation), the state changes back to * <code>NONE</code>. * </p><p> * A job can also be in the <code>SLEEPING</code> state. This happens if a user * calls Job.sleep() on a waiting job, or if a job is scheduled to run after a specified * delay. Only jobs in the <code>WAITING</code> state can be put to sleep. * Sleeping jobs can be woken at any time using Job.wakeUp(), which will put the * job back into the <code>WAITING</code> state. * </p><p> * Jobs can be assigned a priority that is used as a hint about how the job should * be scheduled. There is no guarantee that jobs of one priority will be run before * all jobs of lower priority. The documentation of the various priority constants provide * more detail about what each priority means. By default, jobs start in the * <code>LONG</code> priority class. * * @see IJobManager * */ -//TODO struct Job: public InternalJob, public IAdaptable class BERRY_JOBS Job: public InternalJob { public: berryObjectMacro(Job); /** * Job status return value that is used to indicate asynchronous job completion. * @see Job#Run(IProgressMonitor::Pointer) * @see Job#Done(IStatus::Pointer) */ static const IStatus::Pointer ASYNC_FINISH ; /* Job priorities */ /** * Job priority constant (value 10) for interactive jobs. * Interactive jobs generally have priority over all other jobs. * Interactive jobs should be either fast running or very low on CPU * usage to avoid blocking other interactive jobs from running. * * @see #GetPriority() * @see #SetPriority(int) * @see #Run(IProgressMonitor::Pointer) */ static const int INTERACTIVE = 10; /** * Job priority constant (value 20) for short background jobs. * Short background jobs are jobs that typically complete within a second, * but may take longer in some cases. Short jobs are given priority * over all other jobs except interactive jobs. * * @see #GetPriority() * @see #SetPriority(int) * @see #Run(IProgressMonitor::Pointer) */ static const int SHORT = 20; /** * Job priority constant (value 30) for long-running background jobs. * * @see #GetPriority() * @see #SetPriority(int) * @see #Run(IProgressMonitor::Pointer) */ static const int LONG = 30; /** * Job priority constant (value 40) for build jobs. Build jobs are * generally run after all other background jobs complete. * * @see #GetPriority() * @see #SetPriority(int) - * @see #Run(IProgressMonitor) */ static const int BUILD = 40; /** * Job priority constant (value 50) for decoration jobs. * Decoration jobs have lowest priority. Decoration jobs generally * compute extra information that the user may be interested in seeing * but is generally not waiting for. * * @see #GetPriority() * @see #SetPriority(int) - * @see #Run(IProgressMonitor) */ static const int DECORATE = 50; /** * Job state code (value 0) indicating that a job is not * currently sleeping, waiting, or running (i.e., the job manager doesn't know * anything about the job). * * @see #GetState() */ static const int NONE = 0; /** * Job state code (value 1) indicating that a job is sleeping. * - * @see #Run(IProgressMonitor) * @see #GetState() */ static const int SLEEPING = 0x01; /** * Job state code (value 2) indicating that a job is waiting to be run. * * @see #GetState() */ static const int WAITING = 0x02; /** * Job state code (value 4) indicating that a job is currently running * * @see #GetState() */ static const int RUNNING = 0x04; /** * Returns the job manager. * * @return the job manager */ static const IJobManager* GetJobManager(); /** * Creates a new job with the specified name. The job name is a human-readable * value that is displayed to users. The name does not need to be unique, but it * must not be <code>null</code>. * * @param name the name of the job. */ Job(const QString& name); /** * Registers a job listener with this job * Has no effect if an identical listener is already registered. * * @param listener the listener to be added. */ void AddJobChangeListener(IJobChangeListener* listener); /** * Returns whether this job belongs to the given family. Job families are * represented as objects that are not interpreted or specified in any way * by the job manager. Thus, a job can choose to belong to any number of * families. * <p> * Clients may override this method. This default implementation always returns * <code>false</code>. Overriding implementations must return <code>false</code> * for families they do not recognize. * </p> * * @param family the job family identifier * @return <code>true</code> if this job belongs to the given family, and * <code>false</code> otherwise. */ bool BelongsTo(Object::Pointer family) override; /** * Stops the job. If the job is currently waiting, * it will be removed from the queue. If the job is sleeping, * it will be discarded without having a chance to resume and its sleeping state * will be cleared. If the job is currently executing, it will be asked to * stop but there is no guarantee that it will do so. * * @return <code>false</code> if the job is currently running (and thus may not * respond to cancellation), and <code>true</code> in all other cases. */ bool Cancel(); /** * Jobs that complete their execution asynchronously must indicate when they * are finished by calling this method. This method must not be called by * a job that has not indicated that it is executing asynchronously. * <p> * This method must not be called from within the scope of a job's <code>run</code> * method. Jobs should normally indicate completion by returning an appropriate * status from the <code>run</code> method. Jobs that return a status of * <code>ASYNC_FINISH</code> from their run method must later call * <code>done</code> to indicate completion. * * @param result a status object indicating the result of the job's execution. * @see #ASYNC_FINISH * @see #Run(IProgressMonitor::Pointer) */ void Done(IStatus::Pointer result); /** * Returns the human readable name of this job. The name is never * <code>null</code>. * * @return the name of this job */ QString GetName() const; /** * Returns the priority of this job. The priority is used as a hint when the job * is scheduled to be run. * * @return the priority of the job. One of INTERACTIVE, SHORT, LONG, BUILD, * or DECORATE. */ int GetPriority() const; - /** - * Returns the value of the property of this job identified by the given key, - * or <code>null</code> if this job has no such property. - * - * @param key the name of the property - * @return the value of the property, - * or <code>null</code> if this job has no such property - * @see #SetProperty(QualifiedName, Object) - */ - //TODO QualifiedName GetPropertys - ///Object GetProperty(QualifiedName key) const ; - /** * Returns the result of this job's last run. * * @return the result of this job's last run, or <code>null</code> if this * job has never finished running. */ IStatus::Pointer GetResult() const ; /** * Returns the scheduling rule for this job. Returns <code>null</code> if this job has no * scheduling rule. * * @return the scheduling rule for this job, or <code>null</code>. * @see ISchedulingRule * @see #SetRule(ISchedulingRule::Pointer) */ ISchedulingRule::Pointer GetRule() const; /** * Returns the state of the job. Result will be one of: * <ul> * <li><code>Job.RUNNING</code> - if the job is currently running.</li> * <li><code>Job.WAITING</code> - if the job is waiting to be run.</li> * <li><code>Job.SLEEPING</code> - if the job is sleeping.</li> * <li><code>Job.NONE</code> - in all other cases.</li> * </ul> * <p> * Note that job state is inherently volatile, and in most cases clients * cannot rely on the result of this method being valid by the time the * result is obtained. For example, if <tt>getState</tt> returns * <tt>RUNNING</tt>, the job may have actually completed by the * time the <tt>getState</tt> method returns. All clients can infer from * invoking this method is that the job was recently in the returned state. * * @return the job state */ int GetState() const; /** * Returns the thread that this job is currently running in. * * @return the thread this job is running in, or <code>null</code> * if this job is not running or the thread is unknown. */ Poco::Thread* GetThread() const; /** * Returns whether this job is blocking a higher priority non-system job from * starting due to a conflicting scheduling rule. Returns <code>false</code> * if this job is not running, or is not blocking a higher priority non-system job. * * @return <code>true</code> if this job is blocking a higher priority non-system * job, and <code>false</code> otherwise. * @see #GetRule() * @see #IsSystem() */ bool IsBlocking(); /** * Returns whether this job is a system job. System jobs are typically not * revealed to users in any UI presentation of jobs. Other than their UI presentation, * system jobs act exactly like other jobs. If this value is not explicitly set, jobs * are treated as non-system jobs. The default value is <code>false</code>. * * @return <code>true</code> if this job is a system job, and * <code>false</code> otherwise. * @see #SetSystem(bool) */ bool IsSystem() const; /** * Returns whether this job has been directly initiated by a UI end user. * These jobs may be presented differently in the UI. The default value * is <code>false</code>. * * @return <code>true</code> if this job is a user-initiated job, and * <code>false</code> otherwise. * @see #SetUser(bool) */ bool IsUser() const; - /** - * Waits until this job is finished. This method will block the calling thread until the - * job has finished executing, or until this thread has been interrupted. If the job - * has not been scheduled, this method returns immediately. A job must not - * be joined from within the scope of its run method. - * <p> - * If this method is called on a job that reschedules itself from within the - * <tt>run</tt> method, the join will return at the end of the first execution. - * In other words, join will return the first time this job exits the - * {@link #RUNNING} state, or as soon as this job enters the {@link #NONE} state. - * </p> - * <p> - * If this method is called while the job manager is suspended, this job - * will only be joined if it is already running; if this job is waiting or sleeping, - * this method returns immediately. - * </p> - * <p> - * Note that there is a deadlock risk when using join. If the calling thread owns - * a lock or object monitor that the joined thread is waiting for, deadlock - * will occur. - * </p> - * - * @exception InterruptedException if this thread is interrupted while waiting - * @see ILock - * @see IJobManager#Suspend() - */ - //TODO Error Join Problem InterruptedException - /// void Join() ; - /** * Removes a job listener from this job. * Has no effect if an identical listener is not already registered. * * @param listener the listener to be removed */ void RemoveJobChangeListener(IJobChangeListener* listener); /** * Schedules this job to be run. The job is added to a queue of waiting * jobs, and will be run when it arrives at the beginning of the queue. * <p> * This is a convenience method, fully equivalent to * <code>Schedule(0L)</code>. * </p> - * @see #Schedule(long) */ void Schedule(); /** * Schedules this job to be run after a specified delay. The job is put in the * {@link #SLEEPING} state until the specified delay has elapsed, after which * the job is added to a queue of {@link #WAITING} jobs. Once the job arrives * at the beginning of the queue, it will be run at the first available opportunity. * </p><p> * Jobs of equal priority and <code>delay</code> with conflicting scheduling * rules are guaranteed to run in the order they are scheduled. No guarantees * are made about the relative execution order of jobs with unrelated or * <code>null</code> scheduling rules, or different priorities. * <p> * If this job is currently running, it will be rescheduled with the specified * delay as soon as it finishes. If this method is called multiple times * while the job is running, the job will still only be rescheduled once, * with the most recent delay value that was provided. * </p><p> * Scheduling a job that is waiting or sleeping has no effect. * </p> * * @param delay a time delay in milliseconds before the job should run * @see ISchedulingRule */ void Schedule(Poco::Timestamp::TimeDiff delay); /** * Changes the name of this job. If the job is currently running, waiting, * or sleeping, the new job name may not take effect until the next time the * job is scheduled. * <p> * The job name is a human-readable value that is displayed to users. The name * does not need to be unique, but it must not be <code>null</code>. * * @param name the name of the job. */ void SetName(const QString& name); /** * Sets the priority of the job. This will not affect the execution of * a running job, but it will affect how the job is scheduled while * it is waiting to be run. * * @param priority the new job priority. One of * INTERACTIVE, SHORT, LONG, BUILD, or DECORATE. */ void SetPriority(int priority); /** * Associates this job with a progress group. Progress feedback * on this job's next execution will be displayed together with other * jobs in that group. The provided monitor must be a monitor * created by the method <tt>IJobManager.createProgressGroup</tt> * and must have at least <code>ticks</code> units of available work. * <p> * The progress group must be set before the job is scheduled. * The group will be used only for a single invocation of the job's * <tt>run</tt> method, after which any association of this job to the * group will be lost. * * @see IJobManager#createProgressGroup() * @param group The progress group to use for this job * @param ticks the number of work ticks allocated from the * parent monitor, or {@link IProgressMonitor#UNKNOWN} */ void SetProgressGroup(IProgressMonitor::Pointer group, int ticks); - /** - * Sets the value of the property of this job identified - * by the given key. If the supplied value is <code>null</code>, - * the property is removed from this resource. - * <p> - * Properties are intended to be used as a caching mechanism - * by ISV plug-ins. They allow key-object associations to be stored with - * a job instance. These key-value associations are maintained in - * memory (at all times), and the information is never discarded automatically. - * </p><p> - * The qualifier part of the property name must be the unique identifier - * of the declaring plug-in (e.g. <code>"com.example.plugin"</code>). - * </p> - * - * @param key the qualified name of the property - * @param value the value of the property, - * or <code>null</code> if the property is to be removed - * @see #GetProperty(QualifiedName) - */ - //TODO QualifiedName SetProperty - /// void SetProperty(QualifiedName key, Object value); - /** * Sets the scheduling rule to be used when scheduling this job. This method * must be called before the job is scheduled. * * @param rule the new scheduling rule, or <code>null</code> if the job * should have no scheduling rule * @see #GetRule() */ void SetRule(ISchedulingRule::Pointer rule); /** * Sets whether or not this job is a system job. System jobs are typically not * revealed to users in any UI presentation of jobs. Other than their UI presentation, * system jobs act exactly like other jobs. If this value is not explicitly set, jobs * are treated as non-system jobs. This method must be called before the job * is scheduled. * * @param value <code>true</code> if this job should be a system job, and * <code>false</code> otherwise. * @see #IsSystem() */ void SetSystem(bool value); /** * Sets whether or not this job has been directly initiated by a UI end user. * These jobs may be presented differently in the UI. This method must be * called before the job is scheduled. * * @param value <code>true</code> if this job is a user-initiated job, and * <code>false</code> otherwise. * @see #IsUser() */ void SetUser(bool value); /** * Sets the thread that this job is currently running in, or <code>null</code> * if this job is not running or the thread is unknown. * <p> * Jobs that use the {@link #ASYNC_FINISH} return code should tell * the job what thread it is running in. This is used to prevent deadlocks. * * @param thread the thread that this job is running in. * * @see #ASYNC_FINISH * @see #Run(IProgressMonitor::Pointer) */ void SetThread(Poco::Thread* thread); /** * Returns whether this job should be run. * If <code>false</code> is returned, this job will be discarded by the job manager * without running. * <p> * This method is called immediately prior to calling the job's * run method, so it can be used for last minute pre-condition checking before * a job is run. This method must not attempt to schedule or change the * state of any other job. * </p><p> * Clients may override this method. This default implementation always returns * <code>true</code>. * </p> * * @return <code>true</code> if this job should be run * and <code>false</code> otherwise */ virtual bool ShouldRun(); /** * Returns whether this job should be scheduled. * If <code>false</code> is returned, this job will be discarded by the job manager * without being added to the queue. * <p> * This method is called immediately prior to adding the job to the waiting job * queue.,so it can be used for last minute pre-condition checking before * a job is scheduled. * </p><p> * Clients may override this method. This default implementation always returns * <code>true</code>. * </p> * * @return <code>true</code> if the job manager should schedule this job * and <code>false</code> otherwise */ bool ShouldSchedule() override; /** * Requests that this job be suspended. If the job is currently waiting to be run, it * will be removed from the queue move into the {@link #SLEEPING} state. * The job will remain asleep until either resumed or canceled. If this job is not * currently waiting to be run, this method has no effect. * <p> * Sleeping jobs can be resumed using <code>wakeUp</code>. * * @return <code>false</code> if the job is currently running (and thus cannot * be put to sleep), and <code>true</code> in all other cases * @see #WakeUp() */ bool Sleep(); /** * Puts this job immediately into the {@link #WAITING} state so that it is * eligible for immediate execution. If this job is not currently sleeping, * the request is ignored. * <p> * This is a convenience method, fully equivalent to * <code>wakeUp(0L)</code>. * </p> * @see #Sleep() */ void WakeUp(); /** * Puts this job back into the {@link #WAITING} state after * the specified delay. This is equivalent to canceling the sleeping job and * rescheduling with the given delay. If this job is not currently sleeping, * the request is ignored. * * @param delay the number of milliseconds to delay * @see #Sleep() */ void WakeUp(long delay); protected: /** - * A hook method indicating that this job is running and {@link #cancel()} + * A hook method indicating that this job is running and {@link #Cancel()} * is being called for the first time. * <p> * Subclasses may override this method to perform additional work when * a cancellation request is made. This default implementation does nothing. */ void Canceling() override; /** * Executes this job. Returns the result of the execution. * <p> * The provided monitor can be used to report progress and respond to * cancellation. If the progress monitor has been canceled, the job * should finish its execution at the earliest convenience and return a result - * status of severity {@link IStatus#CANCEL}. The singleton + * status of severity \c IStatus.CANCEL . The singleton * cancel status {@link Status#CANCEL_STATUS} can be used for * this purpose. The monitor is only valid for the duration of the invocation * of this method. * <p> * This method must not be called directly by clients. Clients should call * <code>schedule</code>, which will in turn cause this method to be called. * <p> * Jobs can optionally finish their execution asynchronously (in another thread) by * returning a result status of {@link #ASYNC_FINISH}. Jobs that finish * asynchronously <b>must</b> specify the execution thread by calling * <code>setThread</code>, and must indicate when they are finished by calling * the method <code>done</code>. * - * @param monitor the monitor to be used for reporting progress and + * @param myProgressMonitor the monitor to be used for reporting progress and * responding to cancellation. The monitor is never <code>null</code> * @return resulting status of the run. The result must not be <code>null</code> * @see #ASYNC_FINISH - * @see #Done(IStatus) */ IStatus::Pointer Run(IProgressMonitor::Pointer myProgressMonitor) override = 0; }; } #endif /* BERRY_JOB_H */ diff --git a/Plugins/org.blueberry.core.jobs/src/berryJobStatus.h b/Plugins/org.blueberry.core.jobs/src/berryJobStatus.h index 3453952d7c..dd1ee6a9d1 100644 --- a/Plugins/org.blueberry.core.jobs/src/berryJobStatus.h +++ b/Plugins/org.blueberry.core.jobs/src/berryJobStatus.h @@ -1,52 +1,53 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef _BERRYJOBSTATUS_H #define _BERRYJOBSTATUS_H #include "berryIJobStatus.h" #include "berryStatus.h" #include "berryJob.h" namespace berry { class BERRY_JOBS JobStatus : public Status, public IJobStatus { public: berryObjectMacro(JobStatus); /** * Creates a new job status with no interesting error code or exception. * @param severity - * @param job + * @param sptr_job * @param message + * @param sl */ JobStatus(const Severity& severity, Job::Pointer sptr_job, const QString& message, const Status::SourceLocation& sl); /** * @see IJobStatus#GetJob() */ Job::Pointer GetJob() override; private: Job::Pointer m_myJob; }; } #endif /* _BERRYJOBSTATUS_H */ diff --git a/Plugins/org.blueberry.core.runtime/src/berryILog.h b/Plugins/org.blueberry.core.runtime/src/berryILog.h index f740d33ff4..656f1b5efe 100644 --- a/Plugins/org.blueberry.core.runtime/src/berryILog.h +++ b/Plugins/org.blueberry.core.runtime/src/berryILog.h @@ -1,78 +1,78 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYILOG_H #define BERRYILOG_H template<class T> class QSharedPointer; class ctkPlugin; namespace berry { template<class T> class SmartPointer; struct ILogListener; struct IStatus; /** * A log to which status events can be written. Logs appear on individual * plug-ins and on the platform itself. Clients can register log listeners which * will receive notification of all log events as they come in. * <p> * XXX Need to create a new log interface on common plugin. That interface should be a super interface of this ILog. * getBundle() would stay here. In the super interface we would have getName() * </p> * - * @noimplement This interface is not intended to be implemented by clients. + * @note This interface is not intended to be implemented by clients. */ struct ILog { virtual ~ILog(); /** * Adds the given log listener to this log. Subsequently the log listener will * receive notification of all log events passing through this log. * This method has no effect if the identical listener is already registered on this log. * * @param listener the listener to add to this log * @see Platform#addLogListener(ILogListener) */ virtual void AddLogListener(ILogListener* listener) = 0; /** * Returns the plug-in with which this log is associated. * * @return the plug-in with which this log is associated */ virtual QSharedPointer<ctkPlugin> GetBundle() const = 0; /** * Logs the given status. The status is distributed to the log listeners * installed on this log and then to the log listeners installed on the platform. * * @param status the status to log */ virtual void Log(const SmartPointer<IStatus>& status) = 0; /** * Removes the given log listener to this log. Subsequently the log listener will * no longer receive notification of log events passing through this log. * This method has no effect if the identical listener is not registered on this log. * * @param listener the listener to remove * @see Platform#removeLogListener(ILogListener) */ virtual void RemoveLogListener(ILogListener* listener) = 0; }; } #endif // BERRYILOG_H diff --git a/Plugins/org.blueberry.core.runtime/src/berryIPreferences.h b/Plugins/org.blueberry.core.runtime/src/berryIPreferences.h index c0d4d91086..a9badb3a9b 100644 --- a/Plugins/org.blueberry.core.runtime/src/berryIPreferences.h +++ b/Plugins/org.blueberry.core.runtime/src/berryIPreferences.h @@ -1,709 +1,709 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYIPREFERENCES_H_ #define BERRYIPREFERENCES_H_ #include <org_blueberry_core_runtime_Export.h> #include "berryObject.h" #include "berryBackingStoreException.h" namespace berry { /** * A node in a hierarchical collection of preference data. * * <p> * This interface allows applications to store and retrieve user and system * preference data. This data is stored persistently in an * implementation-dependent backing store. Typical implementations include flat * files, OS-specific registries, directory servers and SQL databases. * * <p> * For each bundle, there is a separate tree of nodes for each user, and one for * system preferences. The precise description of "user" and "system" will vary * from one bundle to another. Typical information stored in the user preference * tree might include font choice, and color choice for a bundle which interacts * with the user via a servlet. Typical information stored in the system * preference tree might include installation data, or things like high score * information for a game program. * * <p> * Nodes in a preference tree are named in a similar fashion to directories in a * hierarchical file system. Every node in a preference tree has a <i>node name * </i> (which is not necessarily unique), a unique <i>absolute path name </i>, * and a path name <i>relative </i> to each ancestor including itself. * * <p> * The root node has a node name of the empty <code>QString</code> object (""). * Every other node has an arbitrary node name, specified at the time it is * created. The only restrictions on this name are that it cannot be the empty * string, and it cannot contain the slash character ('/'). * * <p> * The root node has an absolute path name of <code>"/"</code>. Children of the * root node have absolute path names of <code>"/" + </code> <i><node name> * </i>. All other nodes have absolute path names of <i><parent's absolute * path name> </i> <code> + "/" + </code> <i><node name> </i>. Note that * all absolute path names begin with the slash character. * * <p> * A node <i>n </i>'s path name relative to its ancestor <i>a </i> is simply the * string that must be appended to <i>a </i>'s absolute path name in order to * form <i>n </i>'s absolute path name, with the initial slash character (if * present) removed. Note that: * <ul> * <li>No relative path names begin with the slash character. * <li>Every node's path name relative to itself is the empty string. * <li>Every node's path name relative to its parent is its node name (except * for the root node, which does not have a parent). * <li>Every node's path name relative to the root is its absolute path name * with the initial slash character removed. * </ul> * * <p> * Note finally that: * <ul> * <li>No path name contains multiple consecutive slash characters. * <li>No path name with the exception of the root's absolute path name end in * the slash character. * <li>Any string that conforms to these two rules is a valid path name. * </ul> * * <p> * Each <code>Preference</code> node has zero or more properties associated with * it, where a property consists of a name and a value. The bundle writer is * free to choose any appropriate names for properties. Their values can be of * type <code>QString</code>,<code>long</code>,<code>int</code>,<code>bool</code>, * <code>std::vector<char></code>,<code>float</code>, or <code>double</code> but they can * always be accessed as if they were <code>QString</code> objects. * * <p> * All node name and property name comparisons are case-sensitive. * * <p> * All of the methods that modify preference data are permitted to operate * asynchronously; they may return immediately, and changes will eventually * propagate to the persistent backing store, with an implementation-dependent * delay. The <code>flush</code> method may be used to synchronously force updates * to the backing store. * * <p> * Implementations must automatically attempt to flush to the backing store any * pending updates for a bundle's preferences when the bundle is stopped or * otherwise ungets the IPreferences Service. * * <p> * The methods in this class may be invoked concurrently by multiple threads in * a single Java Virtual Machine (JVM) without the need for external * synchronization, and the results will be equivalent to some serial execution. * If this class is used concurrently <i>by multiple JVMs </i> that store their * preference data in the same backing store, the data store will not be * corrupted, but no other guarantees are made concerning the consistency of the * preference data. * * * @version $Revision$ */ struct org_blueberry_core_runtime_EXPORT IPreferences : virtual public Object { berryObjectMacro(berry::IPreferences); ~IPreferences() override; /** * Associates the specified value with the specified key in this node. * * @param key key with which the specified value is to be associated. * @param value value to be associated with the specified key. * @throws NullPointerException if <code>key</code> or <code>value</code> is * <code>null</code>. * @throws IllegalStateException if this node (or an ancestor) has been - * removed with the {@link #removeNode()}method. + * removed with the {@link #Remove()}method. */ virtual void Put(const QString& key, const QString& value) = 0; /** * Returns the value associated with the specified <code>key</code> in this * node. Returns the specified default if there is no value associated with * the <code>key</code>, or the backing store is inaccessible. * * @param key key whose associated value is to be returned. * @param def the value to be returned in the event that this node has no * value associated with <code>key</code> or the backing store is * inaccessible. * @return the value associated with <code>key</code>, or <code>def</code> if * no value is associated with <code>key</code>. * @throws IllegalStateException if this node (or an ancestor) has been - * removed with the {@link #removeNode()}method. + * removed with the {@link #Remove()}method. * @throws NullPointerException if <code>key</code> is <code>null</code>. (A * <code>null</code> default <i>is </i> permitted.) */ virtual QString Get(const QString& key, const QString& def) const = 0; /** * Removes the value associated with the specified <code>key</code> in this * node, if any. * * @param key key whose mapping is to be removed from this node. - * @see #get(const QString&,const QString&) + * @see #Get * @throws IllegalStateException if this node (or an ancestor) has been - * removed with the {@link #removeNode()}method. + * removed with the {@link #Remove()}method. */ virtual void Remove(const QString& key) = 0; /** * Removes all of the properties (key-value associations) in this node. This * call has no effect on any descendants of this node. * * @throws BackingStoreException if this operation cannot be completed due * to a failure in the backing store, or inability to communicate * with it. * @throws IllegalStateException if this node (or an ancestor) has been - * removed with the {@link #removeNode()}method. - * @see #remove(const QString&) + * removed with the {@link #Remove()}method. + * @see #Remove(const QString&) */ virtual void Clear() = 0; /** * Associates a <code>QString</code> object representing the specified * <code>int</code> value with the specified <code>key</code> in this node. The * associated string is the one that would be returned if the <code>int</code> * value were passed to <code>Integer.toString(int)</code>. This method is - * intended for use in conjunction with {@link #getInt}method. + * intended for use in conjunction with {@link #GetInt}method. * * <p> * Implementor's note: it is <i>not </i> necessary that the property value * be represented by a <code>QString</code> object in the backing store. If the * backing store supports integer values, it is not unreasonable to use * them. This implementation detail is not visible through the * <code>IPreferences</code> API, which allows the value to be read as an * <code>int</code> (with <code>getInt</code> or a <code>QString</code> (with * <code>get</code>) type. * * @param key key with which the string form of value is to be associated. * @param value <code>value</code> whose string form is to be associated with * <code>key</code>. * @throws NullPointerException if <code>key</code> is <code>null</code>. * @throws IllegalStateException if this node (or an ancestor) has been - * removed with the {@link #removeNode()}method. - * @see #getInt(const QString&,int) + * removed with the {@link #Remove()}method. + * @see #GetInt */ virtual void PutInt(const QString& key, int value) = 0; /** * Returns the <code>int</code> value represented by the <code>QString</code> * object associated with the specified <code>key</code> in this node. The * <code>QString</code> object is converted to an <code>int</code> as by * <code>Integer.parseInt(QString)</code>. Returns the specified default if * there is no value associated with the <code>key</code>, the backing store * is inaccessible, or if <code>Integer.parseInt(QString)</code> would throw a * <code>NumberFormatException</code> if the associated <code>value</code> were * passed. This method is intended for use in conjunction with the - * {@link #putInt}method. + * {@link #PutInt}method. * * @param key key whose associated value is to be returned as an * <code>int</code>. * @param def the value to be returned in the event that this node has no * value associated with <code>key</code> or the associated value * cannot be interpreted as an <code>int</code> or the backing store is * inaccessible. * @return the <code>int</code> value represented by the <code>QString</code> * object associated with <code>key</code> in this node, or * <code>def</code> if the associated value does not exist or cannot * be interpreted as an <code>int</code> type. * @throws NullPointerException if <code>key</code> is <code>null</code>. * @throws IllegalStateException if this node (or an ancestor) has been - * removed with the {@link #removeNode()}method. - * @see #putInt(const QString&,int) - * @see #get(const QString&,const QString&) + * removed with the {@link #Remove()}method. + * @see #PutInt(const QString&,int) + * @see #Get */ virtual int GetInt(const QString& key, int def) const = 0; /** * Associates a <code>QString</code> object representing the specified * <code>long</code> value with the specified <code>key</code> in this node. The * associated <code>QString</code> object is the one that would be returned if * the <code>long</code> value were passed to <code>Long.toString(long)</code>. - * This method is intended for use in conjunction with the {@link #getLong} + * This method is intended for use in conjunction with the {@link #GetLong} * method. * * <p> * Implementor's note: it is <i>not </i> necessary that the <code>value</code> * be represented by a <code>QString</code> type in the backing store. If the * backing store supports <code>long</code> values, it is not unreasonable to * use them. This implementation detail is not visible through the <code> * IPreferences</code> API, which allows the value to be read as a * <code>long</code> (with <code>getLong</code> or a <code>QString</code> (with * <code>get</code>) type. * * @param key <code>key</code> with which the string form of <code>value</code> * is to be associated. * @param value <code>value</code> whose string form is to be associated with * <code>key</code>. * @throws NullPointerException if <code>key</code> is <code>null</code>. * @throws IllegalStateException if this node (or an ancestor) has been - * removed with the {@link #removeNode()}method. - * @see #getLong(const QString&,long) + * removed with the {@link #Remove()}method. + * @see #GetLong */ virtual void PutLong(const QString& key, long value) = 0; /** * Returns the <code>long</code> value represented by the <code>QString</code> * object associated with the specified <code>key</code> in this node. The * <code>QString</code> object is converted to a <code>long</code> as by * <code>Long.parseLong(QString)</code>. Returns the specified default if * there is no value associated with the <code>key</code>, the backing store * is inaccessible, or if <code>Long.parseLong(QString)</code> would throw a * <code>NumberFormatException</code> if the associated <code>value</code> were * passed. This method is intended for use in conjunction with the - * {@link #putLong}method. + * {@link #PutLong}method. * * @param key <code>key</code> whose associated value is to be returned as a * <code>long</code> value. * @param def the value to be returned in the event that this node has no * value associated with <code>key</code> or the associated value * cannot be interpreted as a <code>long</code> type or the backing * store is inaccessible. * @return the <code>long</code> value represented by the <code>QString</code> * object associated with <code>key</code> in this node, or * <code>def</code> if the associated value does not exist or cannot * be interpreted as a <code>long</code> type. * @throws NullPointerException if <code>key</code> is <code>null</code>. * @throws IllegalStateException if this node (or an ancestor) has been - * removed with the {@link #removeNode()}method. - * @see #putLong(const QString&,long) - * @see #get(const QString&,const QString&) + * removed with the {@link #Remove()}method. + * @see #PutLong(const QString&,long) + * @see #Get */ virtual long GetLong(const QString& key, long def) const = 0; /** * Associates a <code>QString</code> object representing the specified * <code>bool</code> value with the specified key in this node. The * associated string is "true" if the value is <code>true</code>, and "false" * if it is <code>false</code>. This method is intended for use in - * conjunction with the {@link #getBool}method. + * conjunction with the {@link #GetBool}method. * * <p> * Implementor's note: it is <i>not </i> necessary that the value be * represented by a string in the backing store. If the backing store * supports <code>bool</code> values, it is not unreasonable to use them. * This implementation detail is not visible through the <code>IPreferences * </code> API, which allows the value to be read as a <code>bool</code> * (with <code>getBool</code>) or a <code>QString</code> (with <code>get</code>) * type. * * @param key <code>key</code> with which the string form of value is to be * associated. * @param value value whose string form is to be associated with * <code>key</code>. * @throws NullPointerException if <code>key</code> is <code>null</code>. * @throws IllegalStateException if this node (or an ancestor) has been - * removed with the {@link #removeNode()}method. - * @see #getBool(const QString&,bool) - * @see #get(const QString&,const QString&) + * removed with the {@link #Remove()}method. + * @see #GetBool + * @see #Get */ virtual void PutBool(const QString& key, bool value) = 0; /** * Returns the <code>bool</code> value represented by the <code>QString</code> * object associated with the specified <code>key</code> in this node. Valid * strings are "true", which represents <code>true</code>, and "false", which * represents <code>false</code>. Case is ignored, so, for example, "TRUE" * and "False" are also valid. This method is intended for use in - * conjunction with the {@link #putBool}method. + * conjunction with the {@link #PutBool}method. * * <p> * Returns the specified default if there is no value associated with the * <code>key</code>, the backing store is inaccessible, or if the associated * value is something other than "true" or "false", ignoring case. * * @param key <code>key</code> whose associated value is to be returned as a * <code>bool</code>. * @param def the value to be returned in the event that this node has no * value associated with <code>key</code> or the associated value * cannot be interpreted as a <code>bool</code> or the backing store * is inaccessible. * @return the <code>bool</code> value represented by the <code>std::string</code> * object associated with <code>key</code> in this node, or * <code>null</code> if the associated value does not exist or cannot * be interpreted as a <code>bool</code>. * @throws NullPointerException if <code>key</code> is <code>null</code>. * @throws IllegalStateException if this node (or an ancestor) has been - * removed with the {@link #removeNode()}method. - * @see #get(const QString&,const QString&) - * @see #putBool(const QString&,bool) + * removed with the {@link #Remove()}method. + * @see #Get + * @see #PutBool */ virtual bool GetBool(const QString& key, bool def) const = 0; /** * Associates a <code>QString</code> object representing the specified * <code>float</code> value with the specified <code>key</code> in this node. * The associated <code>QString</code> object is the one that would be returned * if the <code>float</code> value were passed to * <code>Float.toString(float)</code>. This method is intended for use in - * conjunction with the {@link #getFloat}method. + * conjunction with the {@link #GetFloat}method. * * <p> * Implementor's note: it is <i>not </i> necessary that the value be * represented by a string in the backing store. If the backing store * supports <code>float</code> values, it is not unreasonable to use them. * This implementation detail is not visible through the <code>IPreferences * </code> API, which allows the value to be read as a <code>float</code> (with * <code>getFloat</code>) or a <code>QString</code> (with <code>get</code>) type. * * @param key <code>key</code> with which the string form of value is to be * associated. * @param value value whose string form is to be associated with * <code>key</code>. * @throws NullPointerException if <code>key</code> is <code>null</code>. * @throws IllegalStateException if this node (or an ancestor) has been - * removed with the {@link #removeNode()}method. - * @see #getFloat(const QString&,float) + * removed with the {@link #Remove()}method. + * @see #GetFloat */ virtual void PutFloat(const QString& key, float value) = 0; /** * Returns the float <code>value</code> represented by the <code>QString</code> * object associated with the specified <code>key</code> in this node. The * <code>QString</code> object is converted to a <code>float</code> value as by * <code>Float.parseFloat(QString)</code>. Returns the specified default if * there is no value associated with the <code>key</code>, the backing store * is inaccessible, or if <code>Float.parseFloat(QString)</code> would throw a * <code>NumberFormatException</code> if the associated value were passed. - * This method is intended for use in conjunction with the {@link #putFloat} + * This method is intended for use in conjunction with the {@link #PutFloat} * method. * * @param key <code>key</code> whose associated value is to be returned as a * <code>float</code> value. * @param def the value to be returned in the event that this node has no * value associated with <code>key</code> or the associated value * cannot be interpreted as a <code>float</code> type or the backing * store is inaccessible. * @return the <code>float</code> value represented by the string associated * with <code>key</code> in this node, or <code>def</code> if the * associated value does not exist or cannot be interpreted as a * <code>float</code> type. * @throws IllegalStateException if this node (or an ancestor) has been - * removed with the {@link #removeNode()}method. + * removed with the {@link #Remove()}method. * @throws NullPointerException if <code>key</code> is <code>null</code>. - * @see #putFloat(const QString&,float) - * @see #get(const QString&,const QString&) + * @see #PutFloat + * @see #Get */ virtual float GetFloat(const QString& key, float def) const = 0; /** * Associates a <code>QString</code> object representing the specified * <code>double</code> value with the specified <code>key</code> in this node. * The associated <code>QString</code> object is the one that would be returned * if the <code>double</code> value were passed to * <code>Double.toString(double)</code>. This method is intended for use in - * conjunction with the {@link #getDouble}method + * conjunction with the {@link #GetDouble}method * * <p> * Implementor's note: it is <i>not </i> necessary that the value be * represented by a string in the backing store. If the backing store * supports <code>double</code> values, it is not unreasonable to use them. * This implementation detail is not visible through the <code>IPreferences * </code> API, which allows the value to be read as a <code>double</code> (with * <code>getDouble</code>) or a <code>QString</code> (with <code>get</code>) * type. * * @param key <code>key</code> with which the string form of value is to be * associated. * @param value value whose string form is to be associated with * <code>key</code>. * @throws NullPointerException if <code>key</code> is <code>null</code>. * @throws IllegalStateException if this node (or an ancestor) has been - * removed with the {@link #removeNode()}method. - * @see #getDouble(const QString&,double) + * removed with the {@link #Remove()}method. + * @see #GetDouble */ virtual void PutDouble(const QString& key, double value) = 0; /** * Returns the <code>double</code> value represented by the <code>QString</code> * object associated with the specified <code>key</code> in this node. The * <code>QString</code> object is converted to a <code>double</code> value as by * <code>Double.parseDouble(QString)</code>. Returns the specified default if * there is no value associated with the <code>key</code>, the backing store * is inaccessible, or if <code>Double.parseDouble(QString)</code> would throw * a <code>NumberFormatException</code> if the associated value were passed. * This method is intended for use in conjunction with the - * {@link #putDouble}method. + * {@link #PutDouble}method. * * @param key <code>key</code> whose associated value is to be returned as a * <code>double</code> value. * @param def the value to be returned in the event that this node has no * value associated with <code>key</code> or the associated value * cannot be interpreted as a <code>double</code> type or the backing * store is inaccessible. * @return the <code>double</code> value represented by the <code>QString</code> * object associated with <code>key</code> in this node, or * <code>def</code> if the associated value does not exist or cannot * be interpreted as a <code>double</code> type. * @throws IllegalStateException if this node (or an ancestor) has been - * removed with the the {@link #removeNode()}method. + * removed with the the {@link #Remove()}method. * @throws NullPointerException if <code>key</code> is <code>null</code>. - * @see #putDouble(const QString&,double) - * @see #get(const QString&,const QString&) + * @see #PutDouble + * @see #Get */ virtual double GetDouble(const QString& key, double def) const = 0; /** * Associates a <code>QByteArray</code> object representing the specified * <code>QByteArray</code> with the specified <code>key</code> in this node. The * associated <code>QByteArray</code> object is stored in <i>Base64</i> encoding. * This method is intended for use in conjunction with the - * {@link #getByteArray}method. + * {@link #GetByteArray}method. * * @param key <code>key</code> with which the string form of <code>value</code> * is to be associated. * @param value <code>value</code> whose string form is to be associated with * <code>key</code>. * @throws NullPointerException if <code>key</code> or <code>value</code> is * <code>null</code>. * @throws IllegalStateException if this node (or an ancestor) has been - * removed with the {@link #removeNode()}method. - * @see #GetByteArray(const QString&,const QByteArray&) - * @see #Get(const QString&,const QString&) + * removed with the {@link #Remove()}method. + * @see #GetByteArray + * @see #Get */ virtual void PutByteArray(const QString& key, const QByteArray& value) = 0; /** * Returns the <code>QByteArray</code> value represented by the <code>QString</code> * object associated with the specified <code>key</code> in this node. Valid * <code>QString</code> objects are <i>Base64 </i> encoded binary data, as * defined in <a href="http://www.ietf.org/rfc/rfc2045.txt">RFC 2045 </a>, * Section 6.8, with one minor change: the string must consist solely of * characters from the <i>Base64 Alphabet </i>; no newline characters or * extraneous characters are permitted. This method is intended for use in - * conjunction with the {@link #putByteArray}method. + * conjunction with the {@link #PutByteArray}method. * * <p> * Returns the specified default if there is no value associated with the * <code>key</code>, the backing store is inaccessible, or if the associated * value is not a valid Base64 encoded byte array (as defined above). * * @param key <code>key</code> whose associated value is to be returned as a * <code>std::vector<char></code> object. * @param def the value to be returned in the event that this node has no * value associated with <code>key</code> or the associated value * cannot be interpreted as a <code>std::vector<char></code> type, or the backing * store is inaccessible. * @return the <code>std::vector<char></code> value represented by the <code>QString</code> * object associated with <code>key</code> in this node, or * <code>def</code> if the associated value does not exist or cannot * be interpreted as a <code>std::vector<char></code>. * @throws NullPointerException if <code>key</code> is <code>null</code>. (A * <code>null</code> value for <code>def</code> <i>is </i> permitted.) * @throws IllegalStateException if this node (or an ancestor) has been - * removed with the {@link #removeNode()}method. - * @see #get(const QString&,const QString&) - * @see #putByteArray(const QString&,std::vector<char>) + * removed with the {@link #Remove()}method. + * @see #Get + * @see #PutByteArray */ virtual QByteArray GetByteArray(const QString& key, const QByteArray& def) const = 0; /** * Returns all of the keys that have an associated value in this node. (The * returned array will be of size zero if this node has no preferences and * not <code>null</code>!) * * @return an array of the keys that have an associated value in this node. * @throws BackingStoreException if this operation cannot be completed due * to a failure in the backing store, or inability to communicate * with it. * @throws IllegalStateException if this node (or an ancestor) has been - * removed with the {@link #removeNode()}method. + * removed with the {@link #Remove()}method. */ virtual QStringList Keys() const = 0; /** * Returns the names of the children of this node. (The returned array will * be of size zero if this node has no children and not <code>null</code>!) * * @return the names of the children of this node. * @throws BackingStoreException if this operation cannot be completed due * to a failure in the backing store, or inability to communicate * with it. * @throws IllegalStateException if this node (or an ancestor) has been - * removed with the {@link #removeNode()}method. + * removed with the {@link #Remove()}method. */ virtual QStringList ChildrenNames() const = 0; /** * Returns the parent of this node, or <code>null</code> if this is the root. * * @return the parent of this node. * @throws IllegalStateException if this node (or an ancestor) has been - * removed with the {@link #removeNode()}method. + * removed with the {@link #Remove()}method. */ virtual IPreferences::Pointer Parent() const = 0; /** * Returns a named <code>IPreferences</code> object (node), creating it and any * of its ancestors if they do not already exist. Accepts a relative or * absolute pathname. Absolute pathnames (which begin with <code>'/'</code>) * are interpreted relative to the root of this node. Relative pathnames * (which begin with any character other than <code>'/'</code>) are * interpreted relative to this node itself. The empty string (<code>""</code>) * is a valid relative pathname, referring to this node itself. * * <p> * If the returned node did not exist prior to this call, this node and any * ancestors that were created by this call are not guaranteed to become * persistent until the <code>flush</code> method is called on the returned * node (or one of its descendants). * * @param pathName the path name of the <code>IPreferences</code> object to * return. * @return the specified <code>IPreferences</code> object. * @throws IllegalArgumentException if the path name is invalid. * @throws IllegalStateException if this node (or an ancestor) has been - * removed with the {@link #removeNode()}method. + * removed with the {@link #Remove()}method. * @throws NullPointerException if path name is <code>null</code>. - * @see #flush() + * @see #Flush() */ virtual IPreferences::Pointer Node(const QString& pathName) = 0; /** * Returns true if the named node exists. Accepts a relative or absolute * pathname. Absolute pathnames (which begin with <code>'/'</code>) are * interpreted relative to the root of this node. Relative pathnames (which * begin with any character other than <code>'/'</code>) are interpreted * relative to this node itself. The pathname <code>""</code> is valid, and * refers to this node itself. * * <p> * If this node (or an ancestor) has already been removed with the - * {@link #removeNode()}method, it <i>is </i> legal to invoke this method, + * {@link #Remove()}method, it <i>is </i> legal to invoke this method, * but only with the pathname <code>""</code>; the invocation will return * <code>false</code>. Thus, the idiom <code>p.nodeExists("")</code> may be * used to test whether <code>p</code> has been removed. * * @param pathName the path name of the node whose existence is to be * checked. * @return true if the specified node exists. * @throws BackingStoreException if this operation cannot be completed due * to a failure in the backing store, or inability to communicate * with it. * @throws IllegalStateException if this node (or an ancestor) has been - * removed with the {@link #removeNode()}method and + * removed with the {@link #Remove()}method and * <code>pathname</code> is not the empty string (<code>""</code>). * @throws IllegalArgumentException if the path name is invalid (i.e., it * contains multiple consecutive slash characters, or ends with a * slash character and is more than one character long). */ virtual bool NodeExists(const QString& pathName) const = 0; /** * Removes this node and all of its descendants, invalidating any properties * contained in the removed nodes. Once a node has been removed, attempting * any method other than <code>name()</code>,<code>absolutePath()</code> or * <code>nodeExists("")</code> on the corresponding <code>IPreferences</code> * instance will fail with an <code>IllegalStateException</code>. (The * methods defined on <code>Object</code> can still be invoked on a node after * it has been removed; they will not throw <code>IllegalStateException</code>.) * * <p> * The removal is not guaranteed to be persistent until the <code>flush</code> * method is called on the parent of this node. * * @throws IllegalStateException if this node (or an ancestor) has already - * been removed with the {@link #removeNode()}method. + * been removed with the {@link #Remove()}method. * @throws BackingStoreException if this operation cannot be completed due * to a failure in the backing store, or inability to communicate * with it. - * @see #flush() + * @see #Flush() */ virtual void RemoveNode() = 0; /** * Returns this node's name, relative to its parent. * * @return this node's name, relative to its parent. */ virtual QString Name() const = 0; /** * Returns this node's absolute path name. Note that: * <ul> * <li>Root node - The path name of the root node is <code>"/"</code>. * <li>Slash at end - Path names other than that of the root node may not * end in slash (<code>'/'</code>). * <li>Unusual names -<code>"."</code> and <code>".."</code> have <i>no </i> * special significance in path names. * <li>Illegal names - The only illegal path names are those that contain * multiple consecutive slashes, or that end in slash and are not the root. * </ul> * * @return this node's absolute path name. */ virtual QString AbsolutePath() const = 0; /** * Forces any changes in the contents of this node and its descendants to * the persistent store. * * <p> * Once this method returns successfully, it is safe to assume that all * changes made in the subtree rooted at this node prior to the method * invocation have become permanent. * * <p> * Implementations are free to flush changes into the persistent store at * any time. They do not need to wait for this method to be called. * * <p> * When a flush occurs on a newly created node, it is made persistent, as * are any ancestors (and descendants) that have yet to be made persistent. * Note however that any properties value changes in ancestors are <i>not * </i> guaranteed to be made persistent. * * @throws BackingStoreException if this operation cannot be completed due * to a failure in the backing store, or inability to communicate * with it. * @throws IllegalStateException if this node (or an ancestor) has been - * removed with the {@link #removeNode()}method. - * @see #sync() + * removed with the {@link #Remove()}method. + * @see #Sync() */ virtual void Flush() = 0; /** * Ensures that future reads from this node and its descendants reflect any * changes that were committed to the persistent store (from any VM) prior * to the <code>sync</code> invocation. As a side-effect, forces any changes * in the contents of this node and its descendants to the persistent store, * as if the <code>flush</code> method had been invoked on this node. * * @throws BackingStoreException if this operation cannot be completed due * to a failure in the backing store, or inability to communicate * with it. * @throws IllegalStateException if this node (or an ancestor) has been - * removed with the {@link #removeNode()}method. - * @see #flush() + * removed with the {@link #Remove()}method. + * @see #Flush() */ virtual void Sync() = 0; /** * Sets a flag to the parameter <code>block</code> which can be used to * block berry messages in order to prevent callback functions to be called. * * @param block boolean to set the flag */ virtual void BlockSignals(bool block) = 0; }; } // namespace berry #endif /*BERRYIPREFERENCES_H_*/ diff --git a/Plugins/org.blueberry.core.runtime/src/berryMultiStatus.h b/Plugins/org.blueberry.core.runtime/src/berryMultiStatus.h index 317d1c09be..d37281db7c 100644 --- a/Plugins/org.blueberry.core.runtime/src/berryMultiStatus.h +++ b/Plugins/org.blueberry.core.runtime/src/berryMultiStatus.h @@ -1,143 +1,145 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYMULTISTATUS_H_ #define BERRYMULTISTATUS_H_ #include "berryStatus.h" #include <org_blueberry_core_runtime_Export.h> namespace berry { /** * A concrete multi-status implementation, * suitable either for instantiating or subclassing. * <p> * This class can be used without OSGi running. * </p> */ class org_blueberry_core_runtime_EXPORT MultiStatus : public Status { private: /** List of child statuses. */ QList<IStatus::Pointer> children; Severity GetMaxSeverity(const QList<Pointer> &children) const; public: berryObjectMacro(berry::MultiStatus); /** * Creates and returns a new multi-status object with the given children. * * @param pluginId the unique identifier of the relevant plug-in * @param code the plug-in-specific status code * @param newChildren the list of children status objects * @param message a human-readable message, localized to the * current locale + * @param sl */ MultiStatus(const QString& pluginId, int code, const QList<IStatus::Pointer>& newChildren, const QString& message, const SourceLocation& sl); /** * Creates and returns a new multi-status object with the given children. * * @param pluginId the unique identifier of the relevant plug-in * @param code the plug-in-specific status code * @param newChildren the list of children status objects * @param message a human-readable message, localized to the * current locale * @param exception a low-level exception. + * @param sl */ MultiStatus(const QString& pluginId, int code, const QList<IStatus::Pointer>& newChildren, const QString& message, const ctkException& exception, const SourceLocation& sl); /** * Creates and returns a new multi-status object with no children. * * @param pluginId the unique identifier of the relevant plug-in * @param code the plug-in-specific status code * @param message a human-readable message, localized to the * current locale + * @param sl */ MultiStatus(const QString& pluginId, int code, const QString& message, const SourceLocation& sl); /** * Creates and returns a new multi-status object with no children. * * @param pluginId the unique identifier of the relevant plug-in * @param code the plug-in-specific status code * @param message a human-readable message, localized to the * current locale * @param exception a low-level exception, or <code>null</code> if not * applicable + * @param sl */ MultiStatus(const QString& pluginId, int code, const QString& message, const ctkException& exception, const SourceLocation& sl); /** * Adds the given status to this multi-status. * * @param status the new child status */ void Add(IStatus::Pointer status); /** * Adds all of the children of the given status to this multi-status. * Does nothing if the given status has no children (which includes * the case where it is not a multi-status). * * @param status the status whose children are to be added to this one */ void AddAll(IStatus::Pointer status); /* (Intentionally not javadoc'd) * Implements the corresponding method on <code>IStatus</code>. */ QList<IStatus::Pointer> GetChildren() const override; /* (Intentionally not javadoc'd) * Implements the corresponding method on <code>IStatus</code>. */ bool IsMultiStatus() const override; /** * Merges the given status into this multi-status. - * Equivalent to <code>add(status)</code> if the + * Equivalent to <code>Add(status)</code> if the * given status is not a multi-status. - * Equivalent to <code>addAll(status)</code> if the + * Equivalent to <code>AddAll(status)</code> if the * given status is a multi-status. * * @param status the status to merge into this one - * @see #add(IStatus) - * @see #addAll(IStatus) */ void Merge(const IStatus::Pointer& status); /** * Returns a string representation of the status, suitable * for debugging purposes only. */ QString ToString() const override; }; } #endif /* BERRYMULTISTATUS_H_ */ diff --git a/Plugins/org.blueberry.core.runtime/src/registry/berryInvalidRegistryObjectException.h b/Plugins/org.blueberry.core.runtime/src/registry/berryInvalidRegistryObjectException.h index b3b7403a23..06aff813a9 100644 --- a/Plugins/org.blueberry.core.runtime/src/registry/berryInvalidRegistryObjectException.h +++ b/Plugins/org.blueberry.core.runtime/src/registry/berryInvalidRegistryObjectException.h @@ -1,47 +1,45 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYINVALIDREGISTRYOBJECTEXCEPTION_H #define BERRYINVALIDREGISTRYOBJECTEXCEPTION_H #include <ctkException.h> #include <org_blueberry_core_runtime_Export.h> namespace berry { /** * An exception indicating an attempt to access * an extension registry object that is no longer valid. * <p> * This exception is thrown by methods on extension registry * objects. It is not intended to be instantiated or * subclassed by clients. * </p> - * @noinstantiate This class is not intended to be instantiated by clients. - * @noextend This class is not intended to be subclassed by clients. */ class org_blueberry_core_runtime_EXPORT InvalidRegistryObjectException : public ctkRuntimeException { public: InvalidRegistryObjectException(); ~InvalidRegistryObjectException() throw() override; const char* name() const throw() override; InvalidRegistryObjectException* clone() const override; void rethrow() const override; }; } #endif // BERRYINVALIDREGISTRYOBJECTEXCEPTION_H diff --git a/Plugins/org.blueberry.ui.qt/src/actions/berryIMenuManager.h b/Plugins/org.blueberry.ui.qt/src/actions/berryIMenuManager.h index 5cd2e47d04..ff5a0c7727 100644 --- a/Plugins/org.blueberry.ui.qt/src/actions/berryIMenuManager.h +++ b/Plugins/org.blueberry.ui.qt/src/actions/berryIMenuManager.h @@ -1,126 +1,125 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYIMENUMANAGER_H #define BERRYIMENUMANAGER_H #include <berryIContributionManager.h> #include <berryIContributionItem.h> namespace berry { /** * The <code>IMenuManager</code> interface provides protocol for managing * contributions to a menu bar and its sub menus. * An <code>IMenuManager</code> is also an <code>IContributionItem</code>, * allowing sub-menus to be nested in parent menus. * <p> * This interface is internal to the framework; it should not be implemented outside * the framework. * </p> * <p> * This package provides a concrete menu manager implementation, * {@link MenuManager <code>MenuManager</code>}. * </p> - * @noimplement This interface is not intended to be implemented by clients. */ struct IMenuManager : public virtual IContributionManager, public IContributionItem { berryObjectMacro(berry::IMenuManager); /** * Adds a menu listener to this menu. * Has no effect if an identical listener is already registered. * * @param listener a menu listener */ virtual void AddMenuListener(QObject* listener) = 0; /** * Finds the manager for the menu at the given path. A path * consists of contribution item ids separated by the separator * character. The path separator character is <code>'/'</code>. * <p> * Convenience for <code>findUsingPath(path)</code> which * extracts an <code>IMenuManager</code> if possible. * </p> * * @param path the path string * @return the menu contribution item, or <code>null</code> * if there is no such contribution item or if the item does * not have an associated menu manager */ virtual IMenuManager::Pointer FindMenuUsingPath(const QString& path) const = 0; /** * Finds the contribution item at the given path. A path * consists of contribution item ids separated by the separator * character. The path separator character is <code>'/'</code>. * * @param path the path string * @return the contribution item, or <code>null</code> if there is no * such contribution item */ virtual IContributionItem::Pointer FindUsingPath(const QString& path) const = 0; /** * Returns whether all items should be removed when the menu is about to * show, but before notifying menu listeners. The default is * <code>false</code>. * * @return <code>true</code> if all items should be removed when shown, * <code>false</code> if not */ virtual bool GetRemoveAllWhenShown() const = 0; /** * Returns whether this menu should be enabled or not. * * @return <code>true</code> if enabled, and * <code>false</code> if disabled */ bool IsEnabled() const override = 0; /** * Removes the given menu listener from this menu. * Has no effect if an identical listener is not registered. * * @param listener the menu listener */ virtual void RemoveMenuListener(QObject* listener) = 0; /** * Sets whether all items should be removed when the menu is about to show, * but before notifying menu listeners. * * @param removeAll * <code>true</code> if all items should be removed when shown, * <code>false</code> if not */ virtual void SetRemoveAllWhenShown(bool removeAll) = 0; /** * Incrementally builds the menu from the contribution items, and * does so recursively for all submenus. * * @param force <code>true</code> means update even if not dirty, * and <code>false</code> for normal incremental updating */ virtual void UpdateAll(bool force) = 0; }; } #endif // BERRYIMENUMANAGER_H diff --git a/Plugins/org.blueberry.ui.qt/src/actions/berryMenuManager.h b/Plugins/org.blueberry.ui.qt/src/actions/berryMenuManager.h index 40dd184909..21b4b66e54 100644 --- a/Plugins/org.blueberry.ui.qt/src/actions/berryMenuManager.h +++ b/Plugins/org.blueberry.ui.qt/src/actions/berryMenuManager.h @@ -1,403 +1,403 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYMENUMANAGER_H_ #define BERRYMENUMANAGER_H_ #include "berryIMenuManager.h" #include "berryContributionManager.h" #include <org_blueberry_ui_qt_Export.h> #include <QIcon> class QMenu; class QMenuProxy; class QAction; namespace berry { /** * A menu manager is a contribution manager which realizes itself and its items * in a menu control; either as a menu bar, a sub-menu, or a context menu. * <p> * This class may be instantiated; it may also be subclassed. * </p> */ class BERRY_UI_QT MenuManager: public QObject, public ContributionManager, public IMenuManager { Q_OBJECT public: berryObjectMacro(MenuManager); private: /** * The menu id. */ QString id; /** * The menu control; <code>null</code> before * creation and after disposal. */ QMenuProxy* menu; QAction* menuItem; /** * The menu item widget; <code>null</code> before * creation and after disposal. This field is used * when this menu manager is a sub-menu. */ //SmartPointer<IMenuItem> menuItem; /** * The text for a sub-menu. */ QString menuText; /** * The image for a sub-menu. */ QIcon image; /** * The overrides for items of this manager */ SmartPointer<IContributionManagerOverrides> overrides; /** * The parent contribution manager. */ IContributionManager* parent; /** * Indicates whether <code>removeAll</code> should be * called just before the menu is displayed. */ bool removeAllWhenShown; /** * allows a submenu to display a shortcut key. This is often used with the * QuickMenu command or action which can pop up a menu using the shortcut. */ QString definitionId; private: Q_SLOT void HandleAboutToShow(); Q_SLOT void HandleAboutToHide(); protected: /** * Indicates this item is visible in its manager; <code>true</code> * by default. */ bool visible; public: Q_SIGNAL void AboutToShow(IMenuManager* mm); Q_SIGNAL void AboutToHide(IMenuManager* mm); /** * Creates a menu manager with the given text and id. * Typically no text is given when creating a context menu. * Supply a text and id for creating a sub-menu, where it needs to be referred to by the id. * * @param text the text for the menu, or <code>""</code> if none * @param id the menu id, or <code>""</code> if it is to have no id */ MenuManager(const QString& text = QString(), const QString& id = QString()); ~MenuManager() override; /** * Creates a menu manager with the given text, image, and id. * Typically used for creating a sub-menu, where it needs to be referred to by id. * * @param text the text for the menu, or <code>""</code> if none * @param image the image for the menu, or <code>ImageDescriptor::Pointer(0)</code> if none * @param id the menu id, or <code>""</code> if it is to have no id */ MenuManager(const QString& text, const QIcon& image, const QString& id); bool IsDirty() const override; /** * Creates and returns a Qt menu control for this menu, * and installs all registered contributions. * Does not create a new control if one already exists. * <p> * Note that the menu is not expected to be dynamic. * </p> * * @param parent the parent control * @return the menu control */ QMenu* CreateContextMenu(QWidget* parent); /** * Creates and returns a Qt menu bar control for this menu, * for use in the given <code>QWidget</code>, and installs all registered * contributions. Does not create a new control if one already exists. * * @param parent the parent decorations * @return the menu control * @since 2.1 */ QMenuBar* CreateMenuBar(QWidget* parent); void AddMenuListener(QObject* listener) override; void RemoveMenuListener(QObject *listener) override; /* * @see IContributionItem#Fill(QStatusBar*) */ void Fill(QStatusBar* parent) override; /* * @see IContributionItem#Fill(QToolBar*, int) */ void Fill(QToolBar* parent, QAction *index) override; /* * @see IContributionItem#Fill(QMenu*, int) */ void Fill(QMenu* parent, QAction *before) override; /* * @see IContributionItem#Fill(QMenuBar*, int) */ void Fill(QMenuBar* parent, QAction *before) override; /* * @see IMenuManager#FindMenuUsingPath(const QString&) */ IMenuManager::Pointer FindMenuUsingPath(const QString& path) const override; /* * @see IMenuManager#FindUsingPath(const QString&) */ IContributionItem::Pointer FindUsingPath(const QString& path) const override; /** * Returns the menu id. The menu id is used when creating a contribution * item for adding this menu as a sub menu of another. * * @return the menu id */ QString GetId() const override; /** * Returns the SWT menu control for this menu manager. * * @return the menu control */ QMenu* GetMenu() const; /** * Returns the text shown in the menu, potentially with a shortcut * appended. * * @return the menu text */ QString GetMenuText() const; /** * Returns the image for this menu as an image descriptor. * * @return the image, or <code>null</code> if this menu has no image */ QIcon GetImage() const; /* * @see IContributionManager#GetOverrides() */ SmartPointer<IContributionManagerOverrides> GetOverrides() override; /** * Returns the parent contribution manager of this manger. * * @return the parent contribution manager */ IContributionManager* GetParent() const; /* * @see IMenuManager#GetRemoveAllWhenShown() */ bool GetRemoveAllWhenShown() const override; /* * @see IContributionItem#IsDynamic() */ bool IsDynamic() const override; /** * Returns whether this menu should be enabled or not. * Used to enable the menu item containing this menu when it is realized as a sub-menu. * <p> * The default implementation of this framework method * returns <code>true</code>. Subclasses may reimplement. * </p> * * @return <code>true</code> if enabled, and * <code>false</code> if disabled */ bool IsEnabled() const override; /* * @see IContributionItem#IsGroupMarker() */ bool IsGroupMarker() const override; /* * @see IContributionItem#IsSeparator() */ bool IsSeparator() const override; /* * @see IContributionItem#IsVisible() */ bool IsVisible() const override; /** * The <code>MenuManager</code> implementation of this <code>ContributionManager</code> method * also propagates the dirty flag up the parent chain. */ void MarkDirty() override; /* * @see IMenuManager#removeMenuListener(IMenuListener) */ //void RemoveMenuListener(SmartPointer<IMenuListener> listener); /* * @IContributionItem#SaveWidgetState() */ void SaveWidgetState() override; /** * Sets the overrides for this contribution manager * * @param newOverrides the overrides for the items of this manager */ void SetOverrides(SmartPointer<IContributionManagerOverrides> newOverrides); /* * @see IContributionItem#SetParent(IContributionManager) */ void SetParent(IContributionManager* manager) override; /* * @see IMenuManager#SetRemoveAllWhenShown(boolean) */ void SetRemoveAllWhenShown(bool removeAll) override; /* * @see IContributionItem#SetVisible(bool) */ void SetVisible(bool visible) override; /** * Sets the command id of this action. This simply allows the menu * item text to include a short cut if available. It can be used to * notify a user of a key combination that will open a quick menu. * * @param definitionId * the command definition id */ void SetCommandId(const QString& definitionId); /* * @see IContributionItem#Update() */ void Update() override; void Update(const QString& property) override; /** * The <code>MenuManager</code> implementation of this <code>IContributionManager</code> * updates this menu, but not any of its submenus. * - * @see #updateAll + * @see #UpdateAll */ void Update(bool force) override; /* * @see IMenuManager#UpdateAll(bool) */ void UpdateAll(bool force) override; private: /** * Initializes the menu control. */ void InitializeMenu(); /** * Dispose any images allocated for this menu */ // void DisposeOldImages(); /** * Updates the menu item for this sub menu. * The menu item is disabled if this sub menu is empty. * Does nothing if this menu is not a submenu. */ void UpdateMenuItem(); void FillMenu(QWidget* parent, QAction* before); void DumpActionInfo(QMenuProxy* menu); void DumpActionInfo(QWidget* widget, int level); protected: /** * Call an <code>IContributionItem</code>'s fill method with the * implementation's widget. The default is to use the <code>Menu</code> * widget.<br> * <code>fill(Menu menu, int index)</code> * * @param ci * An <code>IContributionItem</code> whose <code>fill()</code> * method should be called. - * @param index + * @param before * The position the <code>fill()</code> method should start * inserting at. */ void DoItemFill(IContributionItem::Pointer ci, QAction *before); /** * Incrementally builds the menu from the contribution items. * This method leaves out double separators and separators in the first * or last position. * * @param force <code>true</code> means update even if not dirty, * and <code>false</code> for normal incremental updating * @param recursive <code>true</code> means recursively update * all submenus, and <code>false</code> means just this menu */ void Update(bool force, bool recursive); }; } #endif /* BERRYMENUMANAGER_H_ */ diff --git a/Plugins/org.blueberry.ui.qt/src/application/berryIWorkbenchWindowConfigurer.h b/Plugins/org.blueberry.ui.qt/src/application/berryIWorkbenchWindowConfigurer.h index 6a0b8c6cc8..d4ce1df67e 100644 --- a/Plugins/org.blueberry.ui.qt/src/application/berryIWorkbenchWindowConfigurer.h +++ b/Plugins/org.blueberry.ui.qt/src/application/berryIWorkbenchWindowConfigurer.h @@ -1,372 +1,371 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYIWORKBENCHWINDOWCONFIGURER_H_ #define BERRYIWORKBENCHWINDOWCONFIGURER_H_ #include <berryObject.h> #include <org_blueberry_ui_qt_Export.h> class QMenuBar; namespace berry { struct IActionBarConfigurer; struct IDropTargetListener; struct IMemento; struct IWorkbenchConfigurer; struct IWorkbenchWindow; /** * Interface providing special access for configuring workbench windows. * <p> * %Window configurer objects are in 1-1 correspondence with the workbench * windows they configure. Clients may use <code>Get/SetData</code> to * associate arbitrary state with the window configurer object. * </p> * <p> * Note that these objects are only available to the main application * (the plug-in that creates and owns the workbench). * </p> * <p> * This interface is not intended to be implemented by clients. * </p> * * @see IWorkbenchConfigurer#GetWindowConfigurer() * @see WorkbenchAdvisor#PreWindowOpen() * @note This interface is not intended to be implemented by clients. */ struct BERRY_UI_QT IWorkbenchWindowConfigurer : public Object { berryObjectMacro(berry::IWorkbenchWindowConfigurer); ~IWorkbenchWindowConfigurer() override; /** * Returns the underlying workbench window. * * @return the workbench window */ virtual SmartPointer<IWorkbenchWindow> GetWindow() = 0; /** * Returns the workbench configurer. * * @return the workbench configurer */ virtual SmartPointer<IWorkbenchConfigurer> GetWorkbenchConfigurer() = 0; /** * Returns the action bar configurer for this workbench * window. * * @return the action bar configurer */ virtual SmartPointer<IActionBarConfigurer> GetActionBarConfigurer() = 0; /** * Returns the title of the underlying workbench window. * * @return the window title */ virtual QString GetTitle() = 0; /** * Sets the title of the underlying workbench window. * * @param title the window title */ virtual void SetTitle(const QString& title) = 0; /** * Returns whether the underlying workbench window has a menu bar. * <p> * The initial value is <code>true</code>. * </p> * * @return <code>true</code> for a menu bar, and <code>false</code> * for no menu bar */ virtual bool GetShowMenuBar() const = 0; /** * Sets whether the underlying workbench window has a menu bar. * * @param show <code>true</code> for a menu bar, and <code>false</code> * for no menu bar */ virtual void SetShowMenuBar(bool show) = 0; /** * Returns whether the underlying workbench window has a tool bar. * <p> * The initial value is <code>true</code>. * </p> * * @return <code>true</code> for a tool bar, and <code>false</code> * for no tool bar */ virtual bool GetShowToolBar() const = 0; /** * Sets whether the underlying workbench window has a tool bar. * * @param show <code>true</code> for a tool bar, and <code>false</code> * for no tool bar */ virtual void SetShowToolBar(bool show) = 0; /** * Returns whether the underlying workbench window has a status line. * <p> * The initial value is <code>true</code>. * </p> * * @return <code>true</code> for a status line, and <code>false</code> * for no status line */ virtual bool GetShowStatusLine() const = 0; /** * Sets whether the underlying workbench window has a status line. * * @param show <code>true</code> for a status line, and <code>false</code> * for no status line */ virtual void SetShowStatusLine(bool show) = 0; /** * Returns whether the underlying workbench window has a perspective bar (the * perspective bar provides buttons to quickly switch between perspectives). * <p> * The initial value is <code>false</code>. * </p> * * @return <code>true</code> for a perspective bar, and <code>false</code> * for no perspective bar */ virtual bool GetShowPerspectiveBar() const = 0; /** * Sets whether the underlying workbench window has a perspective bar (the * perspective bar provides buttons to quickly switch between perspectives). * * @param show <code>true</code> for a perspective bar, and * <code>false</code> for no perspective bar */ virtual void SetShowPerspectiveBar(bool show) = 0; /** * Returns whether the underlying workbench window has a progress indicator. * <p> * The initial value is <code>false</code>. * </p> * * @return <code>true</code> for a progress indicator, and <code>false</code> * for no progress indicator */ virtual bool GetShowProgressIndicator() const = 0; /** * Sets whether the underlying workbench window has a progress indicator. * * @param show <code>true</code> for a progress indicator, and <code>false</code> * for no progress indicator */ virtual void SetShowProgressIndicator(bool show) = 0; /** * Returns the style bits to use for the window's main widget when it is created. * The default is <code>0</code>. * * @return the style bits */ virtual Qt::WindowFlags GetWindowFlags() const = 0; /** * Sets the style bits to use for the window's main widget when it is created. * This method has no effect after the widget is created. * That is, it must be called within the <code>WorkbenchAdvisor#PreWindowOpen()</code> * callback. * <p> * For more details on the applicable style bits, see the * documentation for Qt::WindowFlags. * </p> * * @param windowFlags the style bits */ virtual void SetWindowFlags(Qt::WindowFlags windowFlags) = 0; /** * Returns the size to use for the window's shell when it is created. * * @return the initial size to use for the shell */ virtual QPoint GetInitialSize() const = 0; /** * Sets the size to use for the window's shell when it is created. * This method has no effect after the shell is created. * That is, it must be called within the <code>WorkbenchAdvisor#PreWindowOpen()</code> * callback. * * @param initialSize the initial size to use for the shell */ virtual void SetInitialSize(QPoint initialSize) = 0; /* * Returns the data associated with this workbench window at the given key. * * @param key the key * @return the data, or <code>null</code> if there is no data at the given * key */ //virtual Object getData(String key); /* * Sets the data associated with this workbench window at the given key. * * @param key the key * @param data the data, or <code>null</code> to delete existing data */ //virtual void setData(String key, Object data); /** * Adds the given drag and drop Mime types to the ones * supported for drag and drop on the editor area of this workbench window. * <p> * The workbench advisor would ordinarily call this method from the * <code>PreWindowOpen</code> callback. * A newly-created workbench window supports no drag and drop transfer * types. * </p> * <p> * Note that drag and drop to the editor area requires adding one or more * transfer types (using <code>AddEditorAreaTransfer</code>) and * configuring a drop target listener * (with <code>ConfigureEditorAreaDropListener</code>) * capable of handling any of those transfer types. * </p> * - * @param transfer a drag and drop transfer object - * @see #configureEditorAreaDropListener + * @param transferTypes drag and drop transfer objects * @see org.blueberry.ui.part.EditorInputTransfer */ virtual void AddEditorAreaTransfer(const QStringList& transferTypes) = 0; /** * Configures the drop target listener for the editor area of this workbench window. * <p> * The workbench advisor ordinarily calls this method from the * <code>PreWindowOpen</code> callback. * A newly-created workbench window has no configured drop target listener for its * editor area. * </p> * <p> * Note that drag and drop to the editor area requires adding one or more * transfer types (using <code>AddEditorAreaTransfer</code>) and * configuring a drop target listener * (with <code>ConfigureEditorAreaDropListener</code>) * capable of handling any of those transfer types. * </p> * * @param dropTargetListener the drop target listener that will handle * requests to drop an object on to the editor area of this window * * @see #AddEditorAreaTransfer */ virtual void ConfigureEditorAreaDropListener(IDropTargetListener* dropTargetListener) = 0; /** * Creates the menu bar for the window's shell. * <p> * This should only be called if the advisor is defining custom window contents * in <code>CreateWindowContents</code>, and may only be called once. * The caller must set it in the shell using <code>Shell.setMenuBar(Menu)</code> * but must not make add, remove or change items in the result. * The menu bar is populated by the window's menu manager. * The application can add to the menu manager in the advisor's * <code>FillActionBars</code> method instead. * </p> * * @return the menu bar, suitable for setting in the shell */ virtual QMenuBar* CreateMenuBar() = 0; /** * Creates the tool bar control. * <p> * This should only be called if the advisor is defining custom window contents * in <code>CreateWindowContents</code>, and may only be called once. * The caller must lay out the tool bar appropriately within the parent, * but must not add, remove or change items in the result (hence the * return type of <code>QWidget</code>). * The tool bar is populated by the window's tool bar manager. * The application can add to the tool bar manager in the advisor's * <code>FillActionBars</code> method instead. * </p> * * @param parent the parent widget * @return the tool bar control, suitable for laying out in the parent */ virtual QWidget* CreateToolBar(QWidget* parent) = 0; /* * Creates the status line control. * <p> * This should only be called if the advisor is defining custom window contents * in <code>createWindowContents</code>, and may only be called once. * The caller must lay out the status line appropriately within the parent, * but must not add, remove or change items in the result (hence the * return type of <code>Control</code>). * The status line is populated by the window's status line manager. * The application can add to the status line manager in the advisor's * <code>fillActionBars</code> method instead. * </p> * * @param parent the parent composite * @return the status line control, suitable for laying out in the parent */ //virtual Control createStatusLineControl(Composite parent); /** * Creates the page composite, in which the window's pages, and their * views and editors, appear. * <p> * This should only be called if the advisor is defining custom window contents * in <code>WorkbenchWindowAdvisor#CreateWindowContents()</code>, and may only be called once. * The caller must lay out the page composite appropriately within the parent, * but must not add, remove or change items in the result. * The page composite is populated by the workbench. * </p> * * @param parent the parent composite * @return the page composite, suitable for laying out in the parent */ virtual QWidget* CreatePageComposite(QWidget* parent) = 0; /** * Saves the current state of the window using the specified memento. * * @param memento the memento in which to save the window's state * @return a status object indicating whether the save was successful * @see IWorkbenchConfigurer#RestoreWorkbenchWindow(IMemento::Pointer) */ virtual bool SaveState(SmartPointer<IMemento> memento) = 0; }; } #endif /*BERRYIWORKBENCHWINDOWCONFIGURER_H_*/ diff --git a/Plugins/org.blueberry.ui.qt/src/berryIMemento.h b/Plugins/org.blueberry.ui.qt/src/berryIMemento.h index 7300bdc992..de230980bc 100644 --- a/Plugins/org.blueberry.ui.qt/src/berryIMemento.h +++ b/Plugins/org.blueberry.ui.qt/src/berryIMemento.h @@ -1,246 +1,244 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYIMEMENTO_H_ #define BERRYIMEMENTO_H_ #include <berryMacros.h> #include <berryObject.h> #include <org_blueberry_ui_qt_Export.h> #include <QString> namespace berry { /** * \ingroup org_blueberry_ui_qt * * Interface to a memento used for saving the important state of an object * in a form that can be persisted in the file system. * <p> * Mementos were designed with the following requirements in mind: * <ol> * <li>Certain objects need to be saved and restored across platform sessions. * </li> * <li>When an object is restored, an appropriate class for an object might not * be available. It must be possible to skip an object in this case.</li> * <li>When an object is restored, the appropriate class for the object may be * different from the one when the object was originally saved. If so, the * new class should still be able to read the old form of the data.</li> * </ol> * </p> * <p> * Mementos meet these requirements by providing support for storing a * mapping of arbitrary string keys to primitive values, and by allowing * mementos to have other mementos as children (arranged into a tree). * A robust external storage format based on XML is used. * </p><p> * The key for an attribute may be any alpha numeric value. However, the * value of <code>TAG_ID</code> is reserved for internal use. * </p><p> * This interface is not intended to be implemented or extended by clients. * </p> * * @see IPersistableElement * @see IElementFactory - * @noimplement This interface is not intended to be implemented by clients. - * **/ struct BERRY_UI_QT IMemento: public Object { berryObjectMacro(berry::IMemento); /** * Special reserved key used to store the memento id * (value <code>"IMemento.internal.id"</code>). * - * @see #getID() + * @see #GetID */ static const QString TAG_ID; // = "IMemento.internal.id"; /** * Creates a new child of this memento with the given type. * <p> * The <code>GetChild</code> and <code>GetChildren</code> methods * are used to retrieve children of a given type. * </p> * * @param type the type * @return a new child memento * @see #GetChild * @see #GetChildren */ virtual IMemento::Pointer CreateChild(const QString& type) = 0; /** * Creates a new child of this memento with the given type and id. * The id is stored in the child memento (using a special reserved * key, <code>TAG_ID</code>) and can be retrieved using <code>GetID</code>. * <p> * The <code>GetChild</code> and <code>GetChildren</code> methods * are used to retrieve children of a given type. * </p> * * @param type the type * @param id the child id * @return a new child memento with the given type and id * @see #GetID */ virtual IMemento::Pointer CreateChild(const QString& type, const QString& id) = 0; /** * Returns the first child with the given type id. * * @param type the type id * @return the first child with the given type */ virtual IMemento::Pointer GetChild(const QString& type) const = 0; /** * Returns all children with the given type id. * * @param type the type id * @return an array of children with the given type */ virtual QList<IMemento::Pointer> GetChildren(const QString& type) const = 0; /** * Gets the floating point value of the given key. * * @param key the key * @param value the value of the given key * @return false if the key was not found or was found * but was not a floating point number, else true */ virtual bool GetFloat(const QString& key, double& value) const = 0; /** * Gets the integer value of the given key. * * @param key the key * @param value the value of the given key * @return false if the key was not found or was found * but was not an integer, else true */ virtual bool GetInteger(const QString& key, int& value) const = 0; /** * Gets the string value of the given key. * * @param key the key * @param value the value of the given key * @return false if the key was not found, else true */ virtual bool GetString(const QString& key, QString& value) const = 0; /** * Gets the boolean value of the given key. * * @param key the key * @param value the value of the given key * @return false if the key was not found, else true */ virtual bool GetBoolean(const QString& key, bool& value) const = 0; /** * Returns the data of the Text node of the memento. Each memento is allowed * only one Text node. * * @return the data of the Text node of the memento, or <code>null</code> * if the memento has no Text node. */ virtual QString GetTextData() const = 0; /** * Returns an array of all the attribute keys of the memento. This will not * be <code>null</code>. If there are no keys, an array of length zero will * be returned. * @return an array with all the attribute keys of the memento */ virtual QList<QString> GetAttributeKeys() const = 0; /** * Returns the type for this memento. * * @return the memento type * @see #CreateChild(const QString&) * @see #CreateChild(const QString&, const QString&) */ virtual QString GetType() const = 0; /** * Returns the id for this memento. * * @return the memento id, or <code>""</code> if none * @see #CreateChild(const QString&, const QString&) */ virtual QString GetID() const = 0; /** * Sets the value of the given key to the given floating point number. * * @param key the key * @param value the value */ virtual void PutFloat(const QString& key, double value) = 0; /** * Sets the value of the given key to the given integer. * * @param key the key * @param value the value */ virtual void PutInteger(const QString& key, int value) = 0; /** * Copy the attributes and children from <code>memento</code> * to the receiver. * * @param memento the IMemento to be copied. */ virtual void PutMemento(IMemento::Pointer memento) = 0; /** * Sets the value of the given key to the given const QString&. * * @param key the key * @param value the value */ virtual void PutString(const QString& key, const QString& value) = 0; /** * Sets the value of the given key to the given boolean value. * * @param key the key * @param value the value */ virtual void PutBoolean(const QString& key, bool value) = 0; /** * Sets the memento's Text node to contain the given data. Creates the Text node if * none exists. If a Text node does exist, it's current contents are replaced. * Each memento is allowed only one text node. * * @param data the data to be placed on the Text node */ virtual void PutTextData(const QString& data) = 0; ~IMemento() override; }; } // namespace berry #endif /*BERRYIMEMENTO_H_*/ diff --git a/Plugins/org.blueberry.ui.qt/src/berryIPageLayout.h b/Plugins/org.blueberry.ui.qt/src/berryIPageLayout.h index 8f9fdb1fc6..ed838d403f 100644 --- a/Plugins/org.blueberry.ui.qt/src/berryIPageLayout.h +++ b/Plugins/org.blueberry.ui.qt/src/berryIPageLayout.h @@ -1,498 +1,488 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYIPAGELAYOUT_H_ #define BERRYIPAGELAYOUT_H_ #include "berryIFolderLayout.h" #include "berryIPlaceholderFolderLayout.h" #include "berryIViewLayout.h" #include "berryIPerspectiveDescriptor.h" #include <string> namespace berry { /** * \ingroup org_blueberry_ui_qt * * A page layout defines the initial layout for a perspective within a page * in a workbench window. * <p> * This interface is not intended to be implemented by clients. * </p> * <p> * When a perspective is opened, it creates a new page layout with a single editor area. * This layout is then passed to the perspective factory (implementation of - * {@link org.blueberry.ui.IPerspectiveFactory#createInitialLayout(IPageLayout)}) where + * {@link IPerspectiveFactory#CreateInitialLayout}) where * additional views and other content can be added, using the existing editor area as * the initial point of reference. * </p> * <p> * In some cases, multiple instances of a particular view may need to be added * to the same layout. These are disambiguated using a secondary id. * In layout methods taking a view id, the id can have the compound form: * <strong>primaryId [':' secondaryId]</strong>. * If a secondary id is given, the view must allow multiple instances by * having specified <code>allowMultiple="true"</code> in its extension. * View placeholders may also have a secondary id. * </p> * <p> * Wildcards are permitted in placeholder ids (but not regular view ids). * '*' matches any substring, '?' matches any single character. * Wildcards can be specified for the primary id, the secondary id, or both. * For example, the placeholder "someView:*" will match any occurrence of the view * that has primary id "someView" and that also has some non-null secondary id. * Note that this placeholder will not match the view if it has no secondary id, * since the compound id in this case is simply "someView". * </p> * <p> * Example of populating a layout with standard workbench views: * <pre> * IPageLayout layout = ... * // Get the editor area. * String editorArea = layout.getEditorArea(); * * // Top left: Resource Navigator view and Bookmarks view placeholder * IFolderLayout topLeft = layout.createFolder("topLeft", IPageLayout.LEFT, 0.25f, * editorArea); * topLeft.addView(IPageLayout.ID_RES_NAV); * topLeft.addPlaceholder(IPageLayout.ID_BOOKMARKS); * * // Bottom left: Outline view and Property Sheet view * IFolderLayout bottomLeft = layout.createFolder("bottomLeft", IPageLayout.BOTTOM, 0.50f, * "topLeft"); * bottomLeft.addView(IPageLayout.ID_OUTLINE); * bottomLeft.addView(IPageLayout.ID_PROP_SHEET); * * // Bottom right: Task List view * layout.addView(IPageLayout.ID_TASK_LIST, IPageLayout.BOTTOM, 0.66f, editorArea); * </pre> * </p> - * @noimplement This interface is not intended to be implemented by clients. + * @note This interface is not intended to be implemented by clients. */ struct BERRY_UI_QT IPageLayout : public Object { berryObjectMacro(berry::IPageLayout); /** * The part id for the workbench's editor area. This may only be used * as a reference part for view addition. */ static const QString ID_EDITOR_AREA; // = "org.blueberry.ui.editors"; /** * The view id for the workbench's Resource Navigator standard component. */ static const QString ID_RES_NAV; // = "org.blueberry.ui.views.ResourceNavigator"; /** * The view id for the workbench's Property Sheet standard component. */ static const QString ID_PROP_SHEET; // = "org.blueberry.ui.views.PropertySheet"; /** * The view id for the workbench's Content Outline standard component. */ static const QString ID_OUTLINE; // = "org.blueberry.ui.views.ContentOutline"; /** * The view id for the workbench's Bookmark Navigator standard component. */ static const QString ID_BOOKMARKS; // = "org.blueberry.ui.views.BookmarkView"; /** * The view id for the workbench's Problems View standard component. * @since 3.0 */ static const QString ID_PROBLEM_VIEW; // = "org.blueberry.ui.views.ProblemView"; /** * The view id for the workbench's Progress View standard component. * @since 3.2 */ static const QString ID_PROGRESS_VIEW; // = "org.blueberry.ui.views.ProgressView"; /** * The view id for the workbench's Task List standard component. */ static const QString ID_TASK_LIST; // = "org.blueberry.ui.views.TaskList"; /** * Id of the navigate action set. * (value <code>"org.blueberry.ui.NavigateActionSet"</code>) * @since 2.1 */ static const QString ID_NAVIGATE_ACTION_SET; // = "org.blueberry.ui.NavigateActionSet"; /** * Relationship constant indicating a part should be placed to the left of * its relative. */ static const int LEFT; // = 1; /** * Relationship constant indicating a part should be placed to the right of * its relative. */ static const int RIGHT; // = 2; /** * Relationship constant indicating a part should be placed above its * relative. */ static const int TOP; // = 3; /** * Relationship constant indicating a part should be placed below its * relative. */ static const int BOTTOM; // = 4; /** * Minimum acceptable ratio value when adding a view * @since 2.0 */ static const float RATIO_MIN; // = 0.05f; /** * Maximum acceptable ratio value when adding a view * @since 2.0 */ static const float RATIO_MAX; // = 0.95f; /** * The default view ratio width for regular (non-fast) views. * @since 2.0 */ static const float DEFAULT_VIEW_RATIO; // = 0.5f; /** * A variable used to represent invalid ratios. * @since 2.0 */ static const float INVALID_RATIO; // = -1f; /** * A variable used to represent a ratio which has not been specified. * @since 2.0 */ static const float nullptr_RATIO; // = -2f; - /** - * Adds an action set with the given id to this page layout. - * The id must name an action set contributed to the workbench's extension - * point (named <code>"org.blueberry.ui.actionSet"</code>). - * - * @param actionSetId the action set id - */ - //virtual void AddActionSet(const QString& actionSetId) = 0; - - /** * Adds a perspective shortcut to the page layout. * These are typically shown in the UI to allow rapid navigation to appropriate new wizards. * For example, in the Eclipse IDE, these appear as items under the Window > Open Perspective menu. * The id must name a perspective extension contributed to the * workbench's perspectives extension point (named <code>"org.blueberry.ui.perspectives"</code>). * * @param id the perspective id */ virtual void AddPerspectiveShortcut(const QString& id) = 0; /** * Adds a view placeholder to this page layout. * A view placeholder is used to define the position of a view before the view * appears. Initially, it is invisible; however, if the user ever opens a view * whose compound id matches the placeholder, the view will appear at the same * location as the placeholder. * See the {@link IPageLayout} type documentation for more details about compound ids. * If the placeholder contains wildcards, it remains in the layout, otherwise * it is replaced by the view. * If the primary id of the placeholder has no wildcards, it must refer to a view * contributed to the workbench's view extension point * (named <code>"org.blueberry.ui.views"</code>). * * @param viewId the compound view id (wildcards allowed) * @param relationship the position relative to the reference part; * one of <code>TOP</code>, <code>BOTTOM</code>, <code>LEFT</code>, * or <code>RIGHT</code> * @param ratio a ratio specifying how to divide the space currently occupied by the reference part, * in the range <code>0.05f</code> to <code>0.95f</code>. * Values outside this range will be clipped to facilitate direct manipulation. * For a vertical split, the part on top gets the specified ratio of the current space * and the part on bottom gets the rest. * Likewise, for a horizontal split, the part at left gets the specified ratio of the current space * and the part at right gets the rest. * @param refId the id of the reference part; either a view id, a folder id, * or the special editor area id returned by <code>getEditorArea</code> */ virtual void AddPlaceholder(const QString& viewId, int relationship, float ratio, const QString& refId) = 0; /** * Adds an item to the Show In prompter. * The id must name a view contributed to the workbench's view extension point * (named <code>"org.blueberry.ui.views"</code>). * * @param id the view id * * @since 2.1 */ virtual void AddShowInPart(const QString& id) = 0; /** * Adds a show view shortcut to the page layout. * These are typically shown in the UI to allow rapid navigation to appropriate views. * For example, in the Eclipse IDE, these appear as items under the Window > Show View menu. * The id must name a view contributed to the workbench's views extension point * (named <code>"org.blueberry.ui.views"</code>). * * @param id the view id */ virtual void AddShowViewShortcut(const QString& id) = 0; /** * Adds a view with the given compound id to this page layout. * See the {@link IPageLayout} type documentation for more details about compound ids. * The primary id must name a view contributed to the workbench's view extension point * (named <code>"org.blueberry.ui.views"</code>). * * @param viewId the compound view id * @param relationship the position relative to the reference part; * one of <code>TOP</code>, <code>BOTTOM</code>, <code>LEFT</code>, * or <code>RIGHT</code> * @param ratio a ratio specifying how to divide the space currently occupied by the reference part, * in the range <code>0.05f</code> to <code>0.95f</code>. * Values outside this range will be clipped to facilitate direct manipulation. * For a vertical split, the part on top gets the specified ratio of the current space * and the part on bottom gets the rest. * Likewise, for a horizontal split, the part at left gets the specified ratio of the current space * and the part at right gets the rest. * @param refId the id of the reference part; either a view id, a folder id, * or the special editor area id returned by <code>getEditorArea</code> */ virtual void AddView(const QString& viewId, int relationship, float ratio, const QString& refId) = 0; /** * Creates and adds a new folder with the given id to this page layout. * The position and relative size of the folder is expressed relative to * a reference part. * * @param folderId the id for the new folder. This must be unique within * the layout to avoid collision with other parts. * @param relationship the position relative to the reference part; * one of <code>TOP</code>, <code>BOTTOM</code>, <code>LEFT</code>, * or <code>RIGHT</code> * @param ratio a ratio specifying how to divide the space currently occupied by the reference part, * in the range <code>0.05f</code> to <code>0.95f</code>. * Values outside this range will be clipped to facilitate direct manipulation. * For a vertical split, the part on top gets the specified ratio of the current space * and the part on bottom gets the rest. * Likewise, for a horizontal split, the part at left gets the specified ratio of the current space * and the part at right gets the rest. * @param refId the id of the reference part; either a view id, a folder id, * or the special editor area id returned by <code>getEditorArea</code> * @return the new folder */ virtual IFolderLayout::Pointer CreateFolder(const QString& folderId, int relationship, float ratio, const QString& refId) = 0; /** * Creates and adds a placeholder for a new folder with the given id to this page layout. * The position and relative size of the folder is expressed relative to * a reference part. * * @param folderId the id for the new folder. This must be unique within * the layout to avoid collision with other parts. * @param relationship the position relative to the reference part; * one of <code>TOP</code>, <code>BOTTOM</code>, <code>LEFT</code>, * or <code>RIGHT</code> * @param ratio a ratio specifying how to divide the space currently occupied by the reference part, * in the range <code>0.05f</code> to <code>0.95f</code>. * Values outside this range will be clipped to facilitate direct manipulation. * For a vertical split, the part on top gets the specified ratio of the current space * and the part on bottom gets the rest. * Likewise, for a horizontal split, the part at left gets the specified ratio of the current space * and the part at right gets the rest. * @param refId the id of the reference part; either a view id, a folder id, * or the special editor area id returned by <code>getEditorArea</code> * @return a placeholder for the new folder * @since 2.0 */ virtual IPlaceholderFolderLayout::Pointer CreatePlaceholderFolder(const QString& folderId, int relationship, float ratio, const QString& refId) = 0; /** * Returns the special identifier for the editor area in this page * layout. The identifier for the editor area is also stored in * <code>ID_EDITOR_AREA</code>. * <p> * The editor area is automatically added to each layout before anything else. * It should be used as the point of reference when adding views to a layout. * </p> * * @return the special id of the editor area */ virtual QString GetEditorArea() = 0; /** * Returns whether the page's layout will show * the editor area. * * @return <code>true</code> when editor area visible, <code>false</code> otherwise */ virtual bool IsEditorAreaVisible() = 0; /** * Show or hide the editor area for the page's layout. * * @param showEditorArea <code>true</code> to show the editor area, <code>false</code> to hide the editor area */ virtual void SetEditorAreaVisible(bool showEditorArea) = 0; /** * Sets whether this layout is fixed. * In a fixed layout, layout parts cannot be moved or zoomed, and the initial * set of views cannot be closed. * * @param isFixed <code>true</code> if this layout is fixed, <code>false</code> if not * @since 3.0 */ virtual void SetFixed(bool isFixed) = 0; /** * Returns <code>true</code> if this layout is fixed, <code>false</code> if not. * In a fixed layout, layout parts cannot be moved or zoomed, and the initial * set of views cannot be closed. * The default is <code>false</code>. * * @return <code>true</code> if this layout is fixed, <code>false</code> if not. * @since 3.0 */ virtual bool IsFixed() = 0; /** * Returns the layout for the view or placeholder with the given compound id in * this page layout. * See the {@link IPageLayout} type documentation for more details about compound ids. * Returns <code>null</code> if the specified view or placeholder is unknown to the layout. * * @param id the compound view id or placeholder * @return the view layout, or <code>null</code> * @since 3.0 */ virtual IViewLayout::Pointer GetViewLayout(const QString& id) = 0; /** * Adds a standalone view with the given compound id to this page layout. * See the {@link IPageLayout} type documentation for more details about compound ids. * A standalone view cannot be docked together with other views. * A standalone view's title can optionally be hidden. If hidden, * then any controls typically shown with the title (such as the close button) * are also hidden. Any contributions or other content from the view itself * are always shown (e.g. toolbar or view menu contributions, content description). * <p> * The id must name a view contributed to the workbench's view extension point * (named <code>"org.blueberry.ui.views"</code>). * </p> * * @param viewId the compound view id * @param showTitle <code>true</code> to show the title and related controls, * <code>false</code> to hide them * @param relationship the position relative to the reference part; * one of <code>TOP</code>, <code>BOTTOM</code>, <code>LEFT</code>, * or <code>RIGHT</code> * @param ratio a ratio specifying how to divide the space currently occupied by the reference part, * in the range <code>0.05f</code> to <code>0.95f</code>. * Values outside this range will be clipped to facilitate direct manipulation. * For a vertical split, the part on top gets the specified ratio of the current space * and the part on bottom gets the rest. * Likewise, for a horizontal split, the part at left gets the specified ratio of the current space * and the part at right gets the rest. * @param refId the id of the reference part; either a view id, a folder id, * or the special editor area id returned by <code>getEditorArea</code> * * @since 3.0 */ virtual void AddStandaloneView(const QString& viewId, bool showTitle, int relationship, float ratio, const QString& refId) = 0; /** * Adds a standalone view placeholder to this page layout. A view * placeholder is used to define the position of a view before the view * appears. Initially, it is invisible; however, if the user ever opens a * view whose compound id matches the placeholder, the view will appear at * the same location as the placeholder. See the {@link IPageLayout} type * documentation for more details about compound ids. If the placeholder * contains wildcards, it remains in the layout, otherwise it is replaced by * the view. If the primary id of the placeholder has no wildcards, it must * refer to a view contributed to the workbench's view extension point * (named <code>"org.blueberry.ui.views"</code>). * * @param viewId * the compound view id (wildcards allowed) * @param relationship * the position relative to the reference part; one of * <code>TOP</code>, <code>BOTTOM</code>, <code>LEFT</code>, * or <code>RIGHT</code> * @param ratio * a ratio specifying how to divide the space currently occupied * by the reference part, in the range <code>0.05f</code> to * <code>0.95f</code>. Values outside this range will be * clipped to facilitate direct manipulation. For a vertical * split, the part on top gets the specified ratio of the current * space and the part on bottom gets the rest. Likewise, for a * horizontal split, the part at left gets the specified ratio of * the current space and the part at right gets the rest. * @param refId * the id of the reference part; either a view id, a folder id, * or the special editor area id returned by * <code>getEditorArea</code> * @param showTitle * true to show the view's title, false if not * * @since 3.2 */ virtual void AddStandaloneViewPlaceholder(const QString& viewId, int relationship, float ratio, const QString& refId, bool showTitle) = 0; /** * Returns the perspective descriptor for the perspective being layed out. * * @return the perspective descriptor for the perspective being layed out * @since 3.2 */ virtual IPerspectiveDescriptor::Pointer GetDescriptor() = 0; /** * Returns the folder layout for the view or placeholder with the given * compound id in this page layout. See the {@link IPageLayout} type * documentation for more details about compound ids. Returns * <code>null</code> if the specified view or placeholder is unknown to * the layout, or the placeholder was not in a folder. * * @param id * the compound view id or placeholder. Must not be * <code>null</code>. * @return the folder layout, or <code>null</code> * @since 3.3 */ virtual IPlaceholderFolderLayout::Pointer GetFolderForView(const QString& id) = 0; }; } #endif /*BERRYIPAGELAYOUT_H_*/ diff --git a/Plugins/org.blueberry.ui.qt/src/berryIPageService.h b/Plugins/org.blueberry.ui.qt/src/berryIPageService.h index 468eff4f63..1eb90fcd5b 100644 --- a/Plugins/org.blueberry.ui.qt/src/berryIPageService.h +++ b/Plugins/org.blueberry.ui.qt/src/berryIPageService.h @@ -1,106 +1,84 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYIPAGESERVICE_H_ #define BERRYIPAGESERVICE_H_ #include <org_blueberry_ui_qt_Export.h> #include "berryIPerspectiveListener.h" namespace berry { struct IWorkbenchPage; /** * A page service tracks the page and perspective lifecycle events * within a workbench window. * <p> * This service can be acquired from your service locator: * <pre> * IPageService service = (IPageService) getSite().getService(IPageService.class); * </pre> * <ul> * <li>This service is not available globally, only from the workbench window level down.</li> * </ul> * </p> * * @see IWorkbenchWindow * @see IPageListener * @see IPerspectiveListener - * @see org.blueberry.ui.services.IServiceLocator#getService(Class) - * @noimplement This interface is not intended to be implemented by clients. + * @see IServiceLocator#GetService + * @note This interface is not intended to be implemented by clients. */ struct BERRY_UI_QT IPageService { virtual ~IPageService(); - /** - * Adds the given listener for page lifecycle events. - * Has no effect if an identical listener is already registered. - * <p> - * <b>Note:</b> listeners should be removed when no longer necessary. If - * not, they will be removed when the IServiceLocator used to acquire this - * service is disposed. - * </p> - * - * @param listener a page listener - * @see #removePageListener(IPageListener) - */ - //virtual void AddPageListener(IPageListener listener); - /** * Adds the given listener for a page's perspective lifecycle events. * Has no effect if an identical listener is already registered. * <p> * <b>Note:</b> listeners should be removed when no longer necessary. If * not, they will be removed when the IServiceLocator used to acquire this * service is disposed. * </p> * * @param listener a perspective listener - * @see #removePerspectiveListener(IPerspectiveListener) + * @see #RemovePerspectiveListener */ virtual void AddPerspectiveListener(IPerspectiveListener* listener) = 0; /** * Returns the active page. * * @return the active page, or <code>null</code> if no page is currently active */ virtual SmartPointer<IWorkbenchPage> GetActivePage() const = 0; - /** - * Removes the given page listener. - * Has no affect if an identical listener is not registered. - * - * @param listener a page listener - */ - //virtual void RemovePageListener(IPageListener listener); - /** * Removes the given page's perspective listener. * Has no affect if an identical listener is not registered. * * @param listener a perspective listener */ virtual void RemovePerspectiveListener(IPerspectiveListener* listener) = 0; virtual IPerspectiveListener::Events& GetPerspectiveEvents() = 0; }; } Q_DECLARE_INTERFACE(berry::IPageService, "org.blueberry.ui.IPageService") #endif /* BERRYIPAGESERVICE_H_ */ diff --git a/Plugins/org.blueberry.ui.qt/src/berryIPartListener.h b/Plugins/org.blueberry.ui.qt/src/berryIPartListener.h index 1ac1f865f6..463e382829 100644 --- a/Plugins/org.blueberry.ui.qt/src/berryIPartListener.h +++ b/Plugins/org.blueberry.ui.qt/src/berryIPartListener.h @@ -1,160 +1,144 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYIPARTLISTENER_H_ #define BERRYIPARTLISTENER_H_ #include <berryMacros.h> #include <berryMessage.h> #include <org_blueberry_ui_qt_Export.h> #include "berryIWorkbenchPartReference.h" namespace berry { /** * \ingroup org_blueberry_ui_qt * * Interface for listening to part lifecycle events. * <p> * This interface may be implemented by clients. * </p> * * @see IPartService#AddPartListener(IPartListener) */ struct BERRY_UI_QT IPartListener { struct Events { enum Type { NONE = 0x00000000, ACTIVATED = 0x00000001, BROUGHT_TO_TOP = 0x00000002, CLOSED = 0x00000004, DEACTIVATED = 0x00000008, OPENED = 0x00000010, HIDDEN = 0x00000020, VISIBLE = 0x00000040, INPUT_CHANGED = 0x00000080, ALL = 0xffffffff }; Q_DECLARE_FLAGS(Types, Type) typedef Message1<const IWorkbenchPartReference::Pointer&> PartEvent; PartEvent partActivated; PartEvent partBroughtToTop; PartEvent partClosed; PartEvent partDeactivated; PartEvent partOpened; PartEvent partHidden; PartEvent partVisible; PartEvent partInputChanged; void AddListener(IPartListener* listener); void RemoveListener(IPartListener* listener); private: typedef MessageDelegate1<IPartListener, const IWorkbenchPartReference::Pointer&> Delegate; }; virtual ~IPartListener(); virtual Events::Types GetPartEventTypes() const = 0; /** * Notifies this listener that the given part has been activated. - * - * @param partRef the part that was activated * @see IWorkbenchPage#activate */ virtual void PartActivated(const IWorkbenchPartReference::Pointer& /*partRef*/) {} /** * Notifies this listener that the given part has been brought to the top. * <p> * These events occur when an editor is brought to the top in the editor area, * or when a view is brought to the top in a page book with multiple views. * They are normally only sent when a part is brought to the top * programmatically (via <code>IPerspective.bringToTop</code>). When a part is * activated by the user clicking on it, only <code>partActivated</code> is sent. * </p> - * - * @param partRef the part that was surfaced * @see IWorkbenchPage#bringToTop */ virtual void PartBroughtToTop(const IWorkbenchPartReference::Pointer& /*partRef*/) {} /** * Notifies this listener that the given part has been closed. * <p> * Note that if other perspectives in the same page share the view, * this notification is not sent. It is only sent when the view * is being removed from the page entirely (it is being disposed). * </p> - * - * @param partRef the part that was closed * @see IWorkbenchPage#hideView */ virtual void PartClosed(const IWorkbenchPartReference::Pointer& /*partRef*/) {} /** * Notifies this listener that the given part has been deactivated. - * - * @param partRef the part that was deactivated * @see IWorkbenchPage#activate */ virtual void PartDeactivated(const IWorkbenchPartReference::Pointer& /*partRef*/) {} /** * Notifies this listener that the given part has been opened. * <p> * Note that if other perspectives in the same page share the view, * this notification is not sent. It is only sent when the view * is being newly opened in the page (it is being created). * </p> - * - * @param partRef the part that was opened * @see IWorkbenchPage#showView */ virtual void PartOpened(const IWorkbenchPartReference::Pointer& /*partRef*/) {} /** * Notifies this listener that the given part is hidden or obscured by another part. - * - * @param partRef the part that is hidden or obscured by another part */ virtual void PartHidden(const IWorkbenchPartReference::Pointer& /*partRef*/) {} /** * Notifies this listener that the given part is visible. - * - * @param partRef the part that is visible */ virtual void PartVisible(const IWorkbenchPartReference::Pointer& /*partRef*/) {} /** * Notifies this listener that the given part's input was changed. - * - * @param partRef the part whose input was changed */ virtual void PartInputChanged(const IWorkbenchPartReference::Pointer& /*partRef*/) {} }; } // namespace berry Q_DECLARE_OPERATORS_FOR_FLAGS(berry::IPartListener::Events::Types) #endif /*BERRYIPARTLISTENER_H_*/ diff --git a/Plugins/org.blueberry.ui.qt/src/berryIPartService.h b/Plugins/org.blueberry.ui.qt/src/berryIPartService.h index c44d38e508..73f1fd4c1e 100644 --- a/Plugins/org.blueberry.ui.qt/src/berryIPartService.h +++ b/Plugins/org.blueberry.ui.qt/src/berryIPartService.h @@ -1,82 +1,82 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYIPARTSERVICE_H_ #define BERRYIPARTSERVICE_H_ #include <org_blueberry_ui_qt_Export.h> #include "berryIWorkbenchPart.h" #include "berryIWorkbenchPartReference.h" #include "berryIPartListener.h" namespace berry { /** * \ingroup org_blueberry_ui_qt * * A part service tracks the creation and activation of parts within a * workbench page. * <p> * This interface is not intended to be implemented by clients. * </p> * * @see IWorkbenchPage */ struct BERRY_UI_QT IPartService { virtual ~IPartService(); /** * Adds the given observer for part lifecycle events. * Has no effect if an identical listener is already registered. * <p> * <b>Note:</b> listeners should be removed when no longer necessary. If * not, they will be removed when the IServiceLocator used to acquire this * service is disposed. * </p> * * @param listener a part listener - * @see #removePartListener(IPartListener) + * @see #RemovePartListener */ virtual void AddPartListener(IPartListener* listener) = 0; /** * Returns the active part. * * @return the active part, or <code>null</code> if no part is currently active */ virtual IWorkbenchPart::Pointer GetActivePart() = 0; /** * Returns the active part reference. * * @return the active part reference, or <code>null</code> if no part * is currently active */ virtual IWorkbenchPartReference::Pointer GetActivePartReference() = 0; /** * Removes the given part listener. * Has no affect if an identical listener is not registered. * * @param listener a part listener */ virtual void RemovePartListener(IPartListener* listener) = 0; }; } // namespace berry Q_DECLARE_INTERFACE(berry::IPartService, "org.blueberry.ui.IPartService") #endif /*BERRYIPARTSERVICE_H_*/ diff --git a/Plugins/org.blueberry.ui.qt/src/berryIPerspectiveDescriptor.h b/Plugins/org.blueberry.ui.qt/src/berryIPerspectiveDescriptor.h index ff42689e9b..1f973b381a 100644 --- a/Plugins/org.blueberry.ui.qt/src/berryIPerspectiveDescriptor.h +++ b/Plugins/org.blueberry.ui.qt/src/berryIPerspectiveDescriptor.h @@ -1,126 +1,125 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYIPERSPECTIVEDESCRIPTOR_H_ #define BERRYIPERSPECTIVEDESCRIPTOR_H_ #include <berryMacros.h> #include <berryObject.h> #include <org_blueberry_ui_qt_Export.h> namespace berry { /** * \ingroup org_blueberry_ui_qt * * A perspective descriptor describes a perspective in an * <code>IPerspectiveRegistry</code>. * <p> * A perspective is a template for view visibility, layout, and action visibility * within a workbench page. There are two types of perspective: a predefined * perspective and a custom perspective. * <ul> * <li>A predefined perspective is defined by an extension to the workbench's * perspective extension point (<code>"org.blueberry.ui.perspectives"</code>). * The extension defines a id, label, and <code>IPerspectiveFactory</code>. * A perspective factory is used to define the initial layout for a page. * </li> * <li>A custom perspective is defined by the user. In this case a predefined * perspective is modified to suit a particular task and saved as a new * perspective. The attributes for the perspective are stored in a separate file * in the workbench's metadata directory. * </li> * </ul> * </p> * <p> * Within a page the user can open any of the perspectives known * to the workbench's perspective registry, typically by selecting one from the * workbench's <code>Open Perspective</code> menu. When selected, the views * and actions within the active page rearrange to reflect the perspective. * </p> * <p> * This interface is not intended to be implemented by clients. * </p> * @see IPerspectiveRegistry - * @noimplement This interface is not intended to be implemented by clients. */ struct BERRY_UI_QT IPerspectiveDescriptor : public virtual Object { berryObjectMacro(berry::IPerspectiveDescriptor); ~IPerspectiveDescriptor() override; /** * Returns the description of this perspective. * This is the value of its <code>"description"</code> attribute. * * @return the description * @since 3.0 */ virtual QString GetDescription() const = 0; /** * Returns this perspective's id. For perspectives declared via an extension, * this is the value of its <code>"id"</code> attribute. * * @return the perspective id */ virtual QString GetId() const = 0; /** * Returns the descriptor of the image to show for this perspective. * If the extension for this perspective specifies an image, the descriptor * for it is returned. Otherwise a default image is returned. * * @return the descriptor of the image to show for this perspective */ virtual QIcon GetImageDescriptor() const = 0; /** * Returns this perspective's label. For perspectives declared via an extension, * this is the value of its <code>"label"</code> attribute. * * @return the label */ virtual QString GetLabel() const = 0; /** * Returns <code>true</code> if this perspective is predefined by an * extension. * * @return boolean whether this perspective is predefined by an extension */ //virtual bool IsPredefined() const = 0; /** * Return the category path of this descriptor * * @return the category path of this descriptor */ virtual QStringList GetCategoryPath() const = 0; /** * Returns a list of ids belonging to keyword reference extensions. * * The keywords listed in each referenced id can be used to filter * this perspective. * * @return A list of ids for keyword reference extensions. */ virtual QStringList GetKeywordReferences() const = 0; }; } #endif /*BERRYIPERSPECTIVEDESCRIPTOR_H_*/ diff --git a/Plugins/org.blueberry.ui.qt/src/berryIPerspectiveRegistry.h b/Plugins/org.blueberry.ui.qt/src/berryIPerspectiveRegistry.h index 6af8b038f7..35e15584e1 100644 --- a/Plugins/org.blueberry.ui.qt/src/berryIPerspectiveRegistry.h +++ b/Plugins/org.blueberry.ui.qt/src/berryIPerspectiveRegistry.h @@ -1,134 +1,120 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYIPERSPECTIVEREGISTRY_H_ #define BERRYIPERSPECTIVEREGISTRY_H_ #include "berryIPerspectiveDescriptor.h" #include <vector> namespace berry { /** * \ingroup org_blueberry_ui * * The workbench's global registry of perspectives. * <p> * This registry contains a descriptor for each perspectives in the workbench. * It is initially populated with stock perspectives from the workbench's * perspective extension point (<code>"org.blueberry.ui.perspectives"</code>) and * with custom perspectives defined by the user. * </p><p> * This interface is not intended to be implemented by clients. * </p> * @see IWorkbench#getPerspectiveRegistry - * @noimplement This interface is not intended to be implemented by clients. */ struct BERRY_UI_QT IPerspectiveRegistry { virtual ~IPerspectiveRegistry(); - /** - * Create a new perspective. - * - * @param label - * the name of the new descriptor - * @param originalDescriptor - * the descriptor on which to base the new descriptor - * @return a new perspective descriptor or <code>null</code> if the - * creation failed. - */ - //virtual IPerspectiveDescriptor::Pointer CreatePerspective(const QString& label, - // IPerspectiveDescriptor::Pointer originalDescriptor) = 0; - /** * Clones an existing perspective. * * @param id the id for the cloned perspective, which must not already be used by * any registered perspective * @param label the label assigned to the cloned perspective * @param desc the perspective to clone * @return the cloned perspective descriptor * @throws IllegalArgumentException if there is already a perspective with the given id */ virtual IPerspectiveDescriptor::Pointer ClonePerspective(const QString& id, const QString& label, IPerspectiveDescriptor::Pointer desc) = 0; /** * Deletes a perspective. Has no effect if the perspective is defined in an * extension. * * @param persp the perspective to delete */ virtual void DeletePerspective(IPerspectiveDescriptor::Pointer persp) = 0; /** * Finds and returns the registered perspective with the given perspective id. * * @param perspectiveId the perspective id * @return the perspective, or <code>null</code> if none * @see IPerspectiveDescriptor#getId */ virtual IPerspectiveDescriptor::Pointer FindPerspectiveWithId(const QString& perspectiveId) = 0; /** * Finds and returns the registered perspective with the given label. * * @param label the label * @return the perspective, or <code>null</code> if none * @see IPerspectiveDescriptor#getLabel */ virtual IPerspectiveDescriptor::Pointer FindPerspectiveWithLabel(const QString& label) = 0; /** * Returns the id of the default perspective for the workbench. This identifies one * perspective extension within the workbench's perspective registry. * <p> * Returns <code>null</code> if there is no default perspective. * </p> * * @return the default perspective id, or <code>null</code> */ virtual QString GetDefaultPerspective() = 0; /** * Returns a list of the perspectives known to the workbench. * * @return a list of perspectives */ virtual QList<IPerspectiveDescriptor::Pointer> GetPerspectives() = 0; /** * Sets the default perspective for the workbench to the given perspective id. * If non-<code>null</code>, the id must correspond to a perspective extension * within the workbench's perspective registry. * <p> * A <code>null</code> id indicates no default perspective. * </p> * * @param id a perspective id, or <code>null</code> */ virtual void SetDefaultPerspective(const QString& id) = 0; /** * Reverts a perspective back to its original definition * as specified in the plug-in manifest. * * @param perspToRevert the perspective to revert */ virtual void RevertPerspective(IPerspectiveDescriptor::Pointer perspToRevert) = 0; }; } #endif /*BERRYIPERSPECTIVEREGISTRY_H_*/ diff --git a/Plugins/org.blueberry.ui.qt/src/berryIPlaceholderFolderLayout.h b/Plugins/org.blueberry.ui.qt/src/berryIPlaceholderFolderLayout.h index f931136110..1ad1dd9c07 100644 --- a/Plugins/org.blueberry.ui.qt/src/berryIPlaceholderFolderLayout.h +++ b/Plugins/org.blueberry.ui.qt/src/berryIPlaceholderFolderLayout.h @@ -1,97 +1,96 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYIPLACEHOLDERFOLDERLAYOUT_H_ #define BERRYIPLACEHOLDERFOLDERLAYOUT_H_ #include <berryMacros.h> #include <berryObject.h> #include <org_blueberry_ui_qt_Export.h> namespace berry { /** * \ingroup org_blueberry_ui_qt * * An <code>IPlaceholderFolderLayout</code> is used to define the initial * view placeholders within a folder. * The folder itself is contained within an <code>IPageLayout</code>. * <p> * This interface is not intended to be implemented by clients. * </p> * - * @see IPageLayout#createPlaceholderFolder - * @noimplement This interface is not intended to be implemented by clients. + * @see IPageLayout#CreatePlaceholderFolder */ struct BERRY_UI_QT IPlaceholderFolderLayout : public Object { berryObjectMacro(berry::IPlaceholderFolderLayout); ~IPlaceholderFolderLayout() override; /** * Adds a view placeholder to this folder. * A view placeholder is used to define the position of a view before the view * appears. Initially, it is invisible; however, if the user ever opens a view * whose compound id matches the placeholder, the view will appear at the same * location as the placeholder. * See the {@link IPageLayout} type documentation for more details about compound ids. * If the placeholder contains wildcards, it remains in the layout, otherwise * it is replaced by the view. * If the primary id of the placeholder has no wildcards, it must refer to a view * contributed to the workbench's view extension point * (named <code>"org.blueberry.ui.views"</code>). * * @param viewId the compound view id (wildcards allowed) */ virtual void AddPlaceholder(const QString& viewId) = 0; /** * Returns the property with the given id or <code>null</code>. Folder * properties are an extensible mechanism for perspective authors to * customize the appearance of view stacks. The list of customizable * properties is determined by the presentation factory. * * @param id * Must not be <code>null</code>. * @return property value, or <code>null</code> if the property is not * set. * @since 3.3 */ virtual QString GetProperty(const QString& id) = 0; /** * Sets the given property to the given value. Folder properties are an * extensible mechanism for perspective authors to customize the appearance * of view stacks. The list of customizable properties is determined by the * presentation factory. * <p> * These folder properties are intended to be set during * <code>IPerspectiveFactory#createInitialLayout</code>. Any subsequent * changes to property values after this method completes will not fire * change notifications and will not be reflected in the presentation. * </p> * * @param id * property id. Must not be <code>null</code>. * @param value * property value. <code>null</code> will clear the property. * @since 3.3 */ virtual void SetProperty(const QString& id, const QString& value) = 0; }; } #endif /*BERRYIPLACEHOLDERFOLDERLAYOUT_H_*/ diff --git a/Plugins/org.blueberry.ui.qt/src/berryIPreferencePage.h b/Plugins/org.blueberry.ui.qt/src/berryIPreferencePage.h index 126da437dc..50457de92a 100644 --- a/Plugins/org.blueberry.ui.qt/src/berryIPreferencePage.h +++ b/Plugins/org.blueberry.ui.qt/src/berryIPreferencePage.h @@ -1,105 +1,105 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYIPREFERENCEPAGE_H_ #define BERRYIPREFERENCEPAGE_H_ #include "berryObject.h" #include "berryIPreferences.h" #include "berryIWorkbench.h" #include <QObject> namespace berry { /** * \ingroup org_blueberry_ui_qt * * Interface for workbench preference pages. * <p> * Clients should implement this interface and include the name of their class * in an extension contributed to the workbench's preference extension point * (named <code>"org.blueberry.ui.preferencePages"</code>). * For example, the plug-in's XML markup might contain: - * <pre> - * <extension point="org.blueberry.ui.preferencePages"> - * <page id="com.example.myplugin.prefs" + * \code{.unparsed} + * <extension point="org.blueberry.ui.preferencePages> + * <page id="com.example.myplugin.prefs" * name="Knobs" - * class="ns::MyPreferencePage" /> - * </extension> - * </pre> + * class="ns::MyPreferencePage" /> + * </extension> + * \endcode * </p> */ struct BERRY_UI_QT IPreferencePage: virtual public Object { berryObjectMacro(berry::IPreferencePage); ~IPreferencePage() override; /** * Initializes this preference page for the given workbench. * <p> * This method is called automatically as the preference page is being created * and initialized. Clients must not call this method. * </p> * * @param workbench the workbench */ virtual void Init(IWorkbench::Pointer workbench) = 0; /** * Creates the top level control for this preference * page under the given parent widget. * <p> * Implementors are responsible for ensuring that * the created control can be accessed via <code>GetControl</code> * </p> * * @param parent the parent widget */ virtual void CreateControl(void* parent) = 0; /** * Returns the top level control for this dialog page. * <p> * May return <code>null</code> if the control * has not been created yet. * </p> * * @return the top level control or <code>null</code> */ virtual void* GetControl() const = 0; /// /// Invoked when the OK button was clicked in the preferences dialog /// virtual bool PerformOk() = 0; /// /// Invoked when the Cancel button was clicked in the preferences dialog /// virtual void PerformCancel() = 0; /// /// Invoked when the user performed an import. As the values of the preferences may have changed /// you should read all values again from the preferences service. /// virtual void Update() = 0; }; } Q_DECLARE_INTERFACE(berry::IPreferencePage, "org.blueberry.ui.IPreferencePage") #endif /*BERRYIPREFERENCEPAGE_H_*/ diff --git a/Plugins/org.blueberry.ui.qt/src/berryISaveablesSource.h b/Plugins/org.blueberry.ui.qt/src/berryISaveablesSource.h index 8398ebbad0..9cf5931787 100644 --- a/Plugins/org.blueberry.ui.qt/src/berryISaveablesSource.h +++ b/Plugins/org.blueberry.ui.qt/src/berryISaveablesSource.h @@ -1,121 +1,120 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYISAVEABLESSOURCE_H_ #define BERRYISAVEABLESSOURCE_H_ #include <berryMacros.h> #include <org_blueberry_ui_qt_Export.h> #include "berrySaveable.h" namespace berry { /** * Represents a source of Saveable objects (units of saveability). Workbench * parts that show more than one unit of saveability, or whose units of * saveability change over time, should implement this interface in order to * provide better integration with workbench facilities like the Save command, * prompts to save on part close or shutdown, etc. * <p> * IMPORTANT: As of 3.2, implementers of <code>ISaveablesSource</code> must * satisfy the following conditions: * <ul> * <li>If ISaveablesSource is implemented by an IWorkbenchPart: * <ul> * <li>the part must implement <code>ISaveablePart</code></li> * <li>if any of its Saveable objects are dirty, the part must return - * <code>true</code> from {@link ISaveablePart#isDirty()}</li> + * <code>true</code> from {@link ISaveablePart#IsDirty()}</li> * <li>the part must return <code>true</code> from - * {@link ISaveablePart#isSaveOnCloseNeeded()} if it is dirty (the default + * {@link ISaveablePart#IsSaveOnCloseNeeded()} if it is dirty (the default * behaviour implemented by {@link EditorPart})</li> - * <li>the part must not implement {@link ISaveablePart2}</li> * </ul> * </li> * <li>If ISaveablesSource is implemented by a non-part (possible as of 3.2.1 and 3.3): * <ul> * <li>the Workbench's {@link ISaveablesLifecycleListener} (obtained from the * Workbench by calling * <code>workbench.getService(ISaveablesLifecycleListener.class)</code>) must - * be notified of any change to the result of {@link #getSaveables()} </li> + * be notified of any change to the result of {@link #GetSaveables()} </li> * <li>getActiveSaveables() should be implemented to return an empty array * </li> * </ul> * </ul> * If any of these conditions are not met, it is undefined whether the Workbench * will prompt to save dirty Saveables when closing parts or the Workbench. * </p> * <p> * These conditions may be relaxed in future releases. * </p> * * @since 3.2 */ struct BERRY_UI_QT ISaveablesSource : public virtual Object { berryObjectMacro(berry::ISaveablesSource); ~ISaveablesSource() override; /** * Returns the saveables presented by the workbench part. If the return * value of this method changes during the lifetime of * this part (i.e. after initialization and control creation but before disposal) * the part must notify an implicit listener using - * {@link ISaveablesLifecycleListener#handleLifecycleEvent(SaveablesLifecycleEvent)}. + * {@link ISaveablesLifecycleListener#HandleLifecycleEvent}. * <p> * Additions of saveables to the list of saveables of this part are * announced using an event of type * {@link SaveablesLifecycleEvent#POST_OPEN}. Removals are announced in a * two-stage process, first using an event of type * {@link SaveablesLifecycleEvent#PRE_CLOSE} followed by an event of type * {@link SaveablesLifecycleEvent#POST_CLOSE}. Since firing the * <code>PRE_CLOSE</code> event may trigger prompts to save dirty * saveables, the cancellation status of the event must be checked by the * part after the notification. When removing only non-dirty saveables, * <code>POST_CLOSE</code> notification is sufficient. * </p> * <p> * The listener is obtained from the part site by calling * <code>partSite.getService(ISaveablesLifecycleListener.class)</code>. * </p> * <p> * The part must not notify from its initialization methods (e.g. <code>init</code> * or <code>createPartControl</code>), or from its dispose method. Parts that * implement {@link IReusableEditor} must notify when their input is changed - * through {@link IReusableEditor#setInput(IEditorInput)}. + * through {@link IReusableEditor#SetInput}. * </p> * * @return the saveables presented by the workbench part * * @see ISaveablesLifecycleListener */ virtual QList<Saveable::Pointer> GetSaveables() = 0; /** * Returns the saveables currently active in the workbench part. * <p> * Certain workbench actions, such as Save, target only the active saveables * in the active part. For example, the active saveables could be determined * based on the current selection in the part. * </p> * * @return the saveables currently active in the workbench part */ virtual QList<Saveable::Pointer> GetActiveSaveables() = 0; }; } #endif /* BERRYISAVEABLESSOURCE_H_ */ diff --git a/Plugins/org.blueberry.ui.qt/src/berryISizeProvider.h b/Plugins/org.blueberry.ui.qt/src/berryISizeProvider.h index 561dde7789..a20937b065 100644 --- a/Plugins/org.blueberry.ui.qt/src/berryISizeProvider.h +++ b/Plugins/org.blueberry.ui.qt/src/berryISizeProvider.h @@ -1,154 +1,154 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYISIZEPROVIDER_H_ #define BERRYISIZEPROVIDER_H_ #include <org_blueberry_ui_qt_Export.h> namespace berry { /** * Interface implemented by objects that are capable of computing * a preferred size * * @since 3.1 - * @noimplement This interface is not intended to be implemented by clients. + * @note This interface is not intended to be implemented by clients. */ struct BERRY_UI_QT ISizeProvider { /** * Constant used to indicate infinite size. This is equal to Integer.MAX_VALUE, ensuring * that it is greater than any other integer. */ static const int INF; virtual ~ISizeProvider(); /** * Returns a bitwise combination of flags indicating how and when computePreferredSize should * be used. When called with horizontal=true, this indicates the usage of computePreferredSize(true,...) * for computing widths. When called with horizontal=false, this indicates the usage of computeSize(false,...) * for computing heights. These flags are used for optimization. Each flag gives the part more control * over its preferred size but slows down the layout algorithm. Parts should return the minimum set * of flags necessary to specify their constraints. * <p> * If the return value of this function ever changes, the part must call <code>flushLayout</code> before * the changes will take effect. * </p> * * <ul> * <li>SWT.MAX: The part has a maximum size that will be returned by computePreferredSize(horizontal, * INF, someWidth, INF)</li> * <li>SWT.MIN: The part has a minimum size that will be returned by computePreferredSize(horizontal, * INF, someWidth, 0)</li> * <li>SWT.WRAP: Indicates that computePreferredSize makes use of the availablePerpendicular argument. If this * flag is not specified, then the third argument to computePreferredSize will always be set to * INF. The perpendicular size is expensive to compute, and it is usually only used * for wrapping parts. * <li>SWT.FILL: The part may not return the preferred size verbatim when computePreferredSize is * is given a value between the minimum and maximum sizes. This is commonly used if the part * wants to use a set of predetermined sizes instead of using the workbench-provided size. * For example, computePreferredSize(horizontal, availableSpace, someWidth, * preferredSize) may return the nearest predetermined size. Note that this flag should * be used sparingly. It can prevent layout caching and cause the workbench layout algorithm * to degrade to exponential worst-case runtime. If this flag is omitted, then * computePreferredSize may be used to compute the minimum and maximum sizes, but not for * anything in between.</li> * </ul> * * @param width a value of true or false determines whether the return value applies when computing * widths or heights respectively. That is, getSizeFlags(true) will be used when calling * computePreferredSize(true,...) * @return any bitwise combination of SWT.MAX, SWT.MIN, SWT.WRAP, and SWT.FILL */ virtual int GetSizeFlags(bool width) = 0; /** * <p> * Returns the best size for this part, given the available width and height and the workbench's * preferred size for the part. Parts can overload this to enforce a minimum size, maximum size, * or a quantized set of preferred sizes. If width == true, this method computes a width in pixels. * If width == false, this method computes a height. availableParallel and availablePerpendicular * contain the space available, and preferredParallel contains the preferred result. * </p> * * <p> * This method returns an answer that is less than or equal to availableParallel and as * close to preferredParallel as possible. Return values larger than availableParallel will * be truncated. * </p> * * <p> * Most presentations will define a minimum size at all times, and a maximum size that only applies * when maximized. * </p> * * <p> * The getSizeFlags method controls how frequently this method will be called and what information * will be available when it is. Any subclass that specializes this method should also specialize * getSizeFlags. computePreferredSize(width, INF, someSize, 0) returns * the minimum size of the control (if any). computePreferredSize(width, INF, someSize, * INF) returns the maximum size of the control. * </p> * * <p> * Examples: * <ul> * <li>To maintain a constant size of 100x300 pixels: {return width ? 100 : 300}, getSizeFlags(boolean) must * return SWT.MIN | SWT.MAX</li> * <li>To grow without constraints: {return preferredResult;}, getSizeFlags(boolean) must return 0.</li> * <li>To enforce a width that is always a multiple of 100 pixels, to a minimum of 100 pixels: * <code> * { * if (width && preferredResult != INF) { * int result = preferredResult - ((preferredResult + 50) % 100) + 50; * result = Math.max(100, Math.min(result, availableParallel - (availableParallel % 100))); * * return result; * } * return preferredResult; * } * </code> * In this case, getSizeFlags(boolean width) must return (width ? SWT.FILL | SWT.MIN: 0) * <li>To maintain a minimum area of 100000 pixels: * <code> * {return availablePerpendicular < 100 ? 1000 : 100000 / availablePerpendicular;} * </code> * getSizeFlags(boolean width) must return SWT.WRAP | SWT.MIN; * </ul> * </p> * * @param width indicates whether a width (=true) or a height (=false) is being computed * @param availableParallel available space. This is a width (pixels) if width == true, and a height (pixels) * if width == false. A return value larger than this will be ignored. * @param availablePerpendicular available space perpendicular to the direction being measured * or INF if unbounded (pixels). This * is a height if width == true, or a height if width == false. Implementations will generally ignore this * argument unless they contain wrapping widgets. Note this argument will only contain meaningful information * if the part returns the SWT.WRAP flag from getSizeFlags(width) * @param preferredResult preferred size of the control (pixels, <= availableParallel). Set to * INF if unknown or unbounded. * @return returns the preferred size of the control (pixels). This is a width if width == true or a height * if width == false. Callers are responsible for rounding down the return value if it is larger than * availableParallel. If availableParallel is INF, then a return value of INF * is permitted, indicating that the preferred size of the control is unbounded. * * @see ISizeProvider#getSizeFlags(boolean) */ virtual int ComputePreferredSize(bool width, int availableParallel, int availablePerpendicular, int preferredResult) = 0; }; } #endif /* BERRYISIZEPROVIDER_H_ */ diff --git a/Plugins/org.blueberry.ui.qt/src/berryISources.h b/Plugins/org.blueberry.ui.qt/src/berryISources.h index aa6c055a7f..23fdfaa030 100644 --- a/Plugins/org.blueberry.ui.qt/src/berryISources.h +++ b/Plugins/org.blueberry.ui.qt/src/berryISources.h @@ -1,292 +1,292 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYISOURCES_H_ #define BERRYISOURCES_H_ #include <string> #include <org_blueberry_ui_qt_Export.h> namespace berry { /** * \ingroup org_blueberry_ui_qt * * <p> * A source is type of event change that can occur within the workbench. For * example, the active workbench window can change, so it is considered a * source. Workbench services can track changes to these sources, and thereby * try to resolve conflicts between a variety of possible options. This is most * commonly used for things like handlers and contexts. * </p> * <p> * This interface defines the source that are known to the workbench at * compile-time. These sources can be combined in a bit-wise fashion. So, for * example, a <code>ACTIVE_PART | ACTIVE_CONTEXT</code> source includes change * to both the active context and the active part. * </p> * <p> * The values assigned to each source indicates its relative priority. The * higher the value, the more priority the source is given in resolving * conflicts. Another way to look at this is that the higher the value, the more * "local" the source is to what the user is currently doing. This is similar * to, but distinct from the concept of components. The nesting support provided * by components represent only one source (<code>ACTIVE_SITE</code>) that * the workbench understands. * </p> * <p> * Note that for backward compatibility, we must reserve the lowest three bits * for <code>Priority</code> instances using the old * <code>HandlerSubmission</code> mechanism. This mechanism was used in * Eclipse 3.0. * </p> * <p> * <b>Note in 3.3:</b> * </p> * <p> * Currently, source variables are not extensible by user plugins, and * the number of bits available for resolving conflicts is limited. When * the variable sources become user extensible a new conflict resolution * mechanism will be implemented. * </p> - * @noimplement This interface is not intended to be implemented by clients. - * @noextend This interface is not intended to be extended by clients. + * @note This interface is not intended to be implemented by clients. + * @note This interface is not intended to be extended by clients. * * @see org.blueberry.ui.ISourceProvider */ struct BERRY_UI_QT ISources { /** * The priority given to default handlers and handlers that are active * across the entire workbench. */ static int WORKBENCH(); // = 0; /** * The priority given when the source includes a particular context. */ static int ACTIVE_CONTEXT(); // = 1 << 3; /** * The variable name for the active contexts. This is for use with the * <code>ISourceProvider</code> and <code>IEvaluationContext</code>. */ static const QString ACTIVE_CONTEXT_NAME(); /** * The priority given when the source includes a particular action set. */ static int ACTIVE_ACTION_SETS(); // = 1 << 5; /** * The variable name for the active action sets. This is for use with the * {@link ISourceProvider} and {@link IEvaluationContext}. */ static const QString ACTIVE_ACTION_SETS_NAME(); /** * The priority given when the source includes the currently active shell. */ static int ACTIVE_SHELL(); // = 1 << 7(); /** * The variable name for the active shell. This is for use with the * <code>ISourceProvider</code> and <code>IEvaluationContext</code>. */ static const QString ACTIVE_SHELL_NAME(); /** * The priority given when the source includes the currently active * workbench window shell. */ static int ACTIVE_WORKBENCH_WINDOW_SHELL(); // = 1 << 9(); /** * The variable name for the active workbench window shell. This is for use * with the <code>ISourceProvider</code> and * <code>IEvaluationContext</code>. */ static const QString ACTIVE_WORKBENCH_WINDOW_SHELL_NAME(); /** * The priority given when the source includes the currently active * workbench window. */ static int ACTIVE_WORKBENCH_WINDOW(); // = 1 << 11(); /** * The variable name for the active workbench window. This is for use with * the <code>ISourceProvider</code> and <code>IEvaluationContext</code>. */ static const QString ACTIVE_WORKBENCH_WINDOW_NAME(); /** * The priority given when the source includes subordinate properties of the currently active * workbench window. */ static int ACTIVE_WORKBENCH_WINDOW_SUBORDINATE(); // = 1 << 12(); /** * The variable name for the coolbar visibility state of the active * workbench window. This is for use with the <code>ISourceProvider</code> * and <code>IEvaluationContext</code>. */ static const QString ACTIVE_WORKBENCH_WINDOW_IS_TOOLBAR_VISIBLE_NAME(); /** * The variable name for the perspective bar visibility state of the active * workbench window. This is for use with the <code>ISourceProvider</code> * and <code>IEvaluationContext</code>. */ static const QString ACTIVE_WORKBENCH_WINDOW_IS_PERSPECTIVEBAR_VISIBLE_NAME(); /** * The variable name for the status line visibility state of the active * workbench window. This is for use with the <code>ISourceProvider</code> * and <code>IEvaluationContext</code>. */ static const QString ACTIVE_WORKBENCH_WINDOW_IS_STATUS_LINE_VISIBLE_NAME(); /** * The variable name for the current perspective of the active workbench * window. This is for use with the <code>ISourceProvider</code> and * <code>IEvaluationContext</code>. */ static const QString ACTIVE_WORKBENCH_WINDOW_ACTIVE_PERSPECTIVE_NAME(); /** * The priority given when the source includes the active editor part. */ static int ACTIVE_EDITOR(); // = 1 << 13(); /** * The variable name for the active editor part. This is for use with the * <code>ISourceProvider</code> and <code>IEvaluationContext</code>. */ static const QString ACTIVE_EDITOR_NAME(); /** * The editor input of the currently active editor. */ static const QString ACTIVE_EDITOR_INPUT_NAME(); /** * The priority given when the source includes the active editor identifier. */ static int ACTIVE_EDITOR_ID(); // = 1 << 15(); /** * The variable name for the active editor identifier. This is for use with * the <code>ISourceProvider</code> and <code>IEvaluationContext</code>. */ static const QString ACTIVE_EDITOR_ID_NAME(); /** * The priority given when the source includes the active part. */ static int ACTIVE_PART(); // = 1 << 17(); /** * The variable name for the active part. This is for use with the * <code>ISourceProvider</code> and <code>IEvaluationContext</code>. */ static const QString ACTIVE_PART_NAME(); /** * The priority given when the source includes the active part id. */ static int ACTIVE_PART_ID(); // = 1 << 19(); /** * The variable name for the active part id. This is for use with the * <code>ISourceProvider</code> and <code>IEvaluationContext</code>. */ static const QString ACTIVE_PART_ID_NAME(); /** * The priority given when the source includes the active workbench site. In * the case of nesting components, one should be careful to only activate * the most nested component. */ static int ACTIVE_SITE(); // = 1 << 23(); /** * The variable name for the active workbench site. This is for use with the * <code>ISourceProvider</code> and <code>IEvaluationContext</code>. */ static const QString ACTIVE_SITE_NAME(); /** * The variable for the showIn selection. This is for use with the * <code>ISourceProvider</code> and <code>IEvaluationContext</code>. * @see IShowInSource */ static const QString SHOW_IN_SELECTION(); /** * The variable for the showIn input. This is for use with the * <code>ISourceProvider</code> and <code>IEvaluationContext</code>. * @see IShowInSource */ static const QString SHOW_IN_INPUT(); /** * The priority given when the source includes the current selection. */ static int ACTIVE_CURRENT_SELECTION(); // = 1 << 27(); /** * The variable name for the active selection. This is for use with the * <code>ISourceProvider</code> and <code>IEvaluationContext</code>. */ static const QString ACTIVE_CURRENT_SELECTION_NAME(); /** * The priority given when the source includes the current menu. */ static int ACTIVE_MENU(); // = 1 << 30(); /** * The variable name for the active menu. This is for use with the * {@link ISourceProvider} and {@link IEvaluationContext}. */ static const QString ACTIVE_MENU_NAME(); /** * The variable name for the <b>local</b> selection, available while a * context menu is visible. */ static const QString ACTIVE_MENU_SELECTION_NAME(); /** * The variable name for the <b>local</b> editor input which is sometimes * available while a context menu is visible. */ static const QString ACTIVE_MENU_EDITOR_INPUT_NAME(); /** * The variable name for the active focus Control, when provided by the * IFocusService. */ static const QString ACTIVE_FOCUS_CONTROL_NAME(); /** * The variable name for the active focus Control id, when provided by the * IFocusService. */ static const QString ACTIVE_FOCUS_CONTROL_ID_NAME(); }; } #endif /*BERRYISOURCES_H_*/ diff --git a/Plugins/org.blueberry.ui.qt/src/berryIStickyViewDescriptor.h b/Plugins/org.blueberry.ui.qt/src/berryIStickyViewDescriptor.h index 143adb01b8..6696e1ad7d 100644 --- a/Plugins/org.blueberry.ui.qt/src/berryIStickyViewDescriptor.h +++ b/Plugins/org.blueberry.ui.qt/src/berryIStickyViewDescriptor.h @@ -1,75 +1,74 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYISTICKYVIEWDESCRIPTOR_H_ #define BERRYISTICKYVIEWDESCRIPTOR_H_ #include <berryObject.h> #include <berryMacros.h> #include <org_blueberry_ui_qt_Export.h> namespace berry { /** * Supplemental view interface that describes various sticky characteristics * that a view may possess. * <p> * This interface is not intended to be implemented by clients. * </p> * * @see org.eclipse.ui.views.IViewRegistry * @see org.eclipse.ui.views.IViewDescriptor * @since 3.1 - * @noimplement This interface is not intended to be implemented by clients. */ struct BERRY_UI_QT IStickyViewDescriptor : public Object { berryObjectMacro(IStickyViewDescriptor); ~IStickyViewDescriptor() override; /** * Return the id of the view to be made sticky. * * @return the id of the view to be made sticky */ virtual QString GetId() const = 0; /** * Return the location of this sticky view. Must be one of * <code>IPageLayout.LEFT</code>, <code>IPageLayout.RIGHT</code>, * <code>IPageLayout.TOP</code>, or <code>IPageLayout.BOTTOM</code>. * * @return the location constant */ virtual int GetLocation() const = 0; /** * Return whether this view should be closeable. * * @return whether this view should be closeeable */ virtual bool IsCloseable() const = 0; /** * Return whether this view should be moveable. * * @return whether this view should be moveable */ virtual bool IsMoveable() const = 0; }; } #endif /* BERRYISTICKYVIEWDESCRIPTOR_H_ */ diff --git a/Plugins/org.blueberry.ui.qt/src/berryIViewLayout.h b/Plugins/org.blueberry.ui.qt/src/berryIViewLayout.h index 6804297e17..66dc791307 100644 --- a/Plugins/org.blueberry.ui.qt/src/berryIViewLayout.h +++ b/Plugins/org.blueberry.ui.qt/src/berryIViewLayout.h @@ -1,88 +1,86 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYIVIEWLAYOUT_H_ #define BERRYIVIEWLAYOUT_H_ #include <org_blueberry_ui_qt_Export.h> #include <berryMacros.h> #include <berryObject.h> namespace berry { /** * \ingroup org_blueberry_ui_qt * * Represents the layout info for a view or placeholder in an {@link IPageLayout}. * <p> * This interface is not intended to be implemented by clients. * </p> - * - * @noimplement This interface is not intended to be implemented by clients. */ struct BERRY_UI_QT IViewLayout : public Object { berryObjectMacro(berry::IViewLayout); ~IViewLayout() override; /** * Returns whether the view is closeable. * The default is <code>true</code>. * * @return <code>true</code> if the view is closeable, <code>false</code> if not */ virtual bool IsCloseable() = 0; /** * Sets whether the view is closeable. * * @param closeable <code>true</code> if the view is closeable, <code>false</code> if not */ virtual void SetCloseable(bool closeable) = 0; /** * Returns whether the view is moveable. * The default is <code>true</code>. * * @return <code>true</code> if the view is moveable, <code>false</code> if not */ virtual bool IsMoveable() = 0; /** * Sets whether the view is moveable. * * @param moveable <code>true</code> if the view is moveable, <code>false</code> if not */ virtual void SetMoveable(bool moveable) = 0; /** * Returns whether the view is a standalone view. * * @see IPageLayout#addStandaloneView */ virtual bool IsStandalone() = 0; /** * Returns whether the view shows its title. * This is only applicable to standalone views. * * @see IPageLayout#addStandaloneView */ virtual bool GetShowTitle() = 0; }; } #endif /*BERRYIVIEWLAYOUT_H_*/ diff --git a/Plugins/org.blueberry.ui.qt/src/berryIViewRegistry.h b/Plugins/org.blueberry.ui.qt/src/berryIViewRegistry.h index bddcaaed38..0ee69890b1 100644 --- a/Plugins/org.blueberry.ui.qt/src/berryIViewRegistry.h +++ b/Plugins/org.blueberry.ui.qt/src/berryIViewRegistry.h @@ -1,80 +1,79 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYIVIEWREGISTRY_H_ #define BERRYIVIEWREGISTRY_H_ #include <org_blueberry_ui_qt_Export.h> #include "berryIViewDescriptor.h" #include "berryIViewCategory.h" #include "berryIStickyViewDescriptor.h" namespace berry { /** * \ingroup org_blueberry_ui_qt * * The view registry maintains a list of views explicitly registered * against the view extension point. * <p> * The description of a given view is kept in a <code>IViewDescriptor</code>. * </p> * <p> * This interface is not intended to be implemented by clients. * </p> * * @see IViewDescriptor * @see IStickyViewDescriptor - * @noimplement This interface is not intended to be implemented by clients. */ struct BERRY_UI_QT IViewRegistry { /** * Return a view descriptor with the given extension id. If no view exists * with the id return <code>null</code>. * Will also return <code>null</code> if the view descriptor exists, but * is filtered by an expression-based activity. * * @param id the id to search for * @return the descriptor or <code>null</code> */ virtual IViewDescriptor::Pointer Find(const QString& id) const = 0; /** * Returns an array of view categories. * * @return the categories. */ virtual QList<IViewCategory::Pointer> GetCategories() = 0; /** * Return a list of views defined in the registry. * * @return the views. */ virtual QList<IViewDescriptor::Pointer> GetViews() const = 0; /** * Return a list of sticky views defined in the registry. * * @return the sticky views. Never <code>null</code>. */ virtual QList<IStickyViewDescriptor::Pointer> GetStickyViews() const = 0; virtual ~IViewRegistry(); }; } #endif /*BERRYIVIEWREGISTRY_H_*/ diff --git a/Plugins/org.blueberry.ui.qt/src/berryIViewSite.h b/Plugins/org.blueberry.ui.qt/src/berryIViewSite.h index cf77f4dd4b..70f052e120 100644 --- a/Plugins/org.blueberry.ui.qt/src/berryIViewSite.h +++ b/Plugins/org.blueberry.ui.qt/src/berryIViewSite.h @@ -1,58 +1,57 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYIVIEWSITE_H_ #define BERRYIVIEWSITE_H_ #include "berryIWorkbenchPartSite.h" #include <string> namespace berry { /** * \ingroup org_blueberry_ui_qt * * The primary interface between a view part and the workbench. * <p> * The workbench exposes its implemention of view part sites via this interface, * which is not intended to be implemented or extended by clients. * </p> - * @noimplement This interface is not intended to be implemented by clients. */ struct BERRY_UI_QT IViewSite : public virtual IWorkbenchPartSite { berryObjectMacro(berry::IViewSite); ~IViewSite() override; /** * Returns the action bars for this part site. * Views have exclusive use of their site's action bars. * * @return the action bars */ //IActionBars getActionBars(); /** * Returns the secondary id for this part site's part, * or <code>null</code> if it has none. * * @see IWorkbenchPage#showView(String, String, int) */ virtual QString GetSecondaryId() = 0; }; } #endif /*BERRYIVIEWSITE_H_*/ diff --git a/Plugins/org.blueberry.ui.qt/src/berryIWindowListener.h b/Plugins/org.blueberry.ui.qt/src/berryIWindowListener.h index 6de47bc5de..94eb3d2f09 100644 --- a/Plugins/org.blueberry.ui.qt/src/berryIWindowListener.h +++ b/Plugins/org.blueberry.ui.qt/src/berryIWindowListener.h @@ -1,95 +1,89 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYIWINDOWLISTENER_H_ #define BERRYIWINDOWLISTENER_H_ #include <org_blueberry_ui_qt_Export.h> #include <berryMessage.h> #include "berryIWorkbenchWindow.h" namespace berry { /** * Interface for listening to window lifecycle events. * <p> * This interface may be implemented by clients. * </p> */ struct BERRY_UI_QT IWindowListener { struct Events { typedef Message1<const IWorkbenchWindow::Pointer&> WindowEvent; WindowEvent windowActivated; WindowEvent windowDeactivated; WindowEvent windowClosed; WindowEvent windowOpened; void AddListener(IWindowListener* listener); void RemoveListener(IWindowListener* listener); private: typedef MessageDelegate1<IWindowListener, const IWorkbenchWindow::Pointer&> Delegate; }; virtual ~IWindowListener(); /** * Notifies this listener that the given window has been activated. * <p> * <b>Note:</b> This event is not fired if no perspective is * open (the window is empty). * </p> - * - * @param window the window that was activated */ virtual void WindowActivated(const IWorkbenchWindow::Pointer& /*window*/) {} /** * Notifies this listener that the given window has been deactivated. * <p> * <b>Note:</b> This event is not fired if no perspective is * open (the window is empty). * </p> - * - * @param window the window that was activated */ virtual void WindowDeactivated(const IWorkbenchWindow::Pointer& /*window*/) {} /** * Notifies this listener that the given window has been closed. * - * @param window the window that was closed * @see IWorkbenchWindow#close */ virtual void WindowClosed(const IWorkbenchWindow::Pointer& /*window*/) {} /** * Notifies this listener that the given window has been opened. * - * @param window the window that was opened * @see IWorkbench#openWorkbenchWindow */ virtual void WindowOpened(const IWorkbenchWindow::Pointer& /*window*/) {} }; } #endif /* BERRYIWINDOWLISTENER_H_ */ diff --git a/Plugins/org.blueberry.ui.qt/src/berryIWorkbench.h b/Plugins/org.blueberry.ui.qt/src/berryIWorkbench.h index 49c5894bc9..905f58a87f 100644 --- a/Plugins/org.blueberry.ui.qt/src/berryIWorkbench.h +++ b/Plugins/org.blueberry.ui.qt/src/berryIWorkbench.h @@ -1,423 +1,421 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYIWORKBENCH_H_ #define BERRYIWORKBENCH_H_ #include <berryMacros.h> #include "services/berryIServiceLocator.h" #include "berryIViewRegistry.h" #include "berryIEditorRegistry.h" #include "intro/berryIIntroManager.h" #include "berryIPerspectiveRegistry.h" #include "berryIWorkbenchWindow.h" #include "berryIWorkbenchListener.h" #include "berryIWindowListener.h" #include "berryDisplay.h" namespace berry { struct IElementFactory; struct IExtensionTracker; struct IWorkbenchPage; /** * \ingroup org_blueberry_ui_qt * * A workbench is the root object for the BlueBerry Platform user interface. * <p> * A <b>workbench</b> has one or more main windows which present to the end * user information based on some underlying model, typically on resources in an * underlying workspace. A workbench usually starts with a single open window, * and automatically closes when its last window closes. * </p> * <p> * Each <b>workbench window</b> has a collection of <b>pages</b>; the active * page is the one that is being presented to the end user; at most one page is * active in a window at a time. * </p> * <p> * Each workbench page has a collection of <b>workbench parts</b>, of which * there are two kinds: views and editors. A page's parts are arranged (tiled or * stacked) for presentation on the screen. The arrangement is not fixed; the * user can arrange the parts as they see fit. A <b>perspective</b> is a * template for a page, capturing a collection of parts and their arrangement. * </p> * <p> * The platform creates a workbench when the workbench plug-in is activated; * since this happens at most once during the life of the running platform, * there is only one workbench instance. Due to its singular nature, it is - * commonly referred to as <it>the</it> workbench. + * commonly referred to as <em>the</em> workbench. * </p> * <p> * The workbench supports a few {@link IServiceLocator services} by default. If * these services are used to allocate resources, it is important to remember to * clean up those resources after you are done with them. Otherwise, the * resources will exist until the workbench shuts down. The supported services * are: * </p> * <ul> - * <li>{@link IBindingService}</li> * <li>{@link ICommandService}</li> * <li>{@link IContextService}</li> * <li>{@link IHandlerService}</li> * </ul> * <p> * This interface is not intended to be implemented by clients. * </p> * - * @see PlatformUI#getWorkbench - * @noimplement This interface is not intended to be implemented by clients. + * @see PlatformUI#GetWorkbench */ struct BERRY_UI_QT IWorkbench : public IServiceLocator { berryObjectMacro(berry::IWorkbench); ~IWorkbench() override; /** * Returns the display for this workbench. * <p> * Code should always ask the workbench for the display rather than rely on - * {@link Display#getDefault Display.getDefault()}. + * {@link Display#GetDefault Display.getDefault()}. * </p> * * @return the display to be used for all UI interactions with this * workbench */ virtual Display* GetDisplay() const = 0; /** * Adds a workbench listener. * * @param listener * the workbench listener to add * @since 3.2 */ virtual void AddWorkbenchListener(IWorkbenchListener* listener) = 0; /** * Removes a workbench listener. * * @param listener * the workbench listener to remove * @since 3.2 */ virtual void RemoveWorkbenchListener(IWorkbenchListener* listener) = 0; /** * Returns the workbench events object */ virtual IWorkbenchListener::Events& GetWorkbenchEvents() = 0; /** * Adds a window listener. * * @param listener * the window listener to add * @since 2.0 */ virtual void AddWindowListener(IWindowListener* listener) = 0; /** * Removes a window listener. * * @param listener * the window listener to remove * @since 2.0 */ virtual void RemoveWindowListener(IWindowListener* listener) = 0; /** * Returns the window events object * */ virtual IWindowListener::Events& GetWindowEvents() = 0; /** * Closes this workbench and all its open windows. * <p> * If the workbench has an open editor with unsaved content, the user will * be given the opportunity to save it. * </p> * * @return <code>true</code> if the workbench was successfully closed, and * <code>false</code> if it is still open */ virtual bool Close() = 0; /** * Returns the currently active window for this workbench (if any). Returns * <code>null</code> if there is no active workbench window. Returns * <code>null</code> if called from a non-UI thread. * * @return the active workbench window, or <code>null</code> if there is * no active workbench window or if called from a non-UI thread */ virtual IWorkbenchWindow::Pointer GetActiveWorkbenchWindow() const = 0; /** * Return the extension tracker for the workbench. This tracker may be used * by plug-ins to ensure responsiveness to changes to the plug-in registry. * <p> * The tracker at this level of the workbench is typically used to track * elements that persist for the life of the workbench. For example, * <code>IEditorDescriptor</code> objects fall into this category. * </p> * * @return the extension tracker * @see IWorkbenchWindow#GetExtensionTracker() * @see IWorkbenchPage#GetExtensionTracker() */ virtual IExtensionTracker* GetExtensionTracker() const = 0; /** * Returns the perspective registry for the workbench. * * @return the workbench perspective registry */ virtual IPerspectiveRegistry* GetPerspectiveRegistry() const = 0; /** * Returns the view registry for the workbench. * * @return the workbench view registry * @since 3.1 */ virtual IViewRegistry* GetViewRegistry() const = 0; /** * Returns the editor registry for the workbench. * * @return the workbench editor registry */ virtual IEditorRegistry* GetEditorRegistry() const = 0; /** * Returns the number of open main windows associated with this workbench. * Note that wizards and dialogs are not included in this list since they * are not considered main windows. * * @return the number of open windows * @since 3.0 */ virtual std::size_t GetWorkbenchWindowCount() const = 0; /** * Returns a list of the open main windows associated with this workbench. * Note that wizards and dialogs are not included in this list since they * are not considered main windows. * * @return a list of open windows */ virtual QList<IWorkbenchWindow::Pointer> GetWorkbenchWindows() const = 0; /** * Creates and opens a new workbench window with one page. The perspective * of the new page is defined by the specified perspective ID. The new * window and new page become active. * <p> * <b>Note:</b> The caller is responsible to ensure the action using this * method will explicitly inform the user a new window will be opened. * Otherwise, callers are strongly recommended to use the * <code>openPerspective</code> APIs to programmatically show a * perspective to avoid confusing the user. * </p> * <p> * In most cases where this method is used the caller is tightly coupled to * a particular perspective. They define it in the registry and contribute * some user interface action to open or activate it. In situations like * this a static variable is often used to identify the perspective ID. * </p> * * @param perspectiveId * the perspective id for the window's initial page, or * <code>null</code> for no initial page * @param input * the page input, or <code>null</code> if there is no current * input. This is used to seed the input for the new page's * views. * @return the new workbench window * @exception WorkbenchException * if a new window and page could not be opened * * @see IWorkbench#showPerspective(String, IWorkbenchWindow, IAdaptable) */ virtual IWorkbenchWindow::Pointer OpenWorkbenchWindow(const QString& perspectiveId, IAdaptable* input) = 0; /** * Creates and opens a new workbench window with one page. The perspective * of the new page is defined by the default perspective ID. The new window * and new page become active. * <p> * <b>Note:</b> The caller is responsible to ensure the action using this * method will explicitly inform the user a new window will be opened. * Otherwise, callers are strongly recommended to use the * <code>openPerspective</code> APIs to programmatically show a * perspective to avoid confusing the user. * </p> * * @param input * the page input, or <code>null</code> if there is no current * input. This is used to seed the input for the new page's * views. * @return the new workbench window * @exception WorkbenchException * if a new window and page could not be opened * * @see IWorkbench#showPerspective(String, IWorkbenchWindow, IAdaptable) */ virtual IWorkbenchWindow::Pointer OpenWorkbenchWindow(IAdaptable* input) = 0; /** * Shows the specified perspective to the user. The caller should use this * method when the perspective to be shown is not dependent on the page's * input. That is, the perspective can open in any page depending on user * preferences. * <p> * The perspective may be shown in the specified window, in another existing * window, or in a new window depending on user preferences. The exact * policy is controlled by the workbench to ensure consistency to the user. * The policy is subject to change. The current policy is as follows: * <ul> * <li>If the specified window has the requested perspective open, then the * window is given focus and the perspective is shown. The page's input is * ignored.</li> * <li>If another window that has the workspace root as input and the * requested perspective open and active, then the window is given focus. * </li> * <li>Otherwise the requested perspective is opened and shown in the * specified window or in a new window depending on the current user * preference for opening perspectives, and that window is given focus. * </li> * </ul> * </p> * <p> * The workbench also defines a number of menu items to activate or open * each registered perspective. A complete list of these perspectives is * available from the perspective registry found on <code>IWorkbench</code>. * </p> * * @param perspectiveId * the perspective ID to show * @param window * the workbench window of the action calling this method. * @return the workbench page that the perspective was shown * @exception WorkbenchException * if the perspective could not be shown * * @since 2.0 */ virtual SmartPointer<IWorkbenchPage> ShowPerspective(const QString& perspectiveId, IWorkbenchWindow::Pointer window) = 0; /** * Shows the specified perspective to the user. The caller should use this * method when the perspective to be shown is dependent on the page's input. * That is, the perspective can only open in any page with the specified * input. * <p> * The perspective may be shown in the specified window, in another existing * window, or in a new window depending on user preferences. The exact * policy is controlled by the workbench to ensure consistency to the user. * The policy is subject to change. The current policy is as follows: * <ul> * <li>If the specified window has the requested perspective open and the * same requested input, then the window is given focus and the perspective * is shown.</li> * <li>If another window has the requested input and the requested * perspective open and active, then that window is given focus.</li> * <li>If the specified window has the same requested input but not the * requested perspective, then the window is given focus and the perspective * is opened and shown on condition that the user preference is not to open * perspectives in a new window.</li> * <li>Otherwise the requested perspective is opened and shown in a new * window, and the window is given focus.</li> * </ul> * </p> * <p> * The workbench also defines a number of menu items to activate or open * each registered perspective. A complete list of these perspectives is * available from the perspective registry found on <code>IWorkbench</code>. * </p> * * @param perspectiveId * the perspective ID to show * @param window * the workbench window of the action calling this method. * @param input * the page input, or <code>null</code> if there is no current * input. This is used to seed the input for the page's views * @return the workbench page that the perspective was shown * @exception WorkbenchException * if the perspective could not be shown * * @since 2.0 */ virtual SmartPointer<IWorkbenchPage> ShowPerspective(const QString& perspectiveId, IWorkbenchWindow::Pointer window, IAdaptable* input) = 0; /** * Save all dirty editors in the workbench. Opens a dialog to prompt the * user if <code>confirm</code> is true. Return true if successful. Return * false if the user has canceled the command. * * @param confirm <code>true</code> to ask the user before saving unsaved * changes (recommended), and <code>false</code> to save * unsaved changes without asking * @return <code>true</code> if the command succeeded, and * <code>false</code> if the operation was canceled by the user or * an error occurred while saving */ virtual bool SaveAllEditors(bool confirm) = 0; /** * Returns the element factory with the given id. The calles takes * ownership of the returned pointer. * * @param factoryId * the id of the element factory * @return the element factory, or <code>null</code> if none * @see IElementFactory */ virtual IElementFactory* GetElementFactory(const QString& factoryId) const = 0; /** * Return the intro manager for this workbench. * * @return the intro manager for this workbench. Guaranteed not to be * <code>null</code>. */ virtual IIntroManager* GetIntroManager() const = 0; /** * Returns a boolean indicating whether the workbench is in the process of * closing. * * @return <code>true</code> if the workbench is in the process of * closing, <code>false</code> otherwise * @since 3.1 */ virtual bool IsClosing() const = 0; /** * Applies changes of the current theme to the user interface. */ virtual void UpdateTheme() = 0; }; } #endif /*BERRYIWORKBENCH_H_*/ diff --git a/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchCommandConstants.h b/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchCommandConstants.h index 299f22a327..3feef4cbe4 100644 --- a/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchCommandConstants.h +++ b/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchCommandConstants.h @@ -1,324 +1,324 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYIWORKBENCHCOMMANDCONSTANTS_H #define BERRYIWORKBENCHCOMMANDCONSTANTS_H #include <org_blueberry_ui_qt_Export.h> #include <QString> namespace berry { /** * Constants for all commands defined by the BlueBerry workbench. * - * @noextend This interface is not intended to be extended by clients. - * @noimplement This interface is not intended to be implemented by clients. + * @note This interface is not intended to be extended by clients. + * @note This interface is not intended to be implemented by clients. */ struct BERRY_UI_QT IWorkbenchCommandConstants { // File Category /** * Id for command "New" in category "File" * (value is <code>"org.blueberry.ui.newWizard"</code>). */ static const QString FILE_NEW; // = "org.blueberry.ui.newWizard"; /** * Id for command "Open File" in category "File" * (value is <code>"org.blueberry.ui.file.openLocal"</code>). */ static const QString FILE_OPEN; // = "org.blueberry.ui.file.openLocal"; /** * Id for command "Save" in category "File" * (value is <code>"org.blueberry.ui.file.save"</code>). */ static const QString FILE_SAVE; // = "org.blueberry.ui.file.save"; /** * Id for command "Exit" in category "File" * (value is <code>"org.blueberry.ui.file.exit"</code>). */ static const QString FILE_EXIT; // = "org.blueberry.ui.file.exit"; // Edit Category: /** * Id for command "Undo" in category "Edit" * (value is <code>"org.blueberry.ui.edit.undo"</code>). */ static const QString EDIT_UNDO; // = "org.blueberry.ui.edit.undo"; /** * Id for command "Redo" in category "Edit" * (value is <code>"org.blueberry.ui.edit.redo"</code>). */ static const QString EDIT_REDO; // = "org.blueberry.ui.edit.redo"; /** * Id for command "Cut" in category "Edit" * (value is <code>"org.blueberry.ui.edit.cut"</code>). */ static const QString EDIT_CUT; // = "org.blueberry.ui.edit.cut"; /** * Id for command "Copy" in category "Edit" * (value is <code>"org.blueberry.ui.edit.copy"</code>). */ static const QString EDIT_COPY; // = "org.blueberry.ui.edit.copy"; /** * Id for command "Paste" in category "Edit" * (value is <code>"org.blueberry.ui.edit.paste"</code>). */ static const QString EDIT_PASTE; // = "org.blueberry.ui.edit.paste"; /** * Id for command "Delete" in category "Edit" * (value is <code>"org.blueberry.ui.edit.delete"</code>). */ static const QString EDIT_DELETE; // = "org.blueberry.ui.edit.delete"; // Window Category: /** * Id for command "New Window" in category "Window" * (value is <code>"org.eclipse.ui.window.newWindow"</code>). */ static const QString WINDOW_NEW_WINDOW; // = "org.blueberry.ui.window.newWindow"; /** * Id for command "New Editor" in category "Window" * (value is <code>"org.eclipse.ui.window.newEditor"</code>). */ static const QString WINDOW_NEW_EDITOR; // = "org.blueberry.ui.window.newEditor"; /** * Id for command "Show View Menu" in category "Window" * (value is <code>"org.eclipse.ui.window.showViewMenu"</code>). */ static const QString WINDOW_SHOW_VIEW_MENU; // = "org.blueberry.ui.window.showViewMenu"; /** * Id for command "Activate Editor" in category "Window" * (value is <code>"org.eclipse.ui.window.activateEditor"</code>). */ static const QString WINDOW_ACTIVATE_EDITOR; // = "org.blueberry.ui.window.activateEditor"; /** * Id for command "Maximize Active View or Editor" in category "Window" * (value is <code>"org.eclipse.ui.window.maximizePart"</code>). */ static const QString WINDOW_MAXIMIZE_ACTIVE_VIEW_OR_EDITOR; // = "org.blueberry.ui.window.maximizePart"; /** * Id for command "Minimize Active View or Editor" in category "Window" * (value is <code>"org.eclipse.ui.window.minimizePart"</code>). */ static const QString WINDOW_MINIMIZE_ACTIVE_VIEW_OR_EDITOR; // = "org.blueberry.ui.window.minimizePart"; /** * Id for command "Next Editor" in category "Window" * (value is <code>"org.eclipse.ui.window.nextEditor"</code>). */ static const QString WINDOW_NEXT_EDITOR; // = "org.blueberry.ui.window.nextEditor"; /** * Id for command "Previous Editor" in category "Window" * (value is <code>"org.eclipse.ui.window.previousEditor"</code>). */ static const QString WINDOW_PREVIOUS_EDITOR; // = "org.blueberry.ui.window.previousEditor"; /** * Id for command "Next View" in category "Window" * (value is <code>"org.eclipse.ui.window.nextView"</code>). */ static const QString WINDOW_NEXT_VIEW; // = "org.blueberry.ui.window.nextView"; /** * Id for command "Previous View" in category "Window" * (value is <code>"org.eclipse.ui.window.previousView"</code>). */ static const QString WINDOW_PREVIOUS_VIEW; // = "org.blueberry.ui.window.previousView"; /** * Id for command "Next Perspective" in category "Window" * (value is <code>"org.eclipse.ui.window.nextPerspective"</code>). */ static const QString WINDOW_NEXT_PERSPECTIVE; // = "org.blueberry.ui.window.nextPerspective"; /** * Id for command "Previous Perspective" in category "Window" * (value is <code>"org.eclipse.ui.window.previousPerspective"</code>). */ static const QString WINDOW_PREVIOUS_PERSPECTIVE; // = "org.blueberry.ui.window.previousPerspective"; /** * Id for command "Close All Perspectives" in category "Window" * (value is <code>"org.eclipse.ui.window.closeAllPerspectives"</code>). */ static const QString WINDOW_CLOSE_ALL_PERSPECTIVES; // = "org.blueberry.ui.window.closeAllPerspectives"; /** * Id for command "Close Perspective" in category "Window" * (value is <code>"org.eclipse.ui.window.closePerspective"</code>). */ static const QString WINDOW_CLOSE_PERSPECTIVE; // = "org.blueberry.ui.window.closePerspective"; /** * Id for parameter "Perspective Id" in command "Close Perspective" in * category "Window" (value is * <code>"org.eclipse.ui.window.closePerspective.perspectiveId"</code>). * Optional. */ static const QString WINDOW_CLOSE_PERSPECTIVE_PARM_ID; // = "org.blueberry.ui.window.closePerspective.perspectiveId"; /** * Id for command "Close Part" in category "Window" (value is * <code>"org.eclipse.ui.file.closePart"</code>). */ static const QString WINDOW_CLOSE_PART; // = "org.blueberry.ui.file.closePart"; /** * Id for command "Customize Perspective" in category "Window" * (value is <code>"org.eclipse.ui.window.customizePerspective"</code>). */ static const QString WINDOW_CUSTOMIZE_PERSPECTIVE; // = "org.blueberry.ui.window.customizePerspective"; /** * Id for command "Pin Editor" in category "Window" * (value is <code>"org.eclipse.ui.window.pinEditor"</code>). */ static const QString WINDOW_PIN_EDITOR; // = "org.blueberry.ui.window.pinEditor"; /** * Id for command "Preferences" in category "Window" * (value is <code>"org.eclipse.ui.window.preferences"</code>). */ static const QString WINDOW_PREFERENCES; // = "org.blueberry.ui.window.preferences"; /** * Id for parameter "Preference Page Id" in command "Preferences" in * category "Window" (value is <code>"preferencePageId"</code>). Optional. */ static const QString WINDOW_PREFERENCES_PARM_PAGEID; // = "preferencePageId"; /** * Id for command "Reset Perspective" in category "Window" (value is * <code>"org.eclipse.ui.window.resetPerspective"</code>). */ static const QString WINDOW_RESET_PERSPECTIVE; // = "org.blueberry.ui.window.resetPerspective"; /** * Id for command "Save Perspective As" in category "Window" * (value is <code>"org.eclipse.ui.window.savePerspective"</code>). */ static const QString WINDOW_SAVE_PERSPECTIVE_AS; // = "org.blueberry.ui.window.savePerspective"; /** * Id for command "Show Key Assist" in category "Window" * (value is <code>"org.eclipse.ui.window.showKeyAssist"</code>). */ static const QString WINDOW_SHOW_KEY_ASSIST; // = "org.blueberry.ui.window.showKeyAssist"; // Help Category: /** * Id for command "Help Contents" in category "Help" * (value is <code>"org.blueberry.ui.help.helpContents"</code>). */ static const QString HELP_HELP_CONTENTS; // = "org.blueberry.ui.help.helpContents"; /** * Id for command "Help Search" in category "Help" * (value is <code>"org.blueberry.ui.help.helpSearch"</code>). */ static const QString HELP_HELP_SEARCH; // = "org.blueberry.ui.help.helpSearch"; /** * Id for command "Dynamic Help" in category "Help" * (value is <code>"org.blueberry.ui.help.dynamicHelp"</code>). */ static const QString HELP_DYNAMIC_HELP; // = "org.blueberry.ui.help.dynamicHelp"; /** * Id for command "Welcome" in category "Help" * (value is <code>"org.blueberry.ui.help.quickStartAction"</code>). */ static const QString HELP_WELCOME; // = "org.blueberry.ui.help.intro"; /** * Id for command "About" in category "Help" * (value is <code>"org.blueberry.ui.help.aboutAction"</code>). */ static const QString HELP_ABOUT; // = "org.blueberry.ui.help.aboutAction"; // Views Category: /** * Id for command "Show View" in category "Views" * (value is <code>"org.blueberry.ui.views.showView"</code>). */ static const QString VIEWS_SHOW_VIEW; // = "org.blueberry.ui.views.showView"; /** * Id for parameter "View Id" in command "Show View" in category "Views" * (value is <code>"org.blueberry.ui.views.showView.viewId"</code>). */ static const QString VIEWS_SHOW_VIEW_PARM_ID; // = "org.blueberry.ui.views.showView.viewId"; /** * Id for parameter "Secondary Id" in command "Show View" in category "Views" * (value is <code>"org.blueberry.ui.views.showView.secondaryId"</code>). */ static const QString VIEWS_SHOW_VIEW_SECONDARY_ID; // = "org.blueberry.ui.views.showView.secondaryId"; /** * Id for parameter "As Fastview" in command "Show View" in category "Views" * (value is <code>"org.blueberry.ui.views.showView.makeFast"</code>). * Optional. */ static const QString VIEWS_SHOW_VIEW_PARM_FASTVIEW; // = "org.blueberry.ui.views.showView.makeFast"; // Perspectives Category: /** * Id for command "Show Perspective" in category "Perspectives" * (value is <code>"org.blueberry.ui.perspectives.showPerspective"</code>). */ static const QString PERSPECTIVES_SHOW_PERSPECTIVE; // = "org.blueberry.ui.perspectives.showPerspective"; /** * Id for parameter "Perspective Id" in command "Show Perspective" in * category "Perspectives" (value is * <code>"org.blueberry.ui.perspectives.showPerspective.perspectiveId"</code> * ). */ static const QString PERSPECTIVES_SHOW_PERSPECTIVE_PARM_ID; // = "org.blueberry.ui.perspectives.showPerspective.perspectiveId"; /** * Id for parameter "In New Window" in command "Show Perspective" in * category "Perspectives" (value is * <code>"org.blueberry.ui.perspectives.showPerspective.newWindow"</code>). * Optional. */ static const QString PERSPECTIVES_SHOW_PERSPECTIVE_PARM_NEWWINDOW; // = "org.blueberry.ui.perspectives.showPerspective.newWindow"; }; } #endif // BERRYIWORKBENCHCOMMANDCONSTANTS_H diff --git a/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchListener.h b/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchListener.h index 38e53d6db1..8a4102f094 100644 --- a/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchListener.h +++ b/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchListener.h @@ -1,95 +1,90 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYIWORKBENCHLISTENER_H_ #define BERRYIWORKBENCHLISTENER_H_ #include <org_blueberry_ui_qt_Export.h> #include "berryMessage.h" namespace berry { struct IWorkbench; /** * Interface for listening to workbench lifecycle events. * <p> * This interface may be implemented by clients. * </p> * * @see IWorkbench#addWorkbenchListener * @see IWorkbench#removeWorkbenchListener */ struct BERRY_UI_QT IWorkbenchListener { struct Events { typedef Message2<IWorkbench*, bool, bool> PreShutdownEvent; typedef Message1<IWorkbench*> PostShutdownEvent; PreShutdownEvent preShutdown; PostShutdownEvent postShutdown; void AddListener(IWorkbenchListener* listener); void RemoveListener(IWorkbenchListener* listener); private: typedef MessageDelegate2<IWorkbenchListener, IWorkbench*, bool, bool> Delegate2; typedef MessageDelegate1<IWorkbenchListener, IWorkbench*> Delegate1; }; virtual ~IWorkbenchListener(); /** * Notifies that the workbench is about to shut down. * <p> * This method is called immediately prior to workbench shutdown before any * windows have been closed. * </p> * <p> * The listener may veto a regular shutdown by returning <code>false</code>, * although this will be ignored if the workbench is being forced to shut down. * </p> * <p> * Since other workbench listeners may veto the shutdown, the listener should * not dispose resources or do any other work during this notification that would * leave the workbench in an inconsistent state. * </p> * - * @param workbench the workbench - * @param forced <code>true</code> if the workbench is being forced to shutdown, - * <code>false</code> for a regular close * @return <code>true</code> to allow the workbench to proceed with shutdown, * <code>false</code> to veto a non-forced shutdown */ virtual bool PreShutdown(IWorkbench* /*workbench*/, bool /*forced*/) { return true; } /** * Performs arbitrary finalization after the workbench stops running. * <p> * This method is called during workbench shutdown after all windows * have been closed. * </p> - * - * @param workbench the workbench */ virtual void PostShutdown(IWorkbench* /*workbench*/) {} }; } #endif /* BERRYIWORKBENCHLISTENER_H_ */ diff --git a/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchPage.h b/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchPage.h index 41c963df35..66b78cead5 100644 --- a/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchPage.h +++ b/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchPage.h @@ -1,867 +1,831 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYIWORKBENCHPAGE_H_ #define BERRYIWORKBENCHPAGE_H_ #include <berryMacros.h> #include "berryIEditorReference.h" #include "berryIViewReference.h" #include "berryIPerspectiveDescriptor.h" #include "berryIEditorPart.h" #include "berryIViewPart.h" #include "berryIEditorInput.h" #include "berryIPartService.h" #include "berryISelectionService.h" #include "berryIReusableEditor.h" #include "berryIWorkbenchWindow.h" /** * \ingroup org_blueberry_ui_qt * */ namespace berry { struct IExtensionTracker; /** * A workbench page consists of an arrangement of views and editors intended to * be presented together to the user in a single workbench window. * <p> * A page can contain 0 or more views and 0 or more editors. These views and * editors are contained wholly within the page and are not shared with other * pages. The layout and visible action set for the page is defined by a * perspective. * <p> * The number of views and editors within a page is restricted to simplify part * management for the user. In particular: * <ul> * <li>Unless a view explicitly allows for multiple instances in its plugin * declaration there will be only one instance in a given workbench page.</li> * <li>Only one editor can exist for each editor input within a page. * <li> * </ul> * </p> * <p> * This interface is not intended to be implemented by clients. * </p> * * @see IPerspectiveDescriptor * @see IEditorPart * @see IViewPart */ struct BERRY_UI_QT IWorkbenchPage : public IPartService, public ISelectionService, public Object { berryObjectMacro(berry::IWorkbenchPage); ~IWorkbenchPage() override; /** * An optional attribute within a workspace marker (<code>IMarker</code>) * which identifies the preferred editor type to be opened when * <code>openEditor</code> is called. * - * @see #openEditor(IEditorInput, String) - * @see #openEditor(IEditorInput, String, boolean) + * @see #OpenEditor * @deprecated in 3.0 since the notion of markers this is not generally * applicable. Use the IDE-specific constant * <code>IDE.EDITOR_ID_ATTR</code>. */ static const QString EDITOR_ID_ATTR; // = "org.blueberry.ui.editorID"; /** * Change event id when the perspective is reset to its original state. * * @see IPerspectiveListener */ static const QString CHANGE_RESET; // = "reset"; /** * Change event id when the perspective has completed a reset to its * original state. * * @since 3.0 * @see IPerspectiveListener */ static const QString CHANGE_RESET_COMPLETE; // = "resetComplete"; /** * Change event id when one or more views are shown in a perspective. * * @see IPerspectiveListener */ static const QString CHANGE_VIEW_SHOW; // = "viewShow"; /** * Change event id when one or more views are hidden in a perspective. * * @see IPerspectiveListener */ static const QString CHANGE_VIEW_HIDE; // = "viewHide"; /** * Change event id when one or more editors are opened in a perspective. * * @see IPerspectiveListener */ static const QString CHANGE_EDITOR_OPEN; // = "editorOpen"; /** * Change event id when one or more editors are closed in a perspective. * * @see IPerspectiveListener */ static const QString CHANGE_EDITOR_CLOSE; // = "editorClose"; /** * Change event id when the editor area is shown in a perspective. * * @see IPerspectiveListener */ static const QString CHANGE_EDITOR_AREA_SHOW; // = "editorAreaShow"; /** * Change event id when the editor area is hidden in a perspective. * * @see IPerspectiveListener */ static const QString CHANGE_EDITOR_AREA_HIDE; // = "editorAreaHide"; /** * Change event id when an action set is shown in a perspective. * * @see IPerspectiveListener */ static const QString CHANGE_ACTION_SET_SHOW; // = "actionSetShow"; /** * Change event id when an action set is hidden in a perspective. * * @see IPerspectiveListener */ static const QString CHANGE_ACTION_SET_HIDE; // = "actionSetHide"; /** * Show view mode that indicates the view should be made visible and * activated. Use of this mode has the same effect as calling - * {@link #showView(String)}. + * #ShowView . */ static const int VIEW_ACTIVATE; // = 1; /** * Show view mode that indicates the view should be made visible. If the * view is opened in the container that contains the active view then this * has the same effect as <code>VIEW_CREATE</code>. */ static const int VIEW_VISIBLE; // = 2; /** * Show view mode that indicates the view should be made created but not * necessarily be made visible. It will only be made visible in the event * that it is opened in its own container. In other words, only if it is not * stacked with another view. */ static const int VIEW_CREATE; // = 3; /** * Editor opening match mode specifying that no matching against existing * editors should be done. */ static const int MATCH_NONE; // = 0; /** * Editor opening match mode specifying that the editor input should be * considered when matching against existing editors. */ static const int MATCH_INPUT; // = 1; /** * Editor opening match mode specifying that the editor id should be * considered when matching against existing editors. */ static const int MATCH_ID; // = 2; /** * Activates the given part. The part will be brought to the front and given * focus. The part must belong to this page. * * @param part * the part to activate */ virtual void Activate(IWorkbenchPart::Pointer part) = 0; - /** - * Adds a property change listener. - * - * @param listener - * the property change listener to add - */ - //virtual void addPropertyChangeListener(IPropertyChangeListener listener); - /** * Moves the given part forward in the Z order of this page so as to make it * visible, without changing which part has focus. The part must belong to * this page. * * @param part * the part to bring forward */ virtual void BringToTop(IWorkbenchPart::Pointer part) = 0; /** * Closes this workbench page. If this page is the active one, this honor is * passed along to one of the window's other pages if possible. * <p> * If the page has an open editor with unsaved content, the user will be * given the opportunity to save it. * </p> * * @return <code>true</code> if the page was successfully closed, and * <code>false</code> if it is still open */ virtual bool Close() = 0; /** * Closes all of the editors belonging to this workbench page. * <p> * If the page has open editors with unsaved content and <code>save</code> * is <code>true</code>, the user will be given the opportunity to save * them. * </p> * * @param save * * @return <code>true</code> if all editors were successfully closed, and * <code>false</code> if at least one is still open */ virtual bool CloseAllEditors(bool save) = 0; /** * Closes the given <code>Array</code> of editor references. The editors * must belong to this workbench page. * <p> * If any of the editors have unsaved content and <code>save</code> is * <code>true</code>, the user will be given the opportunity to save * them. * </p> * * @param editorRefs * the editors to close * @param save * <code>true</code> to save the editor contents if required * (recommended), and <code>false</code> to discard any unsaved * changes * @return <code>true</code> if the editors were successfully closed, and * <code>false</code> if the editors are still open */ virtual bool CloseEditors(const QList<IEditorReference::Pointer>& editorRefs, bool save) = 0; /** * Closes the given editor. The editor must belong to this workbench page. * <p> * If the editor has unsaved content and <code>save</code> is * <code>true</code>, the user will be given the opportunity to save it. * </p> * * @param editor * the editor to close * @param save * <code>true</code> to save the editor contents if required * (recommended), and <code>false</code> to discard any unsaved * changes * @return <code>true</code> if the editor was successfully closed, and * <code>false</code> if the editor is still open */ virtual bool CloseEditor(IEditorPart::Pointer editor, bool save) = 0; /** * Returns the view in this page with the specified id. There is at most one * view in the page with the specified id. * * @param viewId * the id of the view extension to use * @return the view, or <code>null</code> if none is found */ virtual IViewPart::Pointer FindView(const QString& viewId) = 0; /** * Returns the view reference with the specified id. * * @param viewId * the id of the view extension to use * @return the view reference, or <code>null</code> if none is found */ virtual IViewReference::Pointer FindViewReference(const QString& viewId) = 0; /** * Returns the view reference with the specified id and secondary id. * * @param viewId * the id of the view extension to use * @param secondaryId * the secondary id to use, or <code>null</code> for no * secondary id * @return the view reference, or <code>null</code> if none is found */ virtual IViewReference::Pointer FindViewReference(const QString& viewId, const QString& secondaryId) = 0; /** * Returns the active editor open in this page. * <p> * This is the visible editor on the page, or, if there is more than one * visible editor, this is the one most recently brought to top. * </p> * * @return the active editor, or <code>null</code> if no editor is active */ virtual IEditorPart::Pointer GetActiveEditor() = 0; /** * Returns the editor with the specified input. Returns null if there is no * opened editor with that input. * * @param input * the editor input * @return an editor with input equals to <code>input</code> */ virtual IEditorPart::Pointer FindEditor(IEditorInput::Pointer input) = 0; /** * Returns an array of editor references that match the given input and/or * editor id, as specified by the given match flags. Returns an empty array * if there are no matching editors, or if matchFlags is MATCH_NONE. * * @param input * the editor input, or <code>null</code> if MATCH_INPUT is not * specified in matchFlags * @param editorId * the editor id, or <code>null</code> if MATCH_ID is not * specified in matchFlags * @param matchFlags * a bit mask consisting of zero or more of the MATCH_* constants * OR-ed together * @return the references for the matching editors * * @see #MATCH_NONE * @see #MATCH_INPUT * @see #MATCH_ID */ virtual QList<IEditorReference::Pointer> FindEditors(IEditorInput::Pointer input, const QString& editorId, int matchFlags) = 0; /** * Returns a list of the editors open in this page. * <p> * Note that each page has its own editors; editors are never shared between * pages. * </p> * * @return a list of open editors * - * @deprecated use #getEditorReferences() instead + * @deprecated use #GetEditorReferences instead */ virtual QList<IEditorPart::Pointer> GetEditors() = 0; /** * Returns an array of references to open editors in this page. * <p> * Note that each page has its own editors; editors are never shared between * pages. * </p> * * @return a list of open editors */ virtual QList<IEditorReference::Pointer> GetEditorReferences() = 0; /** * Returns a list of dirty editors in this page. * * @return a list of dirty editors */ virtual QList<IEditorPart::Pointer> GetDirtyEditors() = 0; /** * Returns the input for this page. * * @return the input for this page, or <code>null</code> if none */ virtual IAdaptable* GetInput() = 0; /** * Returns the page label. This will be a unique identifier within the * containing workbench window. * * @return the page label */ virtual QString GetLabel() = 0; /** * Returns the current perspective descriptor for this page, or * <code>null</code> if there is no current perspective. * * @return the current perspective descriptor or <code>null</code> - * @see #setPerspective - * @see #savePerspective + * @see #SetPerspective + * @see #SavePerspective */ virtual IPerspectiveDescriptor::Pointer GetPerspective() = 0; /** * Returns a list of the reference to views visible on this page. * <p> * Note that each page has its own views; views are never shared between * pages. * </p> * * @return a list of references to visible views */ virtual QList<IViewReference::Pointer> GetViewReferences() = 0; /** * Returns a list of the views visible on this page. * <p> * Note that each page has its own views; views are never shared between * pages. * </p> * * @return a list of visible views * - * @deprecated use #getViewReferences() instead. + * @deprecated use #GetViewReferences() instead. */ virtual QList<IViewPart::Pointer> GetViews() = 0; /** * Returns the workbench window of this page. * * @return the workbench window */ virtual IWorkbenchWindow::Pointer GetWorkbenchWindow() const = 0; /** * Hides the given view. The view must belong to this page. * * @param view * the view to hide */ virtual void HideView(IViewPart::Pointer view) = 0; /** * Hides the given view that belongs to the reference, if any. * * @param view * the references whos view is to be hidden */ virtual void HideView(IViewReference::Pointer view) = 0; /** * Returns true if perspective with given id contains view with given id */ //virtual bool HasView(const QString& perspectiveId, const QString& viewId) = 0; /** * Returns whether the specified part is visible. * * @param part * the part to test * @return boolean <code>true</code> if part is visible */ virtual bool IsPartVisible(IWorkbenchPart::Pointer part) = 0; - /** - * Removes the perspective specified by desc. - * - * @param desc - * the perspective that will be removed - */ - //virtual void RemovePerspective(IPerspectiveDescriptor::Pointer desc) = 0; - /** * Reuses the specified editor by setting its new input. * * @param editor * the editor to be reused * @param input * the new input for the reusable editor */ virtual void ReuseEditor(IReusableEditor::Pointer editor, IEditorInput::Pointer input) = 0; /** * Opens an editor on the given input. * <p> * If this page already has an editor open on the target input that editor * is activated; otherwise, a new editor is opened. Two editor inputs, * input1 and input2, are considered the same if * * <pre> * input1.equals(input2) == true * </pre>. * </p> * <p> * The editor type is determined by mapping <code>editorId</code> to an * editor extension registered with the workbench. An editor id is passed * rather than an editor object to prevent the accidental creation of more * than one editor for the same input. It also guarantees a consistent * lifecycle for editors, regardless of whether they are created by the user * or restored from saved data. * </p> * * @param input * the editor input * @param editorId * the id of the editor extension to use * @return an open and active editor, or <code>null</code> if an external * editor was opened * @exception PartInitException * if the editor could not be created or initialized */ virtual IEditorPart::Pointer OpenEditor(IEditorInput::Pointer input, const QString& editorId) = 0; /** * Opens an editor on the given input. * <p> * If this page already has an editor open on the target input that editor * is brought to the front; otherwise, a new editor is opened. Two editor * inputs are considered the same if they equal. See - * <code>Object.equals(Object)<code> + * <code>Object.equals(Object)</code> * and <code>IEditorInput</code>. If <code>activate == true</code> the editor * will be activated. * </p><p> * The editor type is determined by mapping <code>editorId</code> to an editor * extension registered with the workbench. An editor id is passed rather than * an editor object to prevent the accidental creation of more than one editor * for the same input. It also guarantees a consistent lifecycle for editors, * regardless of whether they are created by the user or restored from saved * data. * </p> * * @param input the editor input * @param editorId the id of the editor extension to use * @param activate if <code>true</code> the editor will be activated * @return an open editor, or <code>null</code> if an external editor was opened * @exception PartInitException if the editor could not be created or initialized */ virtual IEditorPart::Pointer OpenEditor(IEditorInput::Pointer input, const QString& editorId, bool activate) = 0; /** * Opens an editor on the given input. * <p> * If this page already has an editor open that matches the given input * and/or editor id (as specified by the matchFlags argument), that editor * is brought to the front; otherwise, a new editor is opened. Two editor * inputs are considered the same if they equal. See - * <code>Object.equals(Object)<code> + * <code>Object.equals(Object)</code> * and <code>IEditorInput</code>. If <code>activate == true</code> the editor * will be activated. * </p><p> * The editor type is determined by mapping <code>editorId</code> to an editor * extension registered with the workbench. An editor id is passed rather than * an editor object to prevent the accidental creation of more than one editor * for the same input. It also guarantees a consistent lifecycle for editors, * regardless of whether they are created by the user or restored from saved * data. * </p> * * @param input the editor input * @param editorId the id of the editor extension to use * @param activate if <code>true</code> the editor will be activated * @param matchFlags a bit mask consisting of zero or more of the MATCH_* constants OR-ed together * @return an open editor, or <code>null</code> if an external editor was opened * @exception PartInitException if the editor could not be created or initialized * * @see #MATCH_NONE * @see #MATCH_INPUT * @see #MATCH_ID */ virtual IEditorPart::Pointer OpenEditor(IEditorInput::Pointer input, const QString& editorId, bool activate, int matchFlags) = 0; - /** - * Removes the property change listener. - * - * @param listener - * the property change listener to remove - */ - //virtual void removePropertyChangeListener(IPropertyChangeListener listener); - /** * Changes the visible views, their layout, and the visible action sets * within the page to match the current perspective descriptor. This is a * rearrangement of components and not a replacement. The contents of the * current perspective descriptor are unaffected. * <p> * For more information on perspective change see * <code>setPerspective()</code>. * </p> */ virtual void ResetPerspective() = 0; /** * Saves the contents of all dirty editors belonging to this workbench page. * If there are no dirty editors this method returns without effect. * <p> * If <code>confirm</code> is <code>true</code> the user is prompted to * confirm the command. * </p> * <p> * Note that as of 3.2, this method also saves views that implement * ISaveablePart and are dirty. * </p> * * @param confirm <code>true</code> to ask the user before saving unsaved * changes (recommended), and <code>false</code> to save * unsaved changes without asking * @return <code>true</code> if the command succeeded, and * <code>false</code> if the operation was canceled by the user or * an error occurred while saving */ virtual bool SaveAllEditors(bool confirm) = 0; /** * Saves the contents of the given editor if dirty. If not, this method * returns without effect. * <p> * If <code>confirm</code> is <code>true</code> the user is prompted to * confirm the command. Otherwise, the save happens without prompt. * </p> * <p> * The editor must belong to this workbench page. * </p> * * @param editor * the editor to close * @param confirm * <code>true</code> to ask the user before saving unsaved * changes (recommended), and <code>false</code> to save * unsaved changes without asking * @return <code>true</code> if the command succeeded, and * <code>false</code> if the editor was not saved */ virtual bool SaveEditor(IEditorPart::Pointer editor, bool confirm) = 0; /** * Saves the visible views, their layout, and the visible action sets for * this page to the current perspective descriptor. The contents of the * current perspective descriptor are overwritten. */ virtual void SavePerspective() = 0; /** * Saves the visible views, their layout, and the visible action sets for * this page to the given perspective descriptor. The contents of the given * perspective descriptor are overwritten and it is made the current one for * this page. * * @param perspective * the perspective descriptor to save to */ virtual void SavePerspectiveAs(IPerspectiveDescriptor::Pointer perspective) = 0; /** * Changes the visible views, their layout, and the visible action sets * within the page to match the given perspective descriptor. This is a * rearrangement of components and not a replacement. The contents of the * old perspective descriptor are unaffected. * <p> * When a perspective change occurs the old perspective is deactivated * (hidden) and cached for future reference. Then the new perspective is * activated (shown). The views within the page are shared by all existing * perspectives to make it easy for the user to switch between one * perspective and another quickly without loss of context. * </p> * <p> * During activation the action sets are modified. If an action set is * specified in the new perspective which is not visible in the old one it * will be created. If an old action set is not specified in the new * perspective it will be disposed. * </p> * <p> * The visible views and their layout within the page also change. If a view * is specified in the new perspective which is not visible in the old one a * new instance of the view will be created. If an old view is not specified * in the new perspective it will be hidden. This view may reappear if the * user selects it from the View menu or if they switch to a perspective * (which may be the old one) where the view is visible. * </p> * <p> * The open editors are not modified by this method. * </p> * * @param perspective * the perspective descriptor */ virtual void SetPerspective(IPerspectiveDescriptor::Pointer perspective) = 0; /** * Shows the view identified by the given view id in this page and gives it * focus. If there is a view identified by the given view id (and with no * secondary id) already open in this page, it is given focus. * * @param viewId * the id of the view extension to use * @return the shown view * @exception PartInitException * if the view could not be initialized */ virtual IViewPart::Pointer ShowView(const QString& viewId) = 0; /** * Shows a view in this page with the given id and secondary id. The * behaviour of this method varies based on the supplied mode. If * <code>VIEW_ACTIVATE</code> is supplied, the view is focus. If * <code>VIEW_VISIBLE</code> is supplied, then it is made visible but not * given focus. Finally, if <code>VIEW_CREATE</code> is supplied the view * is created and will only be made visible if it is not created in a folder * that already contains visible views. * <p> * This allows multiple instances of a particular view to be created. They * are disambiguated using the secondary id. If a secondary id is given, the * view must allow multiple instances by having specified * allowMultiple="true" in its extension. * </p> * * @param viewId * the id of the view extension to use * @param secondaryId * the secondary id to use, or <code>null</code> for no * secondary id * @param mode * the activation mode. Must be {@link #VIEW_ACTIVATE}, * {@link #VIEW_VISIBLE} or {@link #VIEW_CREATE} * @return a view * @exception PartInitException * if the view could not be initialized * @exception IllegalArgumentException * if the supplied mode is not valid */ virtual IViewPart::Pointer ShowView(const QString& viewId, const QString& secondaryId, int mode) = 0; /** * Returns <code>true</code> if the editor is pinned and should not be * reused. * * @param editor * the editor to test * @return boolean whether the editor is pinned */ virtual bool IsEditorPinned(IEditorPart::Pointer editor) = 0; /** * Returns the perspective shortcuts associated with the current * perspective. Returns an empty array if there is no current perspective. * * @see IPageLayout#addPerspectiveShortcut(String) * @return an array of perspective identifiers */ virtual QList<QString> GetPerspectiveShortcuts() = 0; /** * Returns the show view shortcuts associated with the current perspective. * Returns an empty array if there is no current perspective. * * @see IPageLayout#addShowViewShortcut(String) * @return an array of view identifiers */ virtual QList<QString> GetShowViewShortcuts() = 0; /** * Returns the descriptors for the perspectives that are open in this page, * in the order in which they were opened. * * @return the open perspective descriptors, in order of opening */ virtual QList<IPerspectiveDescriptor::Pointer> GetOpenPerspectives() = 0; /** * Returns the descriptors for the perspectives that are open in this page, * in the order in which they were activated (oldest first). * * @return the open perspective descriptors, in order of activation */ virtual QList<IPerspectiveDescriptor::Pointer> GetSortedPerspectives() = 0; - /** - * Closes current perspective. If last perspective, then entire page - * is closed. - * - * @param saveParts - * whether the page's parts should be saved if closed - * @param closePage - * whether the page itself should be closed if last perspective - */ - //virtual void CloseCurrentPerspective(bool saveParts, bool closePage) = 0; - /** * Closes the specified perspective in this page. If the last perspective in * this page is closed, then all editors are closed. Views that are not * shown in other perspectives are closed as well. If <code>saveParts</code> * is <code>true</code>, the user will be prompted to save any unsaved * changes for parts that are being closed. The page itself is closed if * <code>closePage</code> is <code>true</code>. * * @param desc * the descriptor of the perspective to be closed * @param saveParts * whether the page's parts should be saved if closed * @param closePage * whether the page itself should be closed if last perspective */ virtual void ClosePerspective(IPerspectiveDescriptor::Pointer desc, bool saveParts, bool closePage) = 0; /** * Closes all perspectives in this page. All editors are closed, prompting * to save any unsaved changes if <code>saveEditors</code> is * <code>true</code>. The page itself is closed if <code>closePage</code> * is <code>true</code>. * * @param saveEditors * whether the page's editors should be saved * @param closePage * whether the page itself should be closed */ virtual void CloseAllPerspectives(bool saveEditors, bool closePage) = 0; /** * Return the extension tracker for the workbench. This tracker may be used * by plug-ins to ensure responsiveness to changes to the plug-in registry. * <p> * The tracker at this level of the workbench is typically used to track * elements that only exist over the lifespan of a page. For example, * <code>ViewPart</code> objects fall into this category. * </p> * * @return the extension tracker * @see IWorkbench#GetExtensionTracker() * @see IWorkbenchWindow#GetExtensionTracker() */ virtual IExtensionTracker* GetExtensionTracker() const = 0; /** * Find the part reference for the given part. A convenience method to * quickly go from part to part reference. * * @param part * The part to search for. It can be <code>null</code>. * @return The reference for the given part, or <code>null</code> if no * reference can be found. */ virtual IWorkbenchPartReference::Pointer GetReference(IWorkbenchPart::Pointer part) = 0; }; } // namespace berry #endif /*BERRYIWORKBENCHPAGE_H_*/ diff --git a/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchPartConstants.h b/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchPartConstants.h index b868930a52..410b5c891c 100644 --- a/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchPartConstants.h +++ b/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchPartConstants.h @@ -1,112 +1,111 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYIWORKBENCHPARTCONSTANTS_H_ #define BERRYIWORKBENCHPARTCONSTANTS_H_ #include <string> #include <org_blueberry_ui_qt_Export.h> namespace berry { /** - * This interface describes the constants used for <link>IWorkbenchPart</link> properties. + * This interface describes the constants used for IWorkbenchPart properties. * <p> * <b>Note:</b>This interface should not be implemented or extended. * </p> * * @since 3.0 - * @noimplement This interface is not intended to be implemented by clients. */ struct BERRY_UI_QT IWorkbenchPartConstants { /** * Used in a PropertyChangeEvent as the property string to signal * that integer flags are used. */ static const QString INTEGER_PROPERTY; /** * The property id for <code>getTitle</code>, <code>getTitleImage</code> * and <code>getTitleToolTip</code>. */ static const int PROP_TITLE; /** * The property id for <code>ISaveablePart.isDirty()</code>. */ static const int PROP_DIRTY; /** * The property id for <code>IEditorPart.getEditorInput()</code>. */ static const int PROP_INPUT; /** * The property id for <code>IWorkbenchPart2.getPartName</code> */ static const int PROP_PART_NAME; /** * The property id for <code>IWorkbenchPart2.getContentDescription()</code> */ static const int PROP_CONTENT_DESCRIPTION; /** * The property id for any method on the optional <code>ISizeProvider</code> interface * @since 3.4 */ static const int PROP_PREFERRED_SIZE; /** * Indicates that the underlying part was created */ static const int PROP_OPENED; // = 0x211; /** * Internal property ID: Indicates that the underlying part was destroyed */ static const int PROP_CLOSED; // = 0x212; /** * Internal property ID: Indicates that the result of IEditorReference.isPinned() */ static const int PROP_PINNED; // = 0x213; /** * Internal property ID: Indicates that the result of getVisible() has changed */ static const int PROP_VISIBLE; // = 0x214; /** * Internal property ID: Indicates that the result of isZoomed() has changed */ //static const int PROP_ZOOMED = 0x215; /** * Internal property ID: Indicates that the part has an active child and the * active child has changed. (fired by PartStack) */ static const int PROP_ACTIVE_CHILD_CHANGED; // = 0x216; /** * Internal property ID: Indicates that changed in the min / max * state has changed */ //static final int PROP_MAXIMIZED = 0x217; }; } #endif /*BERRYIWORKBENCHPARTCONSTANTS_H_*/ diff --git a/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchPartSite.h b/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchPartSite.h index df80570418..7d12598c5d 100644 --- a/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchPartSite.h +++ b/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchPartSite.h @@ -1,81 +1,80 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef IWORKBENCHPARTSITE_H_ #define IWORKBENCHPARTSITE_H_ #include "berryIWorkbenchSite.h" namespace berry { struct IWorkbenchPart; /** * \ingroup org_blueberry_ui_qt * * The primary interface between a workbench part and the workbench. * <p> * This interface is not intended to be implemented or extended by clients. * </p> - * @noimplement This interface is not intended to be implemented by clients. */ struct BERRY_UI_QT IWorkbenchPartSite : public IWorkbenchSite { berryObjectMacro(berry::IWorkbenchPartSite, IWorkbenchSite); ~IWorkbenchPartSite() override; /** * Returns the part registry extension id for this workbench site's part. * <p> * The name comes from the <code>id</code> attribute in the configuration * element. * </p> * * @return the registry extension id */ virtual QString GetId() const = 0; /** * Returns the part associated with this site * * @return the part associated with this site */ virtual SmartPointer<IWorkbenchPart> GetPart() = 0; /** * Returns the unique identifier of the plug-in that defines this workbench * site's part. * * @return the unique identifier of the declaring plug-in */ virtual QString GetPluginId() const = 0; /** * Returns the registered name for this workbench site's part. * <p> * The name comes from the <code>name</code> attribute in the configuration * element. * </p> * * @return the part name */ virtual QString GetRegisteredName() const = 0; }; } // namespace berry #endif /*IWORKBENCHPARTSITE_H_*/ diff --git a/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchSite.h b/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchSite.h index 352a53790f..25e6190047 100644 --- a/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchSite.h +++ b/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchSite.h @@ -1,105 +1,102 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYIWORKBENCHSITE_H_ #define BERRYIWORKBENCHSITE_H_ #include <berryMacros.h> #include <org_blueberry_ui_qt_Export.h> #include "services/berryIServiceLocator.h" namespace berry { struct IWorkbenchPage; struct ISelectionProvider; struct IWorkbenchWindow; class Shell; /** * \ingroup org_blueberry_ui_qt * * The common interface between the workbench and its parts, including pages * within parts. * <p> - * The workbench site supports a few {@link IServiceLocator services} by - * default. If these services are used to allocate resources, it is important to + * The workbench site supports a few services by default. + * If these services are used to allocate resources, it is important to * remember to clean up those resources after you are done with them. Otherwise, * the resources will exist until the workbench site is disposed. The supported * services are: * </p> * <ul> * <li>{@link ICommandService}</li> * <li>{@link IContextService}</li> * <li>{@link IHandlerService}</li> - * <li>{@link IBindingService}. Resources allocated through this service will - * not be cleaned up until the workbench shuts down.</li> * </ul> * <p> * This interface is not intended to be implemented or extended by clients. * </p> * * @see org.blueberry.ui.IWorkbenchPartSite * @see org.blueberry.ui.part.IPageSite * @since 2.0 - * @noimplement This interface is not intended to be implemented by clients. */ struct BERRY_UI_QT IWorkbenchSite : public IServiceLocator { // IAdaptable, IShellProvider { berryObjectMacro(berry::IWorkbenchSite, IServiceLocator); ~IWorkbenchSite() override; /** * Returns the page containing this workbench site. * * @return the page containing this workbench site */ virtual SmartPointer<IWorkbenchPage> GetPage() = 0; /** * Returns the selection provider for this workbench site. * * @return the selection provider, or <code>null</code> if none */ virtual SmartPointer<ISelectionProvider> GetSelectionProvider() = 0; /** * Returns the shell for this workbench site. Not intended to be called from * outside the UI thread. Clients should call IWorkbench.getDisplay() to * gain access to the display rather than calling getShell().getDisplay(). * * @return the shell for this workbench site */ virtual SmartPointer<Shell> GetShell() = 0; /** * Returns the workbench window containing this workbench site. * * @return the workbench window containing this workbench site */ virtual SmartPointer<IWorkbenchWindow> GetWorkbenchWindow() = 0; /** * Sets the selection provider for this workbench site. * * @param provider * the selection provider, or <code>null</code> to clear it */ virtual void SetSelectionProvider(SmartPointer<ISelectionProvider> provider) = 0; }; } #endif /*BERRYIWORKBENCHSITE_H_*/ diff --git a/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchWindow.h b/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchWindow.h index 71e0e1c5f0..c14935f48c 100644 --- a/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchWindow.h +++ b/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchWindow.h @@ -1,218 +1,196 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYIWORKBENCHWINDOW_H_ #define BERRYIWORKBENCHWINDOW_H_ #include <berryMacros.h> #include <berryIAdaptable.h> #include <org_blueberry_ui_qt_Export.h> #include "berryIPageService.h" #include "berryShell.h" #include "services/berryIServiceLocator.h" namespace berry { struct IPartService; struct ISelectionService; struct IWorkbenchPage; struct IWorkbench; /** * \ingroup org_blueberry_ui_qt * * A workbench window is a top level window in a workbench. Visually, a * workbench window has a menubar, a toolbar, a status bar, and a main area for * displaying a single page consisting of a collection of views and editors. * <p> * Each workbench window has a collection of 0 or more pages; the active page is * the one that is being presented to the end user; at most one page is active * in a window at a time. * </p> * <p> - * The workbench window supports a few {@link IServiceLocator services} by - * default. If these services are used to allocate resources, it is important to + * The workbench window supports a few services by default. + * If these services are used to allocate resources, it is important to * remember to clean up those resources after you are done with them. Otherwise, * the resources will exist until the workbench window is closed. The supported * services are: * </p> * <ul> * <li>{@link ICommandService}</li> * <li>{@link IContextService}</li> - * <li>{@link IHandlerService}</li> - * <li>{@link IBindingService}. Resources allocated through this service will - * not be cleaned up until the workbench shuts down.</li> * </ul> * <p> * This interface is not intended to be implemented by clients. * </p> * * @see IWorkbenchPage - * @noimplement This interface is not intended to be implemented by clients. * */ struct BERRY_UI_QT IWorkbenchWindow : public IPageService, public IServiceLocator, public virtual Object { berryObjectMacro(berry::IWorkbenchWindow, IPageService, IServiceLocator, Object); /** * Closes this workbench window. * <p> * If the window has an open editor with unsaved content, the user will be * given the opportunity to save it. * </p> * * @return <code>true</code> if the window was successfully closed, and * <code>false</code> if it is still open */ virtual bool Close() = 0; /** * Returns a list of the pages in this workbench window. * <p> * Note that each window has its own pages; pages are never shared between * different windows. * </p> * * @return a list of pages */ virtual QList<SmartPointer<IWorkbenchPage> > GetPages() const = 0; /** * Returns the currently active page for this workbench window. * * @return the active page, or <code>null</code> if none */ SmartPointer<IWorkbenchPage> GetActivePage() const override = 0; /** * Sets or clears the currently active page for this workbench window. * * @param page * the new active page */ virtual void SetActivePage(SmartPointer<IWorkbenchPage> page) = 0; /** * Returns the part service which tracks part activation within this * workbench window. * * @return the part service */ virtual IPartService* GetPartService() = 0; /** * Returns the selection service which tracks selection within this * workbench window. * * @return the selection service */ virtual ISelectionService* GetSelectionService() const = 0; /** * Returns this workbench window's shell. * * @return the shell containing this window's controls or <code>null</code> * if the shell has not been created yet or if the window has been closed */ virtual Shell::Pointer GetShell() const = 0; /** * Returns the workbench for this window. * * @return the workbench */ virtual IWorkbench* GetWorkbench() const = 0; - /** - * Returns whether the specified menu is an application menu as opposed to - * a part menu. Application menus contain items which affect the workbench - * or window. Part menus contain items which affect the active part (view - * or editor). - * <p> - * This is typically used during "in place" editing. Application menus - * should be preserved during menu merging. All other menus may be removed - * from the window. - * </p> - * - * @param menuId - * the menu id - * @return <code>true</code> if the specified menu is an application - * menu, and <code>false</code> if it is not - */ - //virtual bool IsApplicationMenu(const QString& menuId) = 0; - /** * Creates and opens a new workbench page. The perspective of the new page * is defined by the specified perspective ID. The new page become active. * <p> * <b>Note:</b> Since release 2.0, a window is limited to contain at most * one page. If a page exist in the window when this method is used, then * another window is created for the new page. Callers are strongly * recommended to use the <code>IWorkbench.showPerspective</code> APIs to * programmatically show a perspective. * </p> * * @param perspectiveId * the perspective id for the window's initial page * @param input * the page input, or <code>null</code> if there is no current * input. This is used to seed the input for the new page's * views. * @return the new workbench page * @exception WorkbenchException * if a page could not be opened * * @see IWorkbench#showPerspective(String, IWorkbenchWindow, IAdaptable) */ virtual SmartPointer<IWorkbenchPage> OpenPage(const QString& perspectiveId, IAdaptable* input) = 0; /** * Creates and opens a new workbench page. The default perspective is used * as a template for creating the page. The page becomes active. * <p> * <b>Note:</b> Since release 2.0, a window is limited to contain at most * one page. If a page exist in the window when this method is used, then * another window is created for the new page. Callers are strongly * recommended to use the <code>IWorkbench.showPerspective</code> APIs to * programmatically show a perspective. * </p> * * @param input * the page input, or <code>null</code> if there is no current * input. This is used to seed the input for the new page's * views. * @return the new workbench window * @exception WorkbenchException * if a page could not be opened * * @see IWorkbench#showPerspective(String, IWorkbenchWindow, IAdaptable) */ virtual SmartPointer<IWorkbenchPage> OpenPage(IAdaptable* input) = 0; //virtual void SetPerspectiveExcludeList(const QStringList& v) = 0; //virtual QStringList GetPerspectiveExcludeList() const = 0; //virtual void SetViewExcludeList(const QStringList& v) = 0; //virtual QStringList GetViewExcludeList() const = 0; ~IWorkbenchWindow() override; }; } #endif /*BERRYIWORKBENCHWINDOW_H_*/ diff --git a/Plugins/org.blueberry.ui.qt/src/berryMenuUtil.h b/Plugins/org.blueberry.ui.qt/src/berryMenuUtil.h index cbd9dee819..12332c5974 100644 --- a/Plugins/org.blueberry.ui.qt/src/berryMenuUtil.h +++ b/Plugins/org.blueberry.ui.qt/src/berryMenuUtil.h @@ -1,134 +1,134 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYMENUUTIL_H #define BERRYMENUUTIL_H #include <org_blueberry_ui_qt_Export.h> namespace berry { /** * Provides utilities and constants for use with the new menus API. * - * @noextend This class is not intended to be subclassed by clients. - * @noinstantiate This class is not intended to be instantiated by clients. + * @note This class is not intended to be subclassed by clients. + * @note This class is not intended to be instantiated by clients. */ class BERRY_UI_QT MenuUtil { public: /** * * Workbench Menu. On supported platforms, this menu is shown when no * workbench windows are active */ static QString WORKBENCH_MENU; // = "menu:org.blueberry.ui.workbench.menu"; /** Main Menu */ static QString MAIN_MENU; // = "menu:org.blueberry.ui.main.menu"; /** Main ToolBar */ static QString MAIN_TOOLBAR; // = "toolbar:org.blueberry.ui.main.toolbar"; /** -Any- Popup Menu */ static QString ANY_POPUP; // = "popup:org.blueberry.ui.popup.any"; /** * Valid query attribute. Usage <b>menu:menu.id?before=contribution.id</b>. */ static QString QUERY_BEFORE; // = "before"; /** * Valid query attribute. Usage <b>menu:menu.id?after=contribution.id</b>. */ static QString QUERY_AFTER; // = "after"; /** * Valid query attribute. Usage <b>menu:menu.id?endof=contribution.id</b>. * <p> * This menu contribution will be placed at the end of the group defined by * <b>contribution.id</b> (usually right in front of the next group marker * or separator). Further contribution processing can still place other * contributions after this one. * </p> */ static QString QUERY_ENDOF; // = "endof"; /** * Contributions of targets to this location will be included with the show * in menu. */ static QString SHOW_IN_MENU_ID; // = "popup:org.blueberry.ui.menus.showInMenu"; /** * @param id * The menu's id * @return The locator URI for a menu with the given id */ static QString MenuUri(const QString& id); /** * @param id * The id of the menu * @param location * The relative location specifier * @param refId * The id of the menu element to be relative to * @return A location URI formatted with the given parameters */ static QString MenuAddition(const QString& id, const QString& location, const QString& refId); /** * Convenience method to create a standard menu addition The resulting * string has the format: "menu:[id]?after=additions" * * @param id * The id of the root element to contribute to * @return The formatted string */ static QString MenuAddition(const QString& id); /** * @param id * The toolbar's id * @return The lcoation URI for a toolbar with the given id */ static QString ToolbarUri(const QString& id); /** * @param id * The id of the toolbar * @param location * The relative location specifier * @param refId * The id of the toolbar element to be relative to * @return A location URI formatted with the given parameters */ static QString ToolbarAddition(const QString& id, const QString& location, const QString& refId); /** * Convenience method to create a standard toolbar addition The resulting * string has the format: "toolbar:[id]?after=additions" * * @param id * The id of the root element to contribute to * @return The formatted string */ static QString ToolbarAddition(const QString& id); }; } #endif // BERRYMENUUTIL_H diff --git a/Plugins/org.blueberry.ui.qt/src/commands/berryIMenuService.h b/Plugins/org.blueberry.ui.qt/src/commands/berryIMenuService.h index 2bcaf474d7..6c1291acc3 100644 --- a/Plugins/org.blueberry.ui.qt/src/commands/berryIMenuService.h +++ b/Plugins/org.blueberry.ui.qt/src/commands/berryIMenuService.h @@ -1,118 +1,118 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYIMENUSERVICE_H_ #define BERRYIMENUSERVICE_H_ #include <berryIServiceWithSources.h> namespace berry { class AbstractContributionFactory; class ContributionManager; struct IEvaluationContext; /** * <p> * Provides services related to the menu architecture within the workbench. It * can be used to contribute additional items to the menu, tool bar and status * line. * </p> * <p> * This service can be acquired from your service locator: * <pre> * IMenuService service = (IMenuService) getSite().getService(IMenuService.class); * </pre> * <ul> * <li>This service is available globally.</li> * </ul> * </p> * - * @noimplement This interface is not intended to be implemented by clients. - * @noextend This interface is not intended to be extended by clients. + * @note This interface is not intended to be implemented by clients. + * @note This interface is not intended to be extended by clients. */ struct IMenuService : public IServiceWithSources { berryObjectMacro(berry::IMenuService); /** * Contribute and initialize the contribution factory. This should only be * called once per factory. After the call, the factory should be treated as * an unmodifiable object. * <p> * <b>Note:</b> factories should be removed when no longer necessary. If * not, they will be removed when the IServiceLocator used to acquire this * service is disposed. * </p> * * @param factory * the contribution factory. Must not be <code>null</code> - * @see #removeContributionFactory(AbstractContributionFactory) + * @see #RemoveContributionFactory */ virtual void AddContributionFactory(const SmartPointer<AbstractContributionFactory>& factory) = 0; /** * Remove the contributed factory from the menu service. If the factory is * not contained by this service, this call does nothing. * * @param factory * the contribution factory to remove. Must not be * <code>null</code>. */ virtual void RemoveContributionFactory(const SmartPointer<AbstractContributionFactory>& factory) = 0; /** * Populate a <code>ContributionManager</code> at the specified starting * location with a set of <code>IContributionItems</code>s. It applies * <code>AbstractContributionFactory</code>s that are stored against the * provided location. * * @param mgr * The ContributionManager to populate * @param location * The starting location to begin populating this contribution * manager. The format is the Menu API URI format. - * @see #releaseContributions(ContributionManager) + * @see #ReleaseContributions */ virtual void PopulateContributionManager(ContributionManager* mgr, const QString& location) = 0; /** * Before calling dispose() on a ContributionManager populated by the menu * service, you must inform the menu service to release its contributions. * This takes care of unregistering any IContributionItems that have their * visibleWhen clause managed by this menu service. * * @param mgr * The manager that was populated by a call to - * {@link #populateContributionManager(ContributionManager, String)} + * {@link #PopulateContributionManager} */ virtual void ReleaseContributions(ContributionManager* mgr) = 0; /** * Get the current state of eclipse as seen by the menu service. * * @return an IEvaluationContext containing state variables. * * @see org.eclipse.ui.ISources * @see org.eclipse.ui.services.IEvaluationService */ virtual SmartPointer<IEvaluationContext> GetCurrentState() const = 0; }; } Q_DECLARE_INTERFACE(berry::IMenuService, "org.blueberry.ui.IMenuService") #endif /* BERRYIMENUSERVICE_H_ */ diff --git a/Plugins/org.blueberry.ui.qt/src/intro/berryIIntroPart.h b/Plugins/org.blueberry.ui.qt/src/intro/berryIIntroPart.h index d3378c7f9d..71099009de 100644 --- a/Plugins/org.blueberry.ui.qt/src/intro/berryIIntroPart.h +++ b/Plugins/org.blueberry.ui.qt/src/intro/berryIIntroPart.h @@ -1,209 +1,189 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYIINTROPART_H_ #define BERRYIINTROPART_H_ #include <berryObject.h> #include <berryMacros.h> #include <berryIMemento.h> #include <berryIPropertyChangeListener.h> #include <berryUIException.h> #include "berryIIntroSite.h" #include <QObject> namespace berry { /** * The intro part is a visual component within the workbench responsible for * introducing the product to new users. The intro part is typically shown the * first time a product is started up. * <p> * The intro part implementation is contributed to the workbench via the * <code>org.blueberry.ui.intro</code> extension point. There can be several * intro part implementations, and associations between intro part * implementations and products. The workbench will only make use of the intro * part implementation for the current product (as given by * {@link berry::Platform#GetProduct()}. There is at most one * intro part instance in the entire workbench, and it resides in exactly one * workbench window at a time. * </p> * <p> * This interface in not intended to be directly implemented. Rather, clients * providing a intro part implementation should subclass * {@link berry::IntroPart}. * </p> * - * @see IIntroManager#ShowIntro(IWorkbenchWindow::Pointer, bool) - * @noimplement This interface is not intended to be implemented by clients. + * @see IIntroManager#ShowIntro */ struct BERRY_UI_QT IIntroPart : public virtual Object { // IAdaptable { berryObjectMacro(berry::IIntroPart); ~IIntroPart() override; - /** - * The property id for <code>getTitleImage</code> and - * <code>getTitle</code>. - * - * @since 3.2 this property now covers changes to <code>getTitle</code> in - * addition to <code>getTitleImage</code> - */ - //static const int PROP_TITLE = IWorkbenchPart::PROP_TITLE; - /** * Returns the site for this intro part. * * @return the intro site */ virtual IIntroSite::Pointer GetIntroSite() const = 0; /** * Initializes this intro part with the given intro site. A memento is * passed to the part which contains a snapshot of the part state from a * previous session. Where possible, the part should try to recreate that * state. * <p> * This method is automatically called by the workbench shortly after * part construction. It marks the start of the intro's lifecycle. Clients * must not call this method. * </p> * * @param site the intro site * @param memento the intro part state or <code>null</code> if there is no previous * saved state * @exception PartInitException if this part was not initialized * successfully */ virtual void Init(IIntroSite::Pointer site, IMemento::Pointer memento) = 0; /** * Sets the standby state of this intro part. An intro part should render * itself differently in the full and standby modes. In standby mode, the * part should be partially visible to the user but otherwise allow them * to work. In full mode, the part should be fully visible and be the center * of the user's attention. * <p> * This method is automatically called by the workbench at appropriate * times. Clients must not call this method directly (call * {@link IIntroManager#setIntroStandby(IIntroPart, boolean)} instead. * </p> * * @param standby <code>true</code> to put this part in its partially * visible standy mode, and <code>false</code> to make it fully visible */ virtual void StandbyStateChanged(bool standby) = 0; /** * Saves the object state within a memento. * <p> * This method is automatically called by the workbench at appropriate * times. Clients must not call this method directly. * </p> * * @param memento a memento to receive the object state */ virtual void SaveState(IMemento::Pointer memento) = 0; /** * Adds a listener for changes to properties of this intro part. * Has no effect if an identical listener is already registered. - * <p> - * The properties ids are as follows: - * <ul> - * <li><code>IIntroPart.PROP_TITLE</code> </li> - * </ul> - * </p> * * @param listener a property listener */ virtual void AddPropertyListener(IPropertyChangeListener* listener) = 0; /** * Creates the SWT controls for this intro part. * <p> * Clients should not call this method (the workbench calls this method when * it needs to, which may be never). * </p> * <p> * For implementors this is a multi-step process: * <ol> * <li>Create one or more controls within the parent.</li> * <li>Set the parent layout as needed.</li> * <li>Register any global actions with the <code>IActionService</code>.</li> * <li>Register any popup menus with the <code>IActionService</code>.</li> * <li>Register a selection provider with the <code>ISelectionService</code> * (optional). </li> * </ol> * </p> * * @param parent the parent control */ virtual void CreatePartControl(void* parent) = 0; /** - * Returns the title image of this intro part. If this value changes - * the part must fire a property listener event with - * {@link IIntroPart#PROP_TITLE}. + * Returns the title image of this intro part. * <p> * The title image is usually used to populate the title bar of this part's * visual container. Since this image is managed by the part itself, callers * must <b>not</b> dispose the returned image. * </p> * * @return the title image */ virtual QIcon GetTitleImage() const = 0; /** - * Returns the title of this intro part. If this value changes - * the part must fire a property listener event with - * {@link IIntroPart#PROP_TITLE}. + * Returns the title of this intro part. * <p> * The title is used to populate the title bar of this part's visual * container. * </p> * * @return the intro part title (not <code>null</code>) */ virtual QString GetPartName() const = 0; /** * Removes the given property listener from this intro part. * Has no affect if an identical listener is not registered. * * @param listener a property listener */ virtual void RemovePropertyListener(IPropertyChangeListener* listener) = 0; /** * Asks this part to take focus within the workbench. * <p> * Clients should not call this method (the workbench calls this method at * appropriate times). To have the workbench activate a part, use * {@link IIntroManager#showIntro(IWorkbenchWindow, boolean)}. * </p> */ virtual void SetFocus() = 0; }; } Q_DECLARE_INTERFACE(berry::IIntroPart, "org.blueberry.ui.IIntroPart") #endif /* BERRYIINTROPART_H_ */ diff --git a/Plugins/org.blueberry.ui.qt/src/intro/berryIntroPart.h b/Plugins/org.blueberry.ui.qt/src/intro/berryIntroPart.h index 3f1dc73399..fb46befce4 100644 --- a/Plugins/org.blueberry.ui.qt/src/intro/berryIntroPart.h +++ b/Plugins/org.blueberry.ui.qt/src/intro/berryIntroPart.h @@ -1,219 +1,206 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYINTROPART_H_ #define BERRYINTROPART_H_ #include "berryIIntroPart.h" #include "berryIIntroSite.h" #include <berryIConfigurationElement.h> #include <berryIExecutableExtension.h> #include <berryIPropertyChangeListener.h> #include <QIcon> namespace berry { /** * Abstract base implementation of an intro part. * <p> * Subclasses must implement the following methods: * <ul> * <li><code>CreatePartControl</code>- to create the intro part's controls * </li> * <li><code>SetFocus</code>- to accept focus</li> * <li><code>StandbyStateChanged</code>- to change the standby mode</li> * </ul> * </p> * <p> * Subclasses may extend or reimplement the following methods as required: * <ul> * <li><code>SetInitializationData</code>- extend to provide additional * initialization when the intro extension is instantiated</li> * <li><code>Init(IIntroSite::Pointer, IMemento::Pointer)</code>- extend to provide additional * initialization when intro is assigned its site</li> * <li><code>GetAdapter</code>- reimplement to make their intro adaptable * </li> * </ul> * </p> */ class BERRY_UI_QT IntroPart: public QObject, public IIntroPart, public IExecutableExtension { Q_OBJECT Q_INTERFACES(berry::IIntroPart berry::IExecutableExtension) private: IConfigurationElement::Pointer configElement; QIcon imageDescriptor; IIntroSite::Pointer partSite; QString titleLabel; IPropertyChangeListener::Events propChangeEvents; /** * Return the default title string. * * @return the default title string */ QString GetDefaultTitle() const; protected: /** * Fires a property changed event. * * @param propertyId * the id of the property that changed */ void FirePropertyChange(int propertyId); /** * Returns the configuration element for this part. The configuration * element comes from the plug-in registry entry for the extension defining * this part. * * @return the configuration element for this part */ IConfigurationElement::Pointer GetConfigurationElement(); /** * Returns the default title image. * * @return the default image */ QIcon GetDefaultImage() const; /** * Sets the part site. * <p> - * Subclasses must invoke this method from {@link org.eclipse.ui.intro.IIntroPart#init(IIntroSite, IMemento)}. + * Subclasses must invoke this method from {@link IIntroPart#Init}. * </p> * * @param site the intro part site */ void SetSite(IIntroSite::Pointer site); /** * Sets or clears the title image of this part. * * @param titleImage * the title image, or <code>null</code> to clear */ void SetTitleImage(const QIcon& titleImage); /** * Set the title string for this part. * * @param titleLabel the title string. Must not be <code>null</code>. * @since 3.2 */ void SetTitle(const QString& titleLabel); public: /* (non-Javadoc) * @see org.eclipse.ui.intro.IIntroPart#addPropertyListener(org.eclipse.ui.IPropertyListener) */ void AddPropertyListener(IPropertyChangeListener* l) override; /** * The <code>IntroPart</code> implementation of this * <code>IIntroPart</code> method disposes the title image loaded by * <code>setInitializationData</code>. Subclasses may extend. */ ~IntroPart() override; - /** - * This implementation of the method declared by <code>IAdaptable</code> - * passes the request along to the platform's adapter manager; roughly - * <code>Platform.getAdapterManager().getAdapter(this, adapter)</code>. - * Subclasses may override this method (however, if they do so, they should - * invoke the method on their superclass to ensure that the Platform's - * adapter manager is consulted). - */ - // Object getAdapter(Class adapter) { - // return Platform.getAdapterManager().getAdapter(this, adapter); - // } - - /* * (non-Javadoc) * * @see org.eclipse.ui.intro.IIntroPart#getIntroSite() */ IIntroSite::Pointer GetIntroSite() const override; /* (non-Javadoc) * @see org.eclipse.ui.intro.IIntroPart#getTitleImage() */ QIcon GetTitleImage() const override; /* (non-Javadoc) * @see org.eclipse.ui.intro.IIntroPart#getTitle() */ QString GetPartName() const override; /** - * The base implementation of this {@link org.eclipse.ui.intro.IIntroPart}method ignores the + * The base implementation of this {@link IIntroPart} method ignores the * memento and initializes the part in a fresh state. Subclasses may extend * to perform any state restoration, but must call the super method. * * @param site * the intro site * @param memento * the intro part state or <code>null</code> if there is no * previous saved state * @exception PartInitException * if this part was not initialized successfully */ void Init(IIntroSite::Pointer site, IMemento::Pointer memento) override; /* (non-Javadoc) - * @see org.eclipse.ui.intro.IIntroPart#removePropertyListener(org.eclipse.ui.IPropertyListener) + * @see IIntroPart#RemovePropertyListener */ void RemovePropertyListener(IPropertyChangeListener* l) override; /** - * The base implementation of this {@link org.eclipse.ui.intro.IIntroPart} method does nothing. + * The base implementation of this {@link IIntroPart} method does nothing. * Subclasses may override. * * @param memento * a memento to receive the object state */ void SaveState(IMemento::Pointer memento) override; /** * The <code>IntroPart</code> implementation of this * <code>IExecutableExtension</code> records the configuration element in * and internal state variable (accessible via <code>getConfigElement</code>). * It also loads the title image, if one is specified in the configuration * element. Subclasses may extend. * * Should not be called by clients. It is called by the core plugin when * creating this executable extension. */ void SetInitializationData(const IConfigurationElement::Pointer& cfig, const QString& propertyName, const Object::Pointer& data) override; }; } #endif /* BERRYINTROPART_H_ */ diff --git a/Plugins/org.blueberry.ui.qt/src/presentations/berryIPresentablePart.h b/Plugins/org.blueberry.ui.qt/src/presentations/berryIPresentablePart.h index 36f5615a04..0743ec1ecb 100755 --- a/Plugins/org.blueberry.ui.qt/src/presentations/berryIPresentablePart.h +++ b/Plugins/org.blueberry.ui.qt/src/presentations/berryIPresentablePart.h @@ -1,266 +1,265 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYIPRESENTABLEPART_H_ #define BERRYIPRESENTABLEPART_H_ #include <berryMacros.h> #include "berryISizeProvider.h" #include "berryIPropertyChangeListener.h" class QToolBar; namespace berry { /** * This is a skin's interface to the contents of a view or editor. Note that this * is essentially the same as IWorkbenchPart, except it does not provide access * to lifecycle events and allows repositioning of the part. * * Not intended to be implemented by clients. * * @since 3.0 - * @since 3.4 now extends {@link org.blueberry.ui.ISizeProvider} - * @noimplement This interface is not intended to be implemented by clients. + * @since 3.4 now extends {@link ISizeProvider} */ struct BERRY_UI_QT IPresentablePart : public Object, public ISizeProvider { berryObjectMacro(berry::IPresentablePart); ~IPresentablePart() override; /** * The property id for <code>isDirty</code>. */ static const int PROP_DIRTY; // = IWorkbenchPartConstants.PROP_DIRTY; /** * The property id for <code>getEditorInput</code>. */ static const int PROP_INPUT; // = IWorkbenchPartConstants.PROP_INPUT; /** * The property id for <code>getTitle</code>, <code>getTitleImage</code> * and <code>getTitleToolTip</code>. */ static const int PROP_TITLE; // = IWorkbenchPartConstants.PROP_TITLE; /** * The property id for <code>IWorkbenchPart2.getContentDescription()</code> */ static const int PROP_CONTENT_DESCRIPTION; // = IWorkbenchPartConstants.PROP_CONTENT_DESCRIPTION; /** * The property id for <code>IWorkbenchPart2.getContentDescription()</code> */ static const int PROP_PART_NAME; // = IWorkbenchPartConstants.PROP_PART_NAME; /** * The property id for <code>isBusy</code>. */ static const int PROP_BUSY; // = 0x92; /** * The property id for toolbar changes */ static const int PROP_TOOLBAR; // = 0x93; /** * The property id for highlighting the * part if it is not in front. */ static const int PROP_HIGHLIGHT_IF_BACK; // = 0x94; /** * The property id for pane menu changes */ static const int PROP_PANE_MENU; // = 0x302; /** * The property id for preferred size changes * @since 3.4 */ static const int PROP_PREFERRED_SIZE; // = IWorkbenchPartConstants.PROP_PREFERRED_SIZE; /** * Sets the bounds of this part. * * @param bounds bounding rectangle (not null) */ virtual void SetBounds(const QRect& bounds) = 0; /** * Notifies the part whether or not it is visible in the current * perspective. A part is visible iff any part of its widgetry can * be seen. * * @param isVisible true if the part has just become visible, false * if the part has just become hidden */ virtual void SetVisible(bool isVisible) = 0; /** * Forces this part to have focus. */ virtual void SetFocus() = 0; /** * Adds a listener for changes to properties of this workbench part. * Has no effect if an identical listener is already registered. * <p> * The properties ids are defined by the PROP_* constants, above. * </p> * * @param listener a property listener (not null) */ virtual void AddPropertyListener(IPropertyChangeListener* listener) = 0; /** * Remove a listener that was previously added using addPropertyListener. * * @param listener a property listener (not null) */ virtual void RemovePropertyListener(IPropertyChangeListener* listener) = 0; /** * Returns the short name of the part. This is used as the text on * the tab when this part is stacked on top of other parts. * * @return the short name of the part (not null) */ virtual QString GetName() const = 0; /** * Returns the title of this workbench part. If this value changes * the part must fire a property listener event with * <code>PROP_TITLE</code>. * <p> * The title is used to populate the title bar of this part's visual * container. * </p> * * @return the workbench part title (not null) */ virtual QString GetTitle() const = 0; /** * Returns the status message from the part's title, or the empty string if none. * This is a substring of the part's title. A typical title will consist of * the part name, a separator, and a status message describing the current contents. * <p> * Presentations can query getName() and getTitleStatus() if they want to display * the status message and name separately, or they can use getTitle() if they want * to display the entire title. * </p> * * @return the status message or the empty string if none (not null) */ virtual QString GetTitleStatus() const = 0; /** * Returns the title image of this workbench part. If this value changes * the part must fire a property listener event with * <code>PROP_TITLE</code>. * <p> * The title image is usually used to populate the title bar of this part's * visual container. Since this image is managed by the part itself, callers * must <b>not</b> dispose the returned image. * </p> * * @return the title image */ virtual QIcon GetTitleImage() = 0; /** * Returns the title tool tip text of this workbench part. If this value * changes the part must fire a property listener event with * <code>PROP_TITLE</code>. * <p> * The tool tip text is used to populate the title bar of this part's * visual container. * </p> * * @return the workbench part title tool tip (not null) */ virtual QString GetTitleToolTip() const = 0; /** * Returns true iff the contents of this part have changed recently. For * editors, this indicates that the part has changed since the last save. * For views, this indicates that the view contains interesting changes * that it wants to draw the user's attention to. * * @return true iff the part is dirty */ virtual bool IsDirty() const = 0; /** * Return true if the the receiver is currently in a busy state. * @return boolean true if busy */ virtual bool IsBusy() const = 0; /** * Returns true iff this part can be closed * * @return true iff this part can be closed * @since 3.1 */ virtual bool IsCloseable() const = 0; /** * Returns the local toolbar for this part, or null if this part does not * have a local toolbar. Callers must not dispose or downcast the return value. * * @return the local toolbar for the part, or null if none */ virtual QToolBar* GetToolBar() = 0; /** * Returns the menu for this part or null if none * * @return the menu for this part or null if none */ //virtual IPartMenu getMenu(); /** * Returns an SWT control that can be used to indicate the tab order for * this part. This can be returned as part of the result to - * {@link StackPresentation#getTabList(IPresentablePart)}. Any other use of this control is + * {@link StackPresentation#GetTabList}. Any other use of this control is * unsupported. This may return a placeholder control that is only * meaningful in the context of <code>getTabList</code>. * * @return the part's control (not null) */ virtual QWidget* GetControl() = 0; /** * Get a property from the part's arbitrary property set. * <p> * <b>Note:</b> this is a different set of properties than the ones covered * by the PROP_* constants. * </p> * * @param key * The property key to retrieve. Must not be <code>null</code>. * @return the property, or <code>null</code> if that property is not set. * @since 3.3 */ virtual QString GetPartProperty(const QString& key) const = 0; }; } #endif /* BERRYIPRESENTABLEPART_H_ */ diff --git a/Plugins/org.blueberry.ui.qt/src/presentations/berryIPresentationSerializer.h b/Plugins/org.blueberry.ui.qt/src/presentations/berryIPresentationSerializer.h index 973ba9de2a..ed7ffc4cba 100755 --- a/Plugins/org.blueberry.ui.qt/src/presentations/berryIPresentationSerializer.h +++ b/Plugins/org.blueberry.ui.qt/src/presentations/berryIPresentationSerializer.h @@ -1,62 +1,62 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYIPRESENTATIONSERIALIZER_H_ #define BERRYIPRESENTATIONSERIALIZER_H_ #include "berryIPresentablePart.h" #include <QString> namespace berry { /** * This interface is given to a StackPresentation when it is loading or saving * its state. * * Not intended to be implemented by clients * * @since 3.0 - * @noimplement This interface is not intended to be implemented by clients. + * @note This interface is not intended to be implemented by clients. */ struct BERRY_UI_QT IPresentationSerializer { /** * Returns a unique identifier for the given part. The identifier can later * be used to restore the original part by calling getPart(...). This identifier * is guaranteed to be unique within a particular StackPresentation. However, * the same part may be assigned a different ID each time the presentation is saved. * * @param part a part to be identified (not null) * @return a unique identifier for the part (not null) */ virtual QString GetId(IPresentablePart::Pointer part) = 0; /** * Returns a presentable part, given an id that was generated when the presentation * was saved. * * @param id an ID that was generated by getId(IPresentablePart) when the presentation * was saved * @return the presentable part associated with the given id, or null if none. Note * that even if the ID was valid when the presentation was saved, it may not * be valid when the presentation is restored. Callers must be prepared * to handle a null result. */ virtual IPresentablePart::Pointer GetPart(const QString& id) = 0; virtual ~IPresentationSerializer(); }; } #endif /* BERRYIPRESENTATIONSERIALIZER_H_ */ diff --git a/Plugins/org.blueberry.ui.qt/src/presentations/berryIStackPresentationSite.h b/Plugins/org.blueberry.ui.qt/src/presentations/berryIStackPresentationSite.h index 0b460acee5..089152e7c4 100755 --- a/Plugins/org.blueberry.ui.qt/src/presentations/berryIStackPresentationSite.h +++ b/Plugins/org.blueberry.ui.qt/src/presentations/berryIStackPresentationSite.h @@ -1,188 +1,187 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYISTACKPRESENTATIONSITE_H_ #define BERRYISTACKPRESENTATIONSITE_H_ #include <berryMacros.h> #include <list> #include "berryIPresentablePart.h" #include <org_blueberry_ui_qt_Export.h> namespace berry { /** * Represents the main interface between a StackPresentation and the workbench. * * Not intended to be implemented by clients. * * @since 3.0 - * @noimplement This interface is not intended to be implemented by clients. */ struct BERRY_UI_QT IStackPresentationSite : public Object { berryObjectMacro(berry::IStackPresentationSite); static int STATE_MINIMIZED; // = 0; static int STATE_MAXIMIZED; // = 1; static int STATE_RESTORED; // = 2; ~IStackPresentationSite() override; /** * Sets the state of the container. Called by the presentation when the * user causes the the container to be minimized, maximized, etc. * * @param newState one of the STATE_* constants */ virtual void SetState(int newState) = 0; /** * Returns the current state of the site (one of the STATE_* constants) * * @return the current state of the site (one of the STATE_* constants) */ virtual int GetState() = 0; /** * Returns true iff the site supports the given state * * @param state one of the STATE_* constants, above * @return true iff the site supports the given state */ virtual bool SupportsState(int state) = 0; /** * Begins dragging the given part * * @param beingDragged the part to drag (not null) * @param initialPosition the mouse position at the time of the initial mousedown * (display coordinates, not null) * @param keyboard true iff the drag was initiated via mouse dragging, * and false if the drag may be using the keyboard */ virtual void DragStart(IPresentablePart::Pointer beingDragged, QPoint& initialPosition, bool keyboard) = 0; /** * Closes the given set of parts. * * @param toClose the set of parts to close (Not null. All of the entries must be non-null) */ virtual void Close(const QList<IPresentablePart::Pointer>& toClose) = 0; /** * Begins dragging the entire stack of parts * * @param initialPosition the mouse position at the time of the initial mousedown (display coordinates, * not null) * @param keyboard true iff the drag was initiated via mouse dragging, * and false if the drag may be using the keyboard */ virtual void DragStart(QPoint& initialPosition, bool keyboard) = 0; /** * Returns true iff this site will allow the given part to be closed * * @param toClose part to test (not null) * @return true iff the part may be closed */ virtual bool IsCloseable(IPresentablePart::Pointer toClose) = 0; /** * Returns true iff the given part can be dragged. If this * returns false, the given part should not trigger a drag. * * @param toMove part to test (not null) * @return true iff this part is a valid drag source */ virtual bool IsPartMoveable(IPresentablePart::Pointer toMove) = 0; /** * Returns true iff this entire stack can be dragged * * @return true iff the stack can be dragged */ virtual bool IsStackMoveable() = 0; /** * Makes the given part active * * @param toSelect */ virtual void SelectPart(IPresentablePart::Pointer toSelect) = 0; /** * Returns the currently selected part or null if the stack is empty * * @return the currently selected part or null if the stack is empty */ virtual IPresentablePart::Pointer GetSelectedPart() = 0; /** * Adds system actions to the given menu manager. The site may * make use of the following group ids: * <ul> * <li><code>close</code>, for close actions</li> * <li><code>size</code>, for resize actions</li> * <li><code>misc</code>, for miscellaneous actions</li> * </ul> * The presentation can control the insertion position by creating * these group IDs where appropriate. * * @param menuManager the menu manager to populate */ //virtual void AddSystemActions(IMenuManager menuManager); /** * Notifies the workbench that the preferred size of the presentation has * changed. Hints to the workbench that it should trigger a layout at the * next opportunity. * * @since 3.1 */ virtual void FlushLayout() = 0; /** * Returns the list of presentable parts currently in this site * * @return the list of presentable parts currently in this site * @since 3.1 */ virtual QList<IPresentablePart::Pointer> GetPartList() = 0; /** * Returns the property with the given id or <code>null</code>. Folder * properties are an extensible mechanism for perspective authors to * customize the appearance of view stacks. The list of customizable * properties is determined by the presentation factory, and set in the * perspective factory. * * @param id * Must not be <code>null</code>. * @return property value, or <code>null</code> if the property is not * set. * @since 3.3 */ virtual QString GetProperty(const QString& id) = 0; }; } #endif /* BERRYISTACKPRESENTATIONSITE_H_ */ diff --git a/Plugins/org.blueberry.ui.qt/src/services/berryIServiceFactory.h b/Plugins/org.blueberry.ui.qt/src/services/berryIServiceFactory.h index e805576c54..204046e379 100755 --- a/Plugins/org.blueberry.ui.qt/src/services/berryIServiceFactory.h +++ b/Plugins/org.blueberry.ui.qt/src/services/berryIServiceFactory.h @@ -1,73 +1,71 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYISERVICEFACTORY_H_ #define BERRYISERVICEFACTORY_H_ #include <org_blueberry_ui_qt_Export.h> #include <QObject> namespace berry { struct IServiceLocator; class Object; /** * A factory for creating services for use with the * <code>org.blueberry.ui.services</code> extension point. You are given a * service locator to look up other services, and can retrieve your parent * service (if one has already been created). */ struct BERRY_UI_QT IServiceFactory { virtual ~IServiceFactory(); /** * When a service locator cannot find a service it will request one from the * registry, which will call this factory create method. * <p> * You can use the locator to get any needed services and a parent service * locator will be provided if you need access to the parent service. If the * parent object return from the parent locator is not <code>null</code> * it can be cast to the service interface that is requested. The parent * service locator will only return the serviceInterface service. * </p> * - * @param serviceInterface - * the service we need to create. Will not be <code>null</code>. * @param parentLocator * A locator that can return a parent service instance if * desired. The parent service can be cast to serviceInterface. * Will not be <code>null</code>. * @param locator * the service locator which can be used to retrieve dependent * services. Will not be <code>null</code> * @return the created service or <code>null</code> */ template<class S> S* Create(IServiceLocator* parentLocator, IServiceLocator* locator) const { return dynamic_cast<S*>(this->Create(qobject_interface_iid<S*>(), parentLocator, locator)); } virtual Object* Create(const QString& serviceInterface, IServiceLocator* parentLocator, IServiceLocator* locator) const = 0; }; } Q_DECLARE_INTERFACE(berry::IServiceFactory, "org.blueberry.ui.IServiceFactory") #endif /* BERRYISERVICEFACTORY_H_ */ diff --git a/Plugins/org.blueberry.ui.qt/src/services/berryIServiceScopes.h b/Plugins/org.blueberry.ui.qt/src/services/berryIServiceScopes.h index 85ccc77cab..7088cde36f 100644 --- a/Plugins/org.blueberry.ui.qt/src/services/berryIServiceScopes.h +++ b/Plugins/org.blueberry.ui.qt/src/services/berryIServiceScopes.h @@ -1,67 +1,67 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYISERVICESCOPES_H #define BERRYISERVICESCOPES_H #include <QString> #include <org_blueberry_ui_qt_Export.h> namespace berry { /** * Different levels of service locators supported by the workbench. * - * @noextend This interface is not intended to be extended by clients. - * @noimplement This interface is not intended to be implemented by clients. + * @note This interface is not intended to be extended by clients. + * @note This interface is not intended to be implemented by clients. */ struct BERRY_UI_QT IServiceScopes { /** * The global service locator scope. */ static const QString WORKBENCH_SCOPE; // = "org.blueberry.ui.IWorkbench"; /** * A sub-scope to the global scope that is not the workbench window. */ static const QString DIALOG_SCOPE; // = "org.blueberry.ui.IDialog"; /** * A workbench window service locator scope. */ static const QString WINDOW_SCOPE; // = "org.blueberry.ui.IWorkbenchWindow"; /** * A part site service locator scope. Found in editors and views. */ static const QString PARTSITE_SCOPE; // = "org.blueberry.ui.IWorkbenchPartSite"; /** * A page site service locator scope. Found in pages in a PageBookView. */ static const QString PAGESITE_SCOPE; // = "org.blueberry.ui.PageSite"; /** * An editor site within a MultiPageEditorPart. */ static const QString MPESITE_SCOPE; // = "org.blueberry.ui.MultiPageEditorSite"; private: IServiceScopes(); }; } #endif // BERRYISERVICESCOPES_H diff --git a/Plugins/org.blueberry.ui.qt/src/services/berryISourceProviderService.h b/Plugins/org.blueberry.ui.qt/src/services/berryISourceProviderService.h index c6d096ba9a..1ad8e2a6fd 100644 --- a/Plugins/org.blueberry.ui.qt/src/services/berryISourceProviderService.h +++ b/Plugins/org.blueberry.ui.qt/src/services/berryISourceProviderService.h @@ -1,85 +1,85 @@ /*============================================================================ The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center (DKFZ) All rights reserved. Use of this source code is governed by a 3-clause BSD license that can be found in the LICENSE file. ============================================================================*/ #ifndef BERRYISOURCEPROVIDERSERVICE_H #define BERRYISOURCEPROVIDERSERVICE_H #include "org_blueberry_ui_qt_Export.h" #include "berryObject.h" #include <QList> namespace berry { template<class T> class SmartPointer; struct ISourceProvider; /** * <p> * A service from which all of the source providers can be retrieved. * </p> * <p> * This service can be acquired from your service locator: * <pre> * ISourceProviderService* service = GetSite()->GetService<ISourceProviderService>(); * </pre> * <ul> * <li>This service is available globally.</li> * </ul> * </p> * - * @noimplement This interface is not intended to be implemented by clients. - * @noextend This interface is not intended to be extended by clients. + * @note This interface is not intended to be implemented by clients. + * @note This interface is not intended to be extended by clients. * * @see IEvaluationService */ struct BERRY_UI_QT ISourceProviderService : public virtual Object { berryObjectMacro(berry::ISourceProviderService); ~ISourceProviderService() override; /** * Retrieves a source provider providing the given source. This is used by * clients who only need specific sources. * * @param sourceName * The name of the source; must not be <code>null</code>. * @return A source provider which provides the request source, or * <code>null</code> if no such source exists. * @see ISources */ virtual SmartPointer<ISourceProvider> GetSourceProvider(const QString& sourceName) const = 0; /** * Retrieves all of the source providers registered with this service at the * time of this call. * <p> * <code>IEvaluationService</code> can be used * to receive notifications about source variable changes and to * evaluate core expressions against source providers. * </p> * * @return The source providers registered with this service. This value may be empty. */ virtual QList<SmartPointer<ISourceProvider> > GetSourceProviders() const = 0; }; } Q_DECLARE_INTERFACE(berry::ISourceProviderService, "org.blueberry.ui.ISourceProviderService") #endif // BERRYISOURCEPROVIDERSERVICE_H