source: trunk/desktop/idl/wpfolderwindow.idl@ 247

Last change on this file since 247 was 246, checked in by cinc, 19 years ago

Added new method wpConnectDefaultSignalHandlers() to WPFolderWindow.

File size: 5.1 KB
Line 
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) 2005-2006
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/** \file
36
37*/
38
39#ifndef WPFLDRWINDOW_IDL_INCLUDED
40#define WPFLDRWINDOW_IDL_INCLUDED
41
42/* FIXME: this is an ugly hack to prevent inclusion of the
43 wpnotebook.idl file in wpobject.idl which is included
44 from wpwindow.idl. wpnotebook doesn't find the WPWindow
45 class because it's defined later. This inclusion mess must be
46 cleaned up.*/
47#ifndef WPNOTEBOOK_IDL_INCLUDED
48#define WPNOTEBOOK_IDL_INCLUDED
49native PWPNoteBook;
50#endif
51
52#include <nomobj.idl>
53
54NOMCLASSNAME(WPFolderWindow);
55
56#include "wpwindow.idl"
57
58/** \interface WPFolderWindow
59
60 Default desktop window used by folders to show objects to the user.
61 It's essential that the WPFolder owning the WPFolderWindow is set
62 into the instance variable by using wpSetObject() a method inherited
63 from WPWindow.
64
65 This class can be used as a base class for window classes which will
66 be used for folder windows. When creating a new class override nomInit()
67 and create your window. Be sure to have at least one container window as
68 a child of the toplevel window which will hold the folders objects. Save
69 the handle to this container using wpSetContainerHandle(). Default drag and
70 drop behaviour for desktop objects can easily be added by calling
71 wpConnectDefaultSignalHandlers() with the created container handle.
72
73 There is no limitation on the number of containers held by the toplevel
74 window. Each of these containers can be drag and drop enabled for desktop
75 objects.
76
77
78 */
79interface WPFolderWindow : WPWindow
80{
81 NOMCLASSVERSION(1, 0);
82
83 /**
84 Query the handle to the container holding the objects.
85
86 \par How to override:
87 This method is usually not overriden.
88
89 \sa wpSetContainerHandle()
90 */
91 PGtkWidget wpQueryContainerHandle();
92
93 /**
94 Set the container handle of this folder window into the instance variable.
95
96 \remarks Always use this method to save the handle to the folder container.
97 While it's possible to write to the instance variable from within nomInit()
98 (where the toplevel window is created with at least one container window as a
99 child), using this methods gives subclasses the chance to alter the container
100 by overriding this method.
101
102 \param pgWidget Handle to a container window (usually GtkIconView)
103
104 \sa wpQueryContainerHandle()
105 */
106 void wpSetContainerHandle(in PGtkWidget pgWidget);
107
108 /**
109 Connect signal handlers with the given container which enable drag and drop
110 of desktop objects and context menus.
111
112 \remarks Using this method every container window (don't confuse that with GtkContainer)
113 can be enabled for drag and drop of desktop objects. Default context menu behaviour
114 known by desktop object will be enabled, too. There's no limit on the number
115 of containers in a folder window.
116
117 \par How to override:
118 This method can be overriden if additional signal handlers should be connected to the
119 container.
120
121 \param pgWidget Container window handle. This is for example an icon view.
122
123 \sa wpSetContainerHandle()
124 */
125 void wpConnectDefaultSignalHandlers(in PGtkWidget pgWidget);
126
127 /**
128 Override which creates a toplevel window with a container for icons.
129 */
130 NOMOVERRIDE(nomInit);
131
132 /**
133 This variable holds the container window handle (normaly a handle of a GtkIconView).
134
135 \sa wpSetContainerHandle(), wpQueryContainerHandle()
136 */
137 NOMINSTANCEVAR(PGtkWidget pgContainerHandle);
138};
139
140#endif /* WPFLDRWINDOW_IDL_INCLUDED */
141
142
143
144
145
146
Note: See TracBrowser for help on using the repository browser.