| [241] | 1 | /* ***** BEGIN LICENSE BLOCK *****
 | 
|---|
 | 2 | * Version: CDDL 1.0/LGPL 2.1
 | 
|---|
 | 3 | *
 | 
|---|
 | 4 | * The contents of this file are subject to the COMMON DEVELOPMENT AND
 | 
|---|
 | 5 | * DISTRIBUTION LICENSE (CDDL) Version 1.0 (the "License"); you may not use
 | 
|---|
 | 6 | * this file except in compliance with the License. You may obtain a copy of
 | 
|---|
 | 7 | * the License at http://www.sun.com/cddl/
 | 
|---|
 | 8 | *
 | 
|---|
 | 9 | * Software distributed under the License is distributed on an "AS IS" basis,
 | 
|---|
 | 10 | * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 | 
|---|
 | 11 | * for the specific language governing rights and limitations under the
 | 
|---|
 | 12 | * License.
 | 
|---|
 | 13 | *
 | 
|---|
 | 14 | * The Original Code is "NOM" Netlabs Object Model
 | 
|---|
 | 15 | *
 | 
|---|
 | 16 | * The Initial Developer of the Original Code is
 | 
|---|
 | 17 | * netlabs.org: Chris Wohlgemuth <cinc-ml@netlabs.org>.
 | 
|---|
 | 18 | * Portions created by the Initial Developer are Copyright (C) 2007
 | 
|---|
 | 19 | * the Initial Developer. All Rights Reserved.
 | 
|---|
 | 20 | *
 | 
|---|
 | 21 | * Contributor(s):
 | 
|---|
 | 22 | *
 | 
|---|
 | 23 | * Alternatively, the contents of this file may be used under the terms of
 | 
|---|
 | 24 | * the GNU Lesser General Public License Version 2.1 (the "LGPL"), in which
 | 
|---|
 | 25 | * case the provisions of the LGPL are applicable instead of those above. If
 | 
|---|
 | 26 | * you wish to allow use of your version of this file only under the terms of
 | 
|---|
 | 27 | * the LGPL, and not to allow others to use your version of this file under
 | 
|---|
 | 28 | * the terms of the CDDL, indicate your decision by deleting the provisions
 | 
|---|
 | 29 | * above and replace them with the notice and other provisions required by the
 | 
|---|
 | 30 | * LGPL. If you do not delete the provisions above, a recipient may use your
 | 
|---|
 | 31 | * version of this file under the terms of any one of the CDDL or the LGPL.
 | 
|---|
 | 32 | *
 | 
|---|
 | 33 | * ***** END LICENSE BLOCK ***** */
 | 
|---|
 | 34 | 
 | 
|---|
 | 35 | #ifndef NOMDRAGINFO_IDL_INCLUDED
 | 
|---|
 | 36 | #define NOMDRAGINFO_IDL_INCLUDED
 | 
|---|
 | 37 | 
 | 
|---|
 | 38 | #include "wpfolder.idl"
 | 
|---|
 | 39 | 
 | 
|---|
 | 40 | NOMCLASSNAME(NOMDragInfo);
 | 
|---|
 | 41 | 
 | 
|---|
 | 42 | interface NOMDragInfo : NOMObject
 | 
