* msOGRFileGetItems() * * Returns a list of field names in a NULL terminated list of strings. **********************************************************************/
| 1742 | * Returns a list of field names in a NULL terminated list of strings. |
| 1743 | **********************************************************************/ |
| 1744 | static char **msOGRFileGetItems(layerObj *layer, msOGRFileInfo *psInfo ) |
| 1745 | { |
| 1746 | OGRFeatureDefnH hDefn; |
| 1747 | int i, numitems,totalnumitems; |
| 1748 | int numStyleItems = MSOGR_LABELNUMITEMS; |
| 1749 | char **items; |
| 1750 | const char *getShapeStyleItems, *value; |
| 1751 | |
| 1752 | if((hDefn = OGR_L_GetLayerDefn( psInfo->hLayer )) == NULL) |
| 1753 | { |
| 1754 | msSetError(MS_OGRERR, |
| 1755 | "OGR Connection for layer `%s' contains no field definition.", |
| 1756 | "msOGRFileGetItems()", |
| 1757 | layer->name?layer->name:"(null)" ); |
| 1758 | return NULL; |
| 1759 | } |
| 1760 | |
| 1761 | totalnumitems = numitems = OGR_FD_GetFieldCount( hDefn ); |
| 1762 | |
| 1763 | getShapeStyleItems = msLayerGetProcessingKey( layer, "GETSHAPE_STYLE_ITEMS" ); |
| 1764 | if (getShapeStyleItems && EQUAL(getShapeStyleItems, "all")) |
| 1765 | totalnumitems += numStyleItems; |
| 1766 | |
| 1767 | if((items = (char**)malloc(sizeof(char *)*(totalnumitems+1))) == NULL) |
| 1768 | { |
| 1769 | msSetError(MS_MEMERR, NULL, "msOGRFileGetItems()"); |
| 1770 | return NULL; |
| 1771 | } |
| 1772 | |
| 1773 | for(i=0;i<numitems;i++) |
| 1774 | { |
| 1775 | OGRFieldDefnH hField = OGR_FD_GetFieldDefn( hDefn, i ); |
| 1776 | items[i] = msStrdup( OGR_Fld_GetNameRef( hField )); |
| 1777 | } |
| 1778 | |
| 1779 | if (getShapeStyleItems && EQUAL(getShapeStyleItems, "all")) |
| 1780 | { |
| 1781 | assert(numStyleItems == 21); |
| 1782 | items[i++] = msStrdup( MSOGR_LABELFONTNAMENAME ); |
| 1783 | items[i++] = msStrdup( MSOGR_LABELSIZENAME ); |
| 1784 | items[i++] = msStrdup( MSOGR_LABELTEXTNAME ); |
| 1785 | items[i++] = msStrdup( MSOGR_LABELANGLENAME ); |
| 1786 | items[i++] = msStrdup( MSOGR_LABELFCOLORNAME ); |
| 1787 | items[i++] = msStrdup( MSOGR_LABELBCOLORNAME ); |
| 1788 | items[i++] = msStrdup( MSOGR_LABELPLACEMENTNAME ); |
| 1789 | items[i++] = msStrdup( MSOGR_LABELANCHORNAME ); |
| 1790 | items[i++] = msStrdup( MSOGR_LABELDXNAME ); |
| 1791 | items[i++] = msStrdup( MSOGR_LABELDYNAME ); |
| 1792 | items[i++] = msStrdup( MSOGR_LABELPERPNAME ); |
| 1793 | items[i++] = msStrdup( MSOGR_LABELBOLDNAME ); |
| 1794 | items[i++] = msStrdup( MSOGR_LABELITALICNAME ); |
| 1795 | items[i++] = msStrdup( MSOGR_LABELUNDERLINENAME ); |
| 1796 | items[i++] = msStrdup( MSOGR_LABELPRIORITYNAME ); |
| 1797 | items[i++] = msStrdup( MSOGR_LABELSTRIKEOUTNAME ); |
| 1798 | items[i++] = msStrdup( MSOGR_LABELSTRETCHNAME ); |
| 1799 | items[i++] = msStrdup( MSOGR_LABELADJHORNAME ); |
| 1800 | items[i++] = msStrdup( MSOGR_LABELADJVERTNAME ); |
| 1801 | items[i++] = msStrdup( MSOGR_LABELHCOLORNAME ); |
no test coverage detected