LCOV - code coverage report
Current view: top level - libreoffice/extensions/source/propctrlr - formmetadata.hxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 0 1 0.0 %
Date: 2012-12-17 Functions: 0 3 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is part of the LibreOffice project.
       4             :  *
       5             :  * This Source Code Form is subject to the terms of the Mozilla Public
       6             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8             :  *
       9             :  * This file incorporates work covered by the following license notice:
      10             :  *
      11             :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      12             :  *   contributor license agreements. See the NOTICE file distributed
      13             :  *   with this work for additional information regarding copyright
      14             :  *   ownership. The ASF licenses this file to you under the Apache
      15             :  *   License, Version 2.0 (the "License"); you may not use this file
      16             :  *   except in compliance with the License. You may obtain a copy of
      17             :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      18             :  */
      19             : 
      20             : #ifndef _EXTENSIONS_PROPCTRLR_FORMMETADATA_HXX_
      21             : #define _EXTENSIONS_PROPCTRLR_FORMMETADATA_HXX_
      22             : 
      23             : #include "propertyinfo.hxx"
      24             : #include "modulepcr.hxx"
      25             : #include "enumrepresentation.hxx"
      26             : 
      27             : //............................................................................
      28             : namespace pcr
      29             : {
      30             : //............................................................................
      31             : 
      32             :     struct OPropertyInfoImpl;
      33             : 
      34             :     //========================================================================
      35             :     //= OPropertyInfoService
      36             :     //========================================================================
      37           0 :     class OPropertyInfoService
      38             :                 :public IPropertyInfoService
      39             :                 ,public PcrClient
      40             :     {
      41             :     protected:
      42             :         static sal_uInt16               s_nCount;
      43             :         static OPropertyInfoImpl*       s_pPropertyInfos;
      44             :         // TODO: a real structure which allows quick access by name as well as by id
      45             : 
      46             :     public:
      47             :         // IPropertyInfoService
      48             :         virtual sal_Int32                           getPropertyId(const String& _rName) const;
      49             :         virtual String                              getPropertyTranslation(sal_Int32 _nId) const;
      50             :         virtual rtl::OString                        getPropertyHelpId(sal_Int32 _nId) const;
      51             :         virtual sal_Int16                           getPropertyPos(sal_Int32 _nId) const;
      52             :         virtual sal_uInt32                          getPropertyUIFlags(sal_Int32 _nId) const;
      53             :         virtual ::std::vector< ::rtl::OUString >    getPropertyEnumRepresentations(sal_Int32 _nId) const;
      54             :         virtual String                              getPropertyName( sal_Int32 _nPropId );
      55             : 
      56             :         virtual sal_Bool                isComposeable( const ::rtl::OUString& _rPropertyName ) const;
      57             : 
      58             :     protected:
      59             :         static const OPropertyInfoImpl* getPropertyInfo();
      60             : 
      61             :         static const OPropertyInfoImpl* getPropertyInfo(const String& _rName);
      62             :         static const OPropertyInfoImpl* getPropertyInfo(sal_Int32 _nId);
      63             :     };
      64             : 
      65             :     //========================================================================
      66             :     //= DefaultEnumRepresentation
      67             :     //========================================================================
      68             :     /** an implementation of the IPropertyEnumRepresentation
      69             : 
      70             :         To be used with properties which, in formmetadata.cxx, are declared as ENUM.
      71             :     */
      72             :     class DefaultEnumRepresentation : public IPropertyEnumRepresentation
      73             :     {
      74             :     private:
      75             :         oslInterlockedCount         m_refCount;
      76             :         const IPropertyInfoService& m_rMetaData;
      77             :         ::com::sun::star::uno::Type m_aType;
      78             :         const sal_Int32             m_nPropertyId;
      79             : 
      80             :     public:
      81             :         /** constructs an instance
      82             : 
      83             :             @param _rInfo
      84             :                 An instance implementing IPropertyInfoService. Must live at least as
      85             :                 long as the DefaultEnumRepresentation should live.
      86             :         */
      87             :         DefaultEnumRepresentation( const IPropertyInfoService& _rInfo, const ::com::sun::star::uno::Type& _rType, sal_Int32 _nPropertyId );
      88             : 
      89             :     protected:
      90             :         ~DefaultEnumRepresentation();
      91             : 
      92             :     protected:
      93             :         // IPropertyEnumRepresentation implementqation
      94             :         virtual ::std::vector< ::rtl::OUString >
      95             :                                     SAL_CALL getDescriptions() const;
      96             :         virtual void                SAL_CALL getValueFromDescription( const ::rtl::OUString& _rDescription, ::com::sun::star::uno::Any& _out_rValue ) const;
      97             :         virtual ::rtl::OUString     SAL_CALL getDescriptionForValue( const ::com::sun::star::uno::Any& _rEnumValue ) const;
      98             : 
      99             :         // IReference implementqation
     100             :         virtual oslInterlockedCount SAL_CALL acquire();
     101             :         virtual oslInterlockedCount SAL_CALL release();
     102             : 
     103             :     private:
     104             :         DefaultEnumRepresentation();                                                // never implemented
     105             :         DefaultEnumRepresentation( const DefaultEnumRepresentation& );              // never implemented
     106             :         DefaultEnumRepresentation& operator=( const DefaultEnumRepresentation& );   // never implemented
     107             :     };
     108             : 
     109             :     //========================================================================
     110             :     //= UI flags (for all browseable properties)
     111             :     //========================================================================
     112             : 
     113             : #define PROP_FLAG_NONE              0x00000000  // no special flag
     114             : #define PROP_FLAG_FORM_VISIBLE      0x00000001  // the property is visible when inspecting a form object
     115             : #define PROP_FLAG_DIALOG_VISIBLE    0x00000002  // the property is visible when inspecting a dialog object
     116             : #define PROP_FLAG_DATA_PROPERTY     0x00000004  // the property is to appear on the "Data" page
     117             : #define PROP_FLAG_ENUM              0x00000020  // the property is some kind of enum property, i.e. its
     118             :                                                 // value is chosen from a fixed list of possible values
     119             : #define PROP_FLAG_ENUM_ONE          0x00000060  // the property is an enum property starting with 1
     120             :                                                 //  (note that this includes PROP_FLAG_ENUM)
     121             : #define PROP_FLAG_COMPOSEABLE       0x00000080  // the property is "composeable", i.e. an intersection of property
     122             :                                                 //  sets should expose it, if all elements do
     123             : #define PROP_FLAG_EXPERIMENTAL      0x00000100  // the property is experimental, i.e. should not appear in the
     124             :                                                 // UI, unless experimental properties are enabled by a configuraiton
     125             :                                                 // option
     126             : 
     127             :     //========================================================================
     128             :     //= property ids (for all browseable properties)
     129             :     //========================================================================
     130             : 
     131             :     #define PROPERTY_ID_NAME                  1
     132             :     #define PROPERTY_ID_LABEL                 2
     133             :     #define PROPERTY_ID_CONTROLLABEL          3
     134             :     #define PROPERTY_ID_MAXTEXTLEN            4
     135             :     #define PROPERTY_ID_EDITMASK              5
     136             :     #define PROPERTY_ID_LITERALMASK           6
     137             :     #define PROPERTY_ID_STRICTFORMAT          7
     138             :     #define PROPERTY_ID_ENABLED               8
     139             :     #define PROPERTY_ID_READONLY              9
     140             :     #define PROPERTY_ID_PRINTABLE            10
     141             :     #define PROPERTY_ID_CONTROLSOURCE        11
     142             :     #define PROPERTY_ID_TABSTOP              12
     143             :     #define PROPERTY_ID_TABINDEX             13
     144             :     #define PROPERTY_ID_DATASOURCE           14
     145             :     #define PROPERTY_ID_COMMAND              15
     146             :     #define PROPERTY_ID_COMMANDTYPE          16
     147             :     #define PROPERTY_ID_FILTER               17
     148             :     #define PROPERTY_ID_SORT                 18
     149             :     #define PROPERTY_ID_INSERTONLY           19
     150             :     #define PROPERTY_ID_ALLOWADDITIONS       20
     151             :     #define PROPERTY_ID_ALLOWEDITS           21
     152             :     #define PROPERTY_ID_ALLOWDELETIONS       22
     153             :     #define PROPERTY_ID_GROUP_NAME           23
     154             :     #define PROPERTY_ID_NAVIGATION           24
     155             :     #define PROPERTY_ID_CYCLE                25
     156             :     #define PROPERTY_ID_HIDDEN_VALUE         26
     157             :     #define PROPERTY_ID_VALUEMIN             27
     158             :     #define PROPERTY_ID_VALUEMAX             28
     159             :     #define PROPERTY_ID_VALUESTEP            29
     160             :     #define PROPERTY_ID_DEFAULT_VALUE        30
     161             :     #define PROPERTY_ID_DECIMAL_ACCURACY     31
     162             :     #define PROPERTY_ID_SHOWTHOUSANDSEP      32
     163             :     #define PROPERTY_ID_REFVALUE             33
     164             :     #define PROPERTY_ID_CURRENCYSYMBOL       34
     165             :     #define PROPERTY_ID_CURRSYM_POSITION     35
     166             :     #define PROPERTY_ID_DATEMIN              36
     167             :     #define PROPERTY_ID_DATEMAX              37
     168             :     #define PROPERTY_ID_DATEFORMAT           38
     169             :     #define PROPERTY_ID_SELECTEDITEMS        39
     170             :     #define PROPERTY_ID_DEFAULT_DATE         40
     171             :     #define PROPERTY_ID_TIMEMIN              41
     172             :     #define PROPERTY_ID_TIMEMAX              42
     173             :     #define PROPERTY_ID_TIMEFORMAT           43
     174             :     #define PROPERTY_ID_DEFAULT_TIME         44
     175             :     #define PROPERTY_ID_EFFECTIVE_MIN        45
     176             :     #define PROPERTY_ID_EFFECTIVE_MAX        46
     177             :     #define PROPERTY_ID_EFFECTIVE_DEFAULT    47
     178             :     #define PROPERTY_ID_FORMATKEY            48
     179             :     #define PROPERTY_ID_CLASSID              50
     180             :     #define PROPERTY_ID_HEIGHT               51
     181             :     #define PROPERTY_ID_WIDTH                52
     182             :     #define PROPERTY_ID_BOUNDCOLUMN          53
     183             :     #define PROPERTY_ID_LISTSOURCETYPE       54
     184             :     #define PROPERTY_ID_LISTSOURCE           55
     185             :     #define PROPERTY_ID_LISTINDEX            56
     186             :     #define PROPERTY_ID_STRINGITEMLIST       57
     187             :     #define PROPERTY_ID_DEFAULT_TEXT         58
     188             :     #define PROPERTY_ID_FONT                 59
     189             :     #define PROPERTY_ID_ALIGN                60
     190             :     #define PROPERTY_ID_ROWHEIGHT            61
     191             :     #define PROPERTY_ID_BACKGROUNDCOLOR      62
     192             :     #define PROPERTY_ID_FILLCOLOR            63
     193             :     #define PROPERTY_ID_ESCAPE_PROCESSING    64
     194             :     #define PROPERTY_ID_LINECOLOR            65
     195             :     #define PROPERTY_ID_BORDER               66
     196             :     #define PROPERTY_ID_DROPDOWN             67
     197             :     #define PROPERTY_ID_AUTOCOMPLETE         68
     198             :     #define PROPERTY_ID_LINECOUNT            69
     199             :     #define PROPERTY_ID_WORDBREAK            70
     200             :     #define PROPERTY_ID_MULTILINE            71
     201             :     #define PROPERTY_ID_MULTISELECTION       72
     202             :     #define PROPERTY_ID_AUTOLINEBREAK        73
     203             :     #define PROPERTY_ID_HSCROLL              74
     204             :     #define PROPERTY_ID_VSCROLL              75
     205             :     #define PROPERTY_ID_SPIN                 76
     206             :     #define PROPERTY_ID_BUTTONTYPE           77
     207             :     #define PROPERTY_ID_TARGET_URL           78
     208             :     #define PROPERTY_ID_TARGET_FRAME         79
     209             :     #define PROPERTY_ID_SUBMIT_ACTION        80
     210             :     #define PROPERTY_ID_SUBMIT_TARGET        81
     211             :     #define PROPERTY_ID_SUBMIT_METHOD        82
     212             :     #define PROPERTY_ID_SUBMIT_ENCODING      83
     213             :     #define PROPERTY_ID_DEFAULT_STATE        84
     214             :     #define PROPERTY_ID_DEFAULTBUTTON        85
     215             :     #define PROPERTY_ID_IMAGE_URL            86
     216             :     #define PROPERTY_ID_DEFAULT_SELECT_SEQ   87
     217             :     #define PROPERTY_ID_ECHO_CHAR            88
     218             :     #define PROPERTY_ID_EMPTY_IS_NULL        89
     219             :     #define PROPERTY_ID_TRISTATE             90
     220             :     #define PROPERTY_ID_MASTERFIELDS         91
     221             :     #define PROPERTY_ID_DETAILFIELDS         92
     222             :     #define PROPERTY_ID_RECORDMARKER         93
     223             :     #define PROPERTY_ID_FILTERPROPOSAL       94
     224             :     #define PROPERTY_ID_TAG                  95
     225             :     #define PROPERTY_ID_HELPTEXT             96
     226             :     #define PROPERTY_ID_HELPURL              97
     227             :     #define PROPERTY_ID_HASNAVIGATION        98
     228             :     #define PROPERTY_ID_POSITIONX            99
     229             :     #define PROPERTY_ID_POSITIONY            100
     230             :     #define PROPERTY_ID_TITLE                101
     231             :     #define PROPERTY_ID_STEP                 102
     232             :     #define PROPERTY_ID_PROGRESSVALUE        103
     233             :     #define PROPERTY_ID_PROGRESSVALUE_MIN    104
     234             :     #define PROPERTY_ID_PROGRESSVALUE_MAX    105
     235             :     #define PROPERTY_ID_SCROLLVALUE          106
     236             :     #define PROPERTY_ID_SCROLLVALUE_MAX      107
     237             :     #define PROPERTY_ID_LINEINCREMENT        108
     238             :     #define PROPERTY_ID_BLOCKINCREMENT       109
     239             :     #define PROPERTY_ID_VISIBLESIZE          110
     240             :     #define PROPERTY_ID_ORIENTATION          111
     241             :     #define PROPERTY_ID_IMAGEPOSITION        112
     242             :     #define PROPERTY_ID_DATE                 113
     243             :     #define PROPERTY_ID_STATE                114
     244             :     #define PROPERTY_ID_TIME                 115
     245             :     #define PROPERTY_ID_VALUE                116
     246             :     #define PROPERTY_ID_SCALEIMAGE           117
     247             :     #define PROPERTY_ID_PUSHBUTTONTYPE       118
     248             :     #define PROPERTY_ID_EFFECTIVE_VALUE      119
     249             :     #define PROPERTY_ID_TEXT                 120
     250             :     #define PROPERTY_ID_BOUND_CELL           121
     251             :     #define PROPERTY_ID_LIST_CELL_RANGE      122
     252             :     #define PROPERTY_ID_CELL_EXCHANGE_TYPE   123
     253             :     #define PROPERTY_ID_SCROLLVALUE_MIN      124
     254             :     #define PROPERTY_ID_DEFAULT_SCROLLVALUE  125
     255             :     #define PROPERTY_ID_REPEAT_DELAY         126
     256             :     #define PROPERTY_ID_SYMBOLCOLOR          127
     257             :     #define PROPERTY_ID_SPINVALUE            128
     258             :     #define PROPERTY_ID_SPINVALUE_MIN        129
     259             :     #define PROPERTY_ID_SPINVALUE_MAX        130
     260             :     #define PROPERTY_ID_DEFAULT_SPINVALUE    131
     261             :     #define PROPERTY_ID_SPININCREMENT        132
     262             :     #define PROPERTY_ID_REPEAT               133
     263             :     #define PROPERTY_ID_SHOW_SCROLLBARS      134
     264             :     #define PROPERTY_ID_ICONSIZE             135
     265             :     #define PROPERTY_ID_SHOW_POSITION        136
     266             :     #define PROPERTY_ID_SHOW_NAVIGATION      137
     267             :     #define PROPERTY_ID_SHOW_RECORDACTIONS   138
     268             :     #define PROPERTY_ID_SHOW_FILTERSORT      139
     269             :     #define PROPERTY_ID_TEXTTYPE             140
     270             :     #define PROPERTY_ID_LINEEND_FORMAT       141
     271             :     #define PROPERTY_ID_TOGGLE               142
     272             :     #define PROPERTY_ID_FOCUSONCLICK         143
     273             :     #define PROPERTY_ID_HIDEINACTIVESELECTION 144
     274             :     #define PROPERTY_ID_VISUALEFFECT         145
     275             :     #define PROPERTY_ID_BORDERCOLOR          146
     276             :     #define PROPERTY_ID_XML_DATA_MODEL       147
     277             :     #define PROPERTY_ID_BIND_EXPRESSION      148
     278             :     #define PROPERTY_ID_XSD_REQUIRED         149
     279             :     #define PROPERTY_ID_XSD_RELEVANT         150
     280             :     #define PROPERTY_ID_XSD_READONLY         151
     281             :     #define PROPERTY_ID_XSD_CONSTRAINT       152
     282             :     #define PROPERTY_ID_XSD_CALCULATION      153
     283             :     #define PROPERTY_ID_XSD_DATA_TYPE        154
     284             :     #define PROPERTY_ID_XSD_WHITESPACES      155
     285             :     #define PROPERTY_ID_XSD_PATTERN          156
     286             :     #define PROPERTY_ID_XSD_LENGTH           157
     287             :     #define PROPERTY_ID_XSD_MIN_LENGTH       158
     288             :     #define PROPERTY_ID_XSD_MAX_LENGTH       159
     289             :     #define PROPERTY_ID_XSD_TOTAL_DIGITS     160
     290             :     #define PROPERTY_ID_XSD_FRACTION_DIGITS  161
     291             :     #define PROPERTY_ID_XSD_MAX_INCLUSIVE_INT        162
     292             :     #define PROPERTY_ID_XSD_MAX_EXCLUSIVE_INT        163
     293             :     #define PROPERTY_ID_XSD_MIN_INCLUSIVE_INT        164
     294             :     #define PROPERTY_ID_XSD_MIN_EXCLUSIVE_INT        165
     295             :     #define PROPERTY_ID_XSD_MAX_INCLUSIVE_DOUBLE     166
     296             :     #define PROPERTY_ID_XSD_MAX_EXCLUSIVE_DOUBLE     167
     297             :     #define PROPERTY_ID_XSD_MIN_INCLUSIVE_DOUBLE     168
     298             :     #define PROPERTY_ID_XSD_MIN_EXCLUSIVE_DOUBLE     169
     299             :     #define PROPERTY_ID_XSD_MAX_INCLUSIVE_DATE       170
     300             :     #define PROPERTY_ID_XSD_MAX_EXCLUSIVE_DATE       171
     301             :     #define PROPERTY_ID_XSD_MIN_INCLUSIVE_DATE       172
     302             :     #define PROPERTY_ID_XSD_MIN_EXCLUSIVE_DATE       173
     303             :     #define PROPERTY_ID_XSD_MAX_INCLUSIVE_TIME       174
     304             :     #define PROPERTY_ID_XSD_MAX_EXCLUSIVE_TIME       175
     305             :     #define PROPERTY_ID_XSD_MIN_INCLUSIVE_TIME       176
     306             :     #define PROPERTY_ID_XSD_MIN_EXCLUSIVE_TIME       177
     307             :     #define PROPERTY_ID_XSD_MAX_INCLUSIVE_DATE_TIME  178
     308             :     #define PROPERTY_ID_XSD_MAX_EXCLUSIVE_DATE_TIME  179
     309             :     #define PROPERTY_ID_XSD_MIN_INCLUSIVE_DATE_TIME  180
     310             :     #define PROPERTY_ID_XSD_MIN_EXCLUSIVE_DATE_TIME  181
     311             :     #define PROPERTY_ID_UNCHECKEDREFVALUE           182
     312             :     #define PROPERTY_ID_SUBMISSION_ID               183
     313             :     #define PROPERTY_ID_XFORMS_BUTTONTYPE           184
     314             :     #define PROPERTY_ID_LIST_BINDING                185
     315             :     #define PROPERTY_ID_VERTICAL_ALIGN              186
     316             :     #define PROPERTY_ID_BINDING_NAME                187
     317             :     #define PROPERTY_ID_DECORATION                  188
     318             :     #define PROPERTY_ID_SELECTION_TYPE              189
     319             :     #define PROPERTY_ID_ROOT_DISPLAYED              190
     320             :     #define PROPERTY_ID_SHOWS_HANDLES               191
     321             :     #define PROPERTY_ID_SHOWS_ROOT_HANDLES          192
     322             :     #define PROPERTY_ID_EDITABLE                    193
     323             :     #define PROPERTY_ID_INVOKES_STOP_NOT_EDITING    194
     324             :     #define PROPERTY_ID_NOLABEL                     195
     325             :     #define PROPERTY_ID_SCALE_MODE                  196
     326             :     #define PROPERTY_ID_INPUT_REQUIRED              197
     327             :     #define PROPERTY_ID_WRITING_MODE                198
     328             :     #define PROPERTY_ID_ENABLE_VISIBLE              199
     329             :     #define PROPERTY_ID_WHEEL_BEHAVIOR              200
     330             :     #define PROPERTY_ID_TEXT_ANCHOR_TYPE            201
     331             :     #define PROPERTY_ID_SHEET_ANCHOR_TYPE           202
     332             :     #define PROPERTY_ID_SCROLL_WIDTH                203
     333             :     #define PROPERTY_ID_SCROLL_HEIGHT               204
     334             :     #define PROPERTY_ID_SCROLL_TOP                  205
     335             :     #define PROPERTY_ID_SCROLL_LEFT                 206
     336             : 
     337             : //............................................................................
     338             : } // namespace pcr
     339             : //............................................................................
     340             : 
     341             : #endif // _EXTENSIONS_PROPCTRLR_FORMMETADATA_HXX_
     342             : 
     343             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10