home *** CD-ROM | disk | FTP | other *** search
/ Tools / WinSN5.0Ver.iso / NETSCAP.50 / WIN1998.ZIP / ns / modules / rdf / include / htrdf.h next >
Encoding:
C/C++ Source or Header  |  1998-04-08  |  18.4 KB  |  487 lines

  1. /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
  2.  *
  3.  * The contents of this file are subject to the Netscape Public License
  4.  * Version 1.0 (the "NPL"); you may not use this file except in
  5.  * compliance with the NPL.  You may obtain a copy of the NPL at
  6.  * http://www.mozilla.org/NPL/
  7.  *
  8.  * Software distributed under the NPL is distributed on an "AS IS" basis,
  9.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
  10.  * for the specific language governing rights and limitations under the
  11.  * NPL.
  12.  *
  13.  * The Initial Developer of this code under the NPL is Netscape
  14.  * Communications Corporation.  Portions created by Netscape are
  15.  * Copyright (C) 1998 Netscape Communications Corporation.  All Rights
  16.  * Reserved.
  17.  */
  18.  
  19. #ifndef htrdf_h___
  20. #define htrdf_h___
  21.  
  22. /* the RDF HT API */
  23.  
  24. #include "rdf.h"
  25. #ifdef NSPR20
  26. #else
  27. #include "prtypes.h"
  28. #include "prfile.h"
  29. #endif
  30.  
  31. #include "ntypes.h"
  32.  
  33. /*
  34.  * Hyper Tree Api
  35.  *
  36.  * Hyper tree is the tree view of the rdf store. This is for use by the FE in
  37.  * implementing the nav center.
  38.  *
  39.  * The RDF structure could be a gnarly graph whose nodes are RDF_Resource.
  40.  * There can be multiple tree views (HT_View) into this graph. Corresponding
  41.  * to each view, there is a hyper tree whose nodes are HT_Resource. 
  42.  * Each HT_Resource belongs to exactly one HT_View. 
  43.  * The FE iterate over the hypertree to draw it. It can start the iteration
  44.  * either at the top or at some interior node. When some state change occurs
  45.  * in the hypertree, the FE will get notified about the node on which the
  46.  * change took place. At that point, it can either redraw the whole thing
  47.  * or do a partial redraw. The FE does this by iterating over the relevant
  48.  * portions of the hypertree.  Since the hypertree is a strict tree, the FE
  49.  * can also iterate upwards.
  50.  *
  51.  *
  52.  * Possible state changes to the hypertree of an HT_View include : 
  53.  * (i) addition/deletion of nodes
  54.  * (ii) containers closing/opening
  55.  * (iii) selection changes
  56.  * These changes could occur either because of 
  57.  * (i) User clicking around the tree
  58.  * (ii) Network activity
  59.  * (iii) scripts running
  60.  * The FE can recieve notifications about these activities. 
  61.  * If the FE does not want to be notified about something, it can set 
  62.  * the notification mask to block certain notifications.
  63.  */
  64.  
  65. NSPR_BEGIN_EXTERN_C
  66.  
  67. /* Opaque data structures */
  68. typedef struct _HT_ViewStruct* HT_View;
  69.  
  70. typedef struct _HT_PaneStruct* HT_Pane;
  71.  
  72. typedef struct _HT_CursorStruct* HT_Cursor;
  73.  
  74. typedef struct _HT_ResourceStruct* HT_Resource;
  75.  
  76.  
  77. /*
  78.  * This is the Notification structure that gets passed to the HT layer on
  79.  * creation of the view. This should be allocated/static memory. HT layer
  80.  * will store a pointer to this structure. On CloseView, a View Closed
  81.  * event will be generated and the notification function will be called.
  82.  * At this point, the module using HT can free the memory associated with
  83.  * the HT_Notification struct.
  84.  */
  85.  
  86.  
  87. typedef uint32 HT_NotificationMask;
  88. typedef uint32 HT_Event;
  89. typedef uint32 HT_Error;
  90.  
  91. #define HT_NoErr        0
  92. #define HT_Err            1
  93.  
  94. struct _HT_NotificationStruct;
  95.  
  96. typedef void (*HT_NotificationProc)(struct _HT_NotificationStruct*, 
  97.                  HT_Resource node, HT_Event whatHappened);
  98.  
  99. typedef struct _HT_NotificationStruct {
  100.         HT_NotificationProc notifyProc;
  101.         void* data;
  102. } HT_NotificationStruct;
  103.  
  104.  
  105. /*
  106.  * HT_Notification events and masks
  107.  */
  108.  
  109.  
  110. typedef HT_NotificationStruct* HT_Notification;
  111.  
  112. #define HT_EVENT_NODE_ADDED                     0x00000001UL
  113. #define HT_EVENT_NODE_DELETED_DATA              0x00000002UL
  114. #define HT_EVENT_NODE_DELETED_NODATA            0x00000004UL
  115. #define HT_EVENT_NODE_VPROP_CHANGED             0x00000008UL
  116. #define HT_EVENT_NODE_SELECTION_CHANGED         0x00000010UL
  117. #define HT_EVENT_NODE_OPENCLOSE_CHANGED         0x00000020UL
  118. #define HT_EVENT_VIEW_CLOSED                    0x00000040UL    /* same as HT_EVENT_VIEW_DELETED */
  119. #define HT_EVENT_VIEW_DELETED                   0x00000040UL    /* same as HT_EVENT_VIEW_CLOSED */
  120. #define HT_EVENT_VIEW_SELECTED                  0x00000080UL
  121. #define HT_EVENT_VIEW_ADDED                     0x00000100UL
  122. #define HT_EVENT_NODE_OPENCLOSE_CHANGING        0x00000200UL
  123. #define HT_EVENT_VIEW_SORTING_CHANGED        0x00000400UL
  124. #define HT_EVENT_VIEW_REFRESH            0x00000800UL
  125. #define    HT_EVENT_VIEW_WORKSPACE_REFRESH        0x00001000UL
  126. #define    HT_EVENT_NODE_EDIT            0x00002000UL
  127. #define    HT_EVENT_WORKSPACE_EDIT            0x00004000UL
  128. #define HT_EVENT_NO_NOTIFICATION_MASK           0x00000000UL
  129. #define HT_EVENT_DEFAULT_NOTIFICATION_MASK      0xFFFFFFFFUL
  130.  
  131.  
  132. /*-----------------------------------------------------------------------*/
  133. /*                    View/Pane Creation / Destruction / Management           */
  134. /*-----------------------------------------------------------------------*/
  135.  
  136. PR_PUBLIC_API(HT_Pane) HT_PaneFromResource(RDF_Resource r, HT_Notification n, PRBool autoFlush);
  137.  
  138. /* NewQuickFilePane
  139.  * Creates a pane consisting of one view.  This view has the RDF resource
  140.  * corresponding to the Quickfile folder as its root.
  141.  */
  142.  
  143. PR_PUBLIC_API(HT_Pane) HT_NewQuickFilePane (HT_Notification notify);
  144.  
  145. /* NewPersonalToolbarPane
  146.  * Creates a pane consisting of one view.  This view has the RDF resource
  147.  * corresponding to the Personal Toolbar folder as its root.
  148.  */
  149.  
  150. PR_PUBLIC_API(HT_Pane) HT_NewPersonalToolbarPane (HT_Notification notify);
  151.  
  152. /* HT_NewBreadcrumbPane
  153.  */
  154.  
  155. PR_PUBLIC_API(HT_Pane) HT_NewBreadcrumbPane (HT_Notification notify);
  156.  
  157. PR_PUBLIC_API(void) HT_AddToContainer (HT_Resource container, char *url, char *optionalTitle);
  158. PR_PUBLIC_API(void) HT_AddBookmark (char *url, char *optionalTitle);
  159.  
  160. /* CreateView
  161.  * Takes an rdf node as the root of the view tree and creates a XP view.
  162.  * HT_Notification would be to the notifier when there is a state change.
  163.  */
  164.  
  165. PR_PUBLIC_API(HT_Pane) HT_NewPane (HT_Notification notify);
  166.  
  167. /* DeleteView
  168.  * Destroy a valid view created via CreateView
  169.  */
  170. PR_PUBLIC_API(HT_Error)    HT_DeleteView (HT_View view);
  171. PR_PUBLIC_API(HT_Error) HT_DeletePane (HT_Pane pane);
  172.  
  173. /* HT_TopNode
  174.  * Obtain the top node associated with a view tree
  175.  */
  176. PR_PUBLIC_API(HT_Resource)  HT_TopNode (HT_View view);
  177.  
  178. PR_PUBLIC_API(void*) HT_GetViewFEData (HT_View node);
  179. PR_PUBLIC_API(void) HT_SetViewFEData (HT_View node, void* data);
  180. PR_PUBLIC_API(void*) HT_GetPaneFEData (HT_Pane pane);
  181. PR_PUBLIC_API(void) HT_SetPaneFEData (HT_Pane pane, void* data);
  182.  
  183. PR_PUBLIC_API(HT_View) HT_GetSelectedView (HT_Pane pane);
  184. PR_PUBLIC_API(HT_Error) HT_SetSelectedView (HT_Pane pane, HT_View view);
  185.  
  186.  
  187. enum    _HT_ViewType    {
  188.         HT_VIEW_BOOKMARK=0, HT_VIEW_HISTORY, HT_VIEW_SITEMAP
  189.         } ;
  190. typedef    enum    _HT_ViewType        HT_ViewType;
  191.  
  192. /*
  193.  * HT_GetViewType: find a particular view type (returns NULL if not found or unknown)
  194.  */
  195. PR_PUBLIC_API(HT_View) HT_GetViewType (HT_Pane pane, HT_ViewType viewType);
  196.  
  197.  
  198. /*
  199.  * HT_GetView
  200.  * Obtain the view tree associated with a node
  201.  */
  202. PR_PUBLIC_API(HT_View)      HT_GetView (HT_Resource node);
  203. PR_PUBLIC_API(HT_Pane)      HT_GetPane (HT_View view);
  204.  
  205. /*
  206.  * HT_GetViewData / HT_SetViewData
  207.  * get/set FE specific data to be associated with a view
  208.  */
  209. PR_PUBLIC_API(void*) HT_GetNodeFEData (HT_Resource node);
  210. PR_PUBLIC_API(void) HT_SetNodeFEData (HT_Resource node, void* data);
  211.  
  212. /*
  213.  * HT_GetNotificationMask / HT_SetNotificationMask
  214.  * get/set the notification mask associated with a view
  215.  */
  216. PR_PUBLIC_API(HT_Error) HT_GetNotificationMask (HT_Pane node, HT_NotificationMask *mask);
  217. PR_PUBLIC_API(HT_Error) HT_SetNotificationMask (HT_Pane node, HT_NotificationMask mask);
  218.  
  219.  
  220. /*-----------------------------------------------------------------------*/
  221. /*                          View Traversal                               */
  222. /*-----------------------------------------------------------------------*/ 
  223.  
  224. PR_PUBLIC_API(char *)     HT_GetViewName(HT_View view);
  225.  
  226. /*
  227.  * HT_GetNthView
  228.  */
  229. PR_PUBLIC_API(HT_View)  HT_GetNthView (HT_Pane pane, uint32 theIndex);
  230. PR_PUBLIC_API(uint32)    HT_GetViewIndex(HT_View view);
  231. PR_PUBLIC_API(uint32)    HT_GetViewListCount(HT_Pane pane);
  232.  
  233. /*
  234.  * HT_GetNthItem / HT_GetNodeIndex
  235.  * get the nth resource in a view (or NULL if not in view),
  236.  * or find a resource's index in a view (or -1 if not in view)
  237.  */
  238. PR_PUBLIC_API(HT_Resource)  HT_GetNthItem (HT_View view, uint32 theIndex);
  239. PR_PUBLIC_API(uint32)    HT_GetNodeIndex(HT_View view, HT_Resource node);
  240. PR_PUBLIC_API(uint32)    HT_GetItemListCount(HT_View view);
  241. PR_PUBLIC_API(uint16)    HT_GetItemIndentation(HT_Resource r);
  242. /*
  243.  * HT_GetParent
  244.  * obtain the parent of a node
  245.  */
  246. PR_PUBLIC_API(HT_Resource)  HT_GetParent (HT_Resource node);
  247.  
  248. /*
  249.  * HT_NodeDisplayString (XXX needs work)
  250.  * obtain the name of a node
  251.  */
  252. PR_PUBLIC_API(HT_Error)     HT_NodeDisplayString (HT_Resource node, char *buffer, int bufferLen);
  253. PR_PUBLIC_API(HT_Error)     HT_ViewDisplayString (HT_View view, char *buffer, int bufferLen);
  254.  
  255. PR_PUBLIC_API(PRBool)    HT_GetNodeData (HT_Resource node, void *token,
  256.                     uint32 tokenType, void **data);
  257. PR_PUBLIC_API(PRBool)    HT_IsNodeDataEditable(HT_Resource node,
  258.                     void *token, uint32 tokenType);
  259. PR_PUBLIC_API(HT_Error) HT_SetNodeData (HT_Resource node, void *token,
  260.                     uint32 tokenType, void *data);
  261. PR_PUBLIC_API(HT_Error) HT_SetNodeName (HT_Resource node, void *data);
  262.  
  263. /*
  264.  * HT_GetLargeIconURL / HT_GetSmallIconURL
  265.  * obtain the large/small icon URLs for a node if available, otherwise return NULL
  266.  */
  267.  
  268. PR_PUBLIC_API(char *)    HT_GetWorkspaceLargeIconURL (HT_View view);
  269. PR_PUBLIC_API(char *)    HT_GetWorkspaceSmallIconURL (HT_View view);
  270. PR_PUBLIC_API(char *)    HT_GetNodeLargeIconURL (HT_Resource r);
  271. PR_PUBLIC_API(char *)    HT_GetNodeSmallIconURL (HT_Resource r);
  272.  
  273. PR_PUBLIC_API(char *)    HT_GetLargeIconURL (HT_Resource r);    /* obsolete! */
  274. PR_PUBLIC_API(char *)    HT_GetSmallIconURL (HT_Resource r);    /* obsolete! */
  275.  
  276. /*
  277.  * HT_NewColumnCursor / HT_GetNextColumn / HT_DeleteColumnCursor
  278.  * obtain column information
  279.  */
  280.  
  281. enum    _HT_ColumnType    {
  282.         HT_COLUMN_UNKNOWN=0, HT_COLUMN_STRING, HT_COLUMN_DATE_STRING,
  283.     HT_COLUMN_DATE_INT, HT_COLUMN_INT, HT_COLUMN_RESOURCE
  284.         } ;
  285. typedef    enum    _HT_ColumnType        HT_ColumnType;
  286.  
  287. PR_PUBLIC_API(HT_Cursor)    HT_NewColumnCursor (HT_View view);
  288. PR_PUBLIC_API(PRBool)        HT_GetNextColumn(HT_Cursor cursor, char **colName,
  289.                     uint32 *colWidth, void **token, uint32 *tokenType);
  290. PR_PUBLIC_API(void)        HT_DeleteColumnCursor(HT_Cursor cursor);
  291. PR_PUBLIC_API(void)        HT_SetColumnOrder(HT_View view, void *srcColToken,
  292.                         void *destColToken,
  293.                         PRBool afterDestFlag);
  294. PR_PUBLIC_API(void)        HT_SetSortColumn(HT_View view, void *token,
  295.                         uint32 tokenType, PRBool descendingFlag);
  296. PR_PUBLIC_API(PRBool)        HT_ContainerSupportsNaturalOrderSort(HT_Resource container);
  297.  
  298.  
  299. /*
  300.  * HT Menu Commands
  301.  */
  302.  
  303. enum    _HT_MenuCmd     {
  304.         HT_CMD_SEPARATOR=0, HT_CMD_OPEN, HT_CMD_OPEN_FILE, HT_CMD_PRINT_FILE,
  305.         HT_CMD_OPEN_NEW_WIN, HT_CMD_OPEN_COMPOSER, HT_CMD_OPEN_AS_WORKSPACE,
  306.         HT_CMD_NEW_BOOKMARK, HT_CMD_NEW_FOLDER, HT_CMD_NEW_SEPARATOR,
  307.         HT_CMD_MAKE_ALIAS, HT_CMD_ADD_TO_BOOKMARKS, HT_CMD_SAVE_AS,
  308.         HT_CMD_CREATE_SHORTCUT, HT_CMD_SET_TOOLBAR_FOLDER,
  309.         HT_CMD_SET_BOOKMARK_MENU, HT_CMD_SET_BOOKMARK_FOLDER, HT_CMD_CUT,
  310.         HT_CMD_COPY, HT_CMD_PASTE, HT_CMD_DELETE_FILE, HT_CMD_DELETE_FOLDER,
  311.         HT_CMD_REVEAL_FILEFOLDER, HT_CMD_PROPERTIES, HT_CMD_RENAME_WORKSPACE,
  312.     HT_CMD_DELETE_WORKSPACE, HT_CMD_MOVE_WORKSPACE_UP, HT_CMD_MOVE_WORKSPACE_DOWN,
  313.     HT_CMD_REFRESH, HT_CMD_EXPORT, HT_CMD_REMOVE_BOOKMARK_MENU,
  314.     HT_CMD_REMOVE_BOOKMARK_FOLDER, HT_CMD_SET_PASSWORD, HT_CMD_REMOVE_PASSWORD,
  315.     HT_CMD_EXPORTALL, HT_CMD_UNDO, HT_CMD_NEW_WORKSPACE, HT_CMD_RENAME
  316.         };
  317. typedef enum    _HT_MenuCmd     HT_MenuCmd;
  318.  
  319. PR_PUBLIC_API(HT_Cursor)    HT_NewContextMenuCursor(HT_Resource r);
  320. PR_PUBLIC_API(HT_Cursor)    HT_NewContextualMenuCursor (HT_View view,
  321.                             PRBool workspaceMenuCmds,
  322.                             PRBool backgroundMenuCmds);
  323. PR_PUBLIC_API(PRBool)        HT_NextContextMenuItem(HT_Cursor c, HT_MenuCmd *menuCmd);
  324. PR_PUBLIC_API(void)        HT_DeleteContextMenuCursor(HT_Cursor c);
  325. PR_PUBLIC_API(char *)        HT_GetMenuCmdName(HT_MenuCmd menuCmd);
  326. PR_PUBLIC_API(HT_Error)        HT_DoMenuCmd(HT_Pane pane, HT_MenuCmd menuCmd);
  327. PR_PUBLIC_API(PRBool)        HT_IsMenuCmdEnabled(HT_Pane pane, HT_MenuCmd menuCmd);
  328.  
  329.  
  330. /*
  331.  * HT_Properties
  332.  * show HTML dialog of node's properties
  333.  */
  334. PR_PUBLIC_API(void)    HT_Properties (HT_Resource r);
  335.  
  336.  
  337. /*
  338.  * HT_GetRDFResource
  339.  * obtain the RDF_Resource associated with a HT node
  340.  */
  341. PR_PUBLIC_API(RDF_Resource) HT_GetRDFResource (HT_Resource node);
  342.  
  343. /*
  344.  * Access the node's name and URL
  345.  */
  346.  
  347. PR_PUBLIC_API(char*) HT_GetNodeURL(HT_Resource node);
  348. PR_PUBLIC_API(char*) HT_GetNodeName(HT_Resource node);
  349.  
  350. /*-----------------------------------------------------------------------*/
  351. /*                          Accessor and Mutators                        */
  352. /*-----------------------------------------------------------------------*/
  353.  
  354. /*
  355.  * HT_IsSeparator
  356.  * determine whether node is a separator
  357.  */
  358. PR_PUBLIC_API(PRBool) HT_IsSeparator (HT_Resource node);
  359.  
  360. /*
  361.  * HT_IsContainer
  362.  * determine whether node is a container
  363.  */
  364. PR_PUBLIC_API(PRBool)   HT_IsContainer (HT_Resource node);
  365. PR_PUBLIC_API(uint32)    HT_GetCountVisibleChildren(HT_Resource node);
  366.  
  367. /* 
  368.  * HT_DataSource : obtain the origin of the data
  369.  * HT_IsLocalData : is the data local?
  370.  */
  371.  
  372. PR_PUBLIC_API(PRBool) HT_IsLocalData (HT_Resource node) ;
  373. PR_PUBLIC_API(char *) HT_DataSource (HT_Resource node) ;
  374.  
  375.  
  376. PR_PUBLIC_API(HT_Pane) HT_GetHTPaneList ();
  377. PR_PUBLIC_API(HT_Pane) HT_GetNextHTPane (HT_Pane pane);
  378. /*
  379.  * HT_IsSelected / HT_GetSelectedState / HT_SetSelectedState
  380.  * manage selection state of a node;  get/set operations will generate
  381.  * a HT_EVENT_NODE_SELECTION_CHANGED notification unless masked out
  382.  */
  383. PR_PUBLIC_API(PRBool)   HT_IsSelected (HT_Resource node);
  384. PR_PUBLIC_API(HT_Error) HT_GetSelectedState (HT_Resource node, PRBool *selectedState);
  385. PR_PUBLIC_API(HT_Error) HT_SetSelectedState (HT_Resource node, PRBool isSelected);
  386.  
  387. PR_PUBLIC_API(HT_Error)    HT_SetSelection (HT_Resource node);
  388. PR_PUBLIC_API(HT_Error)    HT_SetSelectionAll (HT_View view, PRBool selectedState);
  389. PR_PUBLIC_API(HT_Error)    HT_SetSelectionRange (HT_Resource node1, HT_Resource node2);
  390.  
  391. PR_PUBLIC_API(HT_Resource)    HT_GetNextSelection(HT_View view, HT_Resource startingNode);
  392. PR_PUBLIC_API(void)    HT_ToggleSelection(HT_Resource node);
  393.  
  394. PR_PUBLIC_API(void) HT_Launch(HT_Resource node);
  395.  
  396. /*
  397.  * HT_NewCursor, HT_GetNextItem, HT_DeleteCursor
  398.  * Used to iterate over a container's children. Until the container has been
  399.  * opened at least once, you won't see any of the children.
  400.  */
  401.  
  402. PR_PUBLIC_API(HT_Cursor) HT_NewCursor (HT_Resource node) ;
  403. PR_PUBLIC_API(HT_Error) HT_DeleteCursor (HT_Cursor cursor) ;
  404. PR_PUBLIC_API(HT_Resource) HT_GetNextItem (HT_Cursor cursor) ;
  405.  
  406. /*
  407.  * HT_IsContainerOpen / HT_GetOpenState / HT_SetOpenState
  408.  * manage open state of a node;  get/set operations will generate
  409.  * a HT_EVENT_NODE_OPENCLOSE_CHANGED notification unless masked out
  410.  */
  411. PR_PUBLIC_API(PRBool)   HT_IsContainerOpen (HT_Resource node);
  412. PR_PUBLIC_API(HT_Error) HT_GetOpenState (HT_Resource containerNode, PRBool *openState);
  413. PR_PUBLIC_API(HT_Error) HT_SetOpenState (HT_Resource containerNode, PRBool isOpen);
  414.  
  415. /*
  416.  * HT_ItemHasForwardSibling / HT_ItemHasBackwardSibling
  417.  * determine if a given node has a following/previous sibling node
  418.  */
  419. PR_PUBLIC_API(PRBool)    HT_ItemHasForwardSibling(HT_Resource r);
  420. PR_PUBLIC_API(PRBool)    HT_ItemHasBackwardSibling(HT_Resource r);
  421.  
  422. PR_PUBLIC_API(void)    HT_NewWorkspace(HT_Pane pane, char *id, char *optionalTitle);
  423. PR_PUBLIC_API(void)    HT_SetWorkspaceOrder(HT_View src, HT_View dest, PRBool afterDestFlag);
  424.  
  425. /*-----------------------------------------------------------------------*/
  426. /*                    Creating new containers                            */
  427. /*-----------------------------------------------------------------------*/
  428.  
  429. PR_PUBLIC_API(HT_Resource) HT_MakeNewContainer(HT_Resource parent, char* name);   
  430.  
  431. /*-----------------------------------------------------------------------*/
  432. /*                    Drag and Drop */
  433. /*              drop actions should be made an enum                         */
  434. /*-----------------------------------------------------------------------*/
  435.  
  436. typedef uint8 HT_DropAction;
  437.  
  438.  
  439. #define DROP_NOT_ALLOWED 0
  440. #define COPY_MOVE_CONTENT 1
  441. #define UPLOAD_RDF       2
  442. #define COPY_MOVE_LINK   3
  443. #define UPLOAD_LFS       4
  444.  
  445. PR_PUBLIC_API(HT_DropAction)   HT_CanDropHTROn(HT_Resource dropTarget, HT_Resource obj); 
  446. PR_PUBLIC_API(HT_DropAction)   HT_CanDropURLOn(HT_Resource dropTarget, char* url); 
  447. PR_PUBLIC_API(HT_DropAction)   HT_DropHTROn(HT_Resource dropTarget, HT_Resource obj); 
  448. PR_PUBLIC_API(HT_DropAction)   HT_DropURLOn(HT_Resource dropTarget, char* url); 
  449. PR_PUBLIC_API(HT_DropAction)   HT_DropURLAndTitleOn(HT_Resource dropTarget,
  450.                             char* url, char *title);
  451.  
  452. PR_PUBLIC_API(HT_DropAction)   HT_CanDropHTRAtPos(HT_Resource dropTarget, HT_Resource obj, 
  453.                           PRBool before); 
  454. PR_PUBLIC_API(HT_DropAction)   HT_CanDropURLAtPos(HT_Resource dropTarget, char* url, 
  455.                           PRBool before); 
  456. PR_PUBLIC_API(HT_DropAction)   HT_DropHTRAtPos(HT_Resource dropTarget, HT_Resource obj, 
  457.                            PRBool before); 
  458. PR_PUBLIC_API(HT_DropAction)   HT_DropURLAtPos(HT_Resource dropTarget, char* url, 
  459.                            PRBool before); 
  460. PR_PUBLIC_API(HT_DropAction)   HT_DropURLAndTitleAtPos(HT_Resource dropTarget,
  461.                             char* url, char *title, PRBool before);
  462.  
  463.  
  464. /*-----------------------------------------------------------------------*/
  465. /*                    Editing                                            */
  466. /*-----------------------------------------------------------------------*/
  467.  
  468. PR_PUBLIC_API(PRBool) HT_RemoveChild  (HT_Resource parent, HT_Resource child);
  469.  
  470.  
  471. /*-----------------------------------------------------------------------*/
  472. /*                    Other                                            */
  473. /*-----------------------------------------------------------------------*/
  474.  
  475.  
  476. PR_PUBLIC_API(RDF) RDF_GetNavCenterDB();
  477. PR_PUBLIC_API(void) HT_InformRDFOfNewDocument(char* address);
  478.  
  479. PR_PUBLIC_API(PRBool) HT_HasHTMLPane(HT_View htView);
  480. PR_PUBLIC_API(void) HT_AddSitemapFor(HT_Pane htPane, char *pUrl, char *pSitemapUrl, char* name);
  481. PR_PUBLIC_API(void) HT_AddRelatedLinksFor(HT_Pane htPane, char *pUrl);
  482. PR_PUBLIC_API(void) HT_ExitPage(HT_Pane htPane, char *pUrl);
  483.  
  484. NSPR_END_EXTERN_C
  485.  
  486. #endif /* htrdf_h___ */
  487.