|---|
 | 43 | {
 | 
|---|
| [288] | 44 | #ifdef __NOM_IDL_COMPILER__
 | 
|---|
 | 45 |   filestem=nomdraginfo;
 | 
|---|
 | 46 | #endif
 | 
|---|
| [241] | 47 |   /**
 | 
|---|
 | 48 |      Current class version is 1.0
 | 
|---|
 | 49 |    */
 | 
|---|
 | 50 |   NOMCLASSVERSION(1, 0);
 | 
|---|
 | 51 | 
 | 
|---|
 | 52 |   /**
 | 
|---|
 | 53 |     Query the number of items currently dragged.
 | 
|---|
 | 54 | 
 | 
|---|
 | 55 |     \return Number of items dragged.
 | 
|---|
 | 56 |   */
 | 
|---|
 | 57 |   gulong queryNumDragItems();
 | 
|---|
 | 58 | 
 | 
|---|
 | 59 |   /**
 | 
|---|
 | 60 | 
 | 
|---|
 | 61 |   */
 | 
|---|
 | 62 |   gulong addWPObjectToItemList(in PWPObject wpObject, in PWPFolder wpFolder,
 | 
|---|
 | 63 |                                in PGtkWidget wgtSource);
 | 
|---|
 | 64 |   /**
 | 
|---|
 | 65 |     Delete all information about items. This method can be used to reset the
 | 
|---|
 | 66 |     internal list of dragged items.
 | 
|---|
 | 67 |   */
 | 
|---|
 | 68 |   void deleteAllDragItems();
 | 
|---|
 | 69 | 
 | 
|---|
 | 70 |   /**
 | 
|---|
 | 71 |     Check if the item at index ulIdx is a desktop object.
 | 
|---|
 | 72 | 
 | 
|---|
 | 73 |     \param ulIdx The index into the array of dragged items. The index starts with 0.
 | 
|---|
 | 74 | 
 | 
|---|
 | 75 |     \return TRUE if the indexed item is a desktop object.
 | 
|---|
 | 76 |   */
 | 
|---|
 | 77 |   boolean queryIsItemWPObject(in gulong ulIdx);
 | 
|---|
 | 78 | 
 | 
|---|
 | 79 |   /**
 | 
|---|
 | 80 |     Query a desktop object from the current set of dragged items.
 | 
|---|
 | 81 |     
 | 
|---|
 | 82 |     \param ulIdx The index into the array of dragged items. The index starts with 0.    
 | 
|---|
 | 83 | 
 | 
|---|
 | 84 |     \return
 | 
|---|
 | 85 |     The object at the index ulIdx in the current drag set. If the index
 | 
|---|
 | 86 |     is out of range or the item is not a desktop object NULL is returned.
 | 
|---|
 | 87 | 
 | 
|---|
 | 88 |   */
 | 
|---|
 | 89 |   PWPObject queryWPObjectFromItemList(in gulong ulIdx);
 | 
|---|
 | 90 | 
 | 
|---|
 | 91 |   /**
 | 
|---|
 | 92 |     Set the GdkDragInfo pointer into the instance var for later use. This
 | 
|---|
 | 93 |     strukture is used during drag and drop handling of GTK.
 | 
|---|
 | 94 |   */
 | 
|---|
 | 95 |   void setGdkDragContextPointer(in PGdkDragContext gdkDragContext);
 | 
|---|
 | 96 | 
 | 
|---|
 | 97 |   PGtkWidget querySourceWidgetHandle(in gulong ulIdx);
 | 
|---|
 | 98 | 
 | 
|---|
 | 99 |   /**
 | 
|---|
 | 100 |     The source object where the draged item is coming from is not ncessarily a WPFolder.
 | 
|---|
 | 101 |   */
 | 
|---|
 | 102 |   PWPObject querySourceWPObject(in gulong ulIdx);
 | 
|---|
 | 103 | 
 | 
|---|
 | 104 |   GdkDragAction queryChosenDropAction();
 | 
|---|
 | 105 | 
 | 
|---|
 | 106 |   NOMOVERRIDE(nomInit);
 | 
|---|
 | 107 | 
 | 
|---|
 | 108 |   /**
 | 
|---|
 | 109 |     Private array holding the items being dragged. It's not possible to access
 | 
|---|
 | 110 |     this array directly from the outside.
 | 
|---|
 | 111 |   */
 | 
|---|
 | 112 |   NOMINSTANCEVAR(PGArray arrayDragItems);
 | 
|---|
 | 113 | 
 | 
|---|
 | 114 |   /**
 | 
|---|
 | 115 |     Private pointer to the GdkDragContext used during a drag.
 | 
|---|
 | 116 |   */
 | 
|---|
 | 117 |   NOMINSTANCEVAR(PGdkDragContext dragContext);
 | 
|---|
 | 118 | };
 | 
|---|
 | 119 | 
 | 
|---|
 | 120 | #endif  /* NOMDRAGINFO_IDL_INCLUDED */
 | 
|---|
 | 121 | 
 | 
|---|
 | 122 | 
 | 
|---|
 | 123 | 
 | 
|---|
 | 124 | 
 | 
|---|
 | 125 | 
 | 
|---|
 | 126 | 
 | 
|---|