/usr/include/MYGUI/MyGUI_DDContainer.h is in libmygui-dev 3.2.0-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 | /*!
@file
@author Albert Semenov
@date 10/2008
*/
/*
This file is part of MyGUI.
MyGUI is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
MyGUI is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with MyGUI. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __MYGUI_DDCONTAINER_H__
#define __MYGUI_DDCONTAINER_H__
#include "MyGUI_Prerequest.h"
#include "MyGUI_Widget.h"
#include "MyGUI_DDItemInfo.h"
#include "MyGUI_EventPair.h"
namespace MyGUI
{
typedef delegates::CMultiDelegate3<DDContainer*, const DDItemInfo&, bool&> EventHandle_DDContainerPtrCDDItemInfoRefBoolRef;
typedef delegates::CMultiDelegate3<DDContainer*, const DDItemInfo&, bool> EventHandle_DDContainerPtrCDDItemInfoRefBool;
typedef delegates::CMultiDelegate2<DDContainer*, DDItemState> EventHandle_EventHandle_DDContainerPtrDDItemState;
typedef delegates::CDelegate3<DDContainer*, Widget*&, IntCoord&> EventHandle_EventHandle_DDContainerPtrWidgetPtrRefIntCoordRef;
class MYGUI_EXPORT DDContainer :
public Widget
{
MYGUI_RTTI_DERIVED( DDContainer )
public:
DDContainer();
/** Set drag'n'drop mode flag.
Disabled (false) by default.
*/
void setNeedDragDrop(bool _value);
/** Get drag'n'drop mode flag */
bool getNeedDragDrop() const;
void resetDrag();
/*events:*/
/** Event : Request for start drag.\n
signature : void method(MyGUI::DDContainer* _sender, const MyGUI::DDItemInfo& _info, bool& _result)
@param _sender widget that called this event
@param _info information about DDContainers
@param _result write here true if container can be draggedor false if it can't
*/
EventHandle_DDContainerPtrCDDItemInfoRefBoolRef
eventStartDrag;
/** Event : Request for start drop (moving mouse over container, but not dropped yet).\n
signature : void method(MyGUI::DDContainer* _sender, const MyGUI::DDItemInfo& _info, bool& _result)
@param _sender widget that called this event
@param _info information about DDContainers
@param _result write here true if container accept dragged widget or false if it isn't
*/
EventHandle_DDContainerPtrCDDItemInfoRefBoolRef
eventRequestDrop;
/** Event : End drag (drop).\n
signature : void method(MyGUI::DDContainer* _sender, const MyGUI::DDItemInfo& _info, bool _result)
@param _sender widget that called this event
@param _info information about DDContainers
@param _result if true then drop was successfull
*/
EventHandle_DDContainerPtrCDDItemInfoRefBool
eventDropResult;
/** Event : Drag'n'drop state changed.\n
signature : void method(MyGUI::DDContainer* _sender, MyGUI::DDItemState _state)
@param _sender widget that called this event
@param _state new state
*/
EventHandle_EventHandle_DDContainerPtrDDItemState
eventChangeDDState;
/** Event : [not used] Request widget for dragging.\n
signature : void method(MyGUI::DDContainer* _sender, MyGUI::Widget*& _item, MyGUI::IntCoord& _dimension)
@param _sender widget that called this event
@param _item write widget pointer here
@param _dimension write widget coordinate here
*/
EventHandle_EventHandle_DDContainerPtrWidgetPtrRefIntCoordRef
requestDragWidgetInfo;
/*internal:*/
// метод для установления стейта айтема
virtual void _setContainerItemInfo(size_t _index, bool _set, bool _accept);
/** Event : [Internal event] невалидна информация для контейнера.\n
signature : void method(MyGUI::DDContainer* _sender)
@param _sender widget that called this event
*/
delegates::CMultiDelegate1<DDContainer*>
_eventInvalideContainer;
/** Event : [Internal event] !!обновить виджеты дропа DD_FIXME наверное internal.\n
signature : void method(MyGUI::DDContainer* _sender, MyGUI::Widget* _item, const MyGUI::DDWidgetState& _state)
@param _sender widget that called this event
@param _items
@param _state
*/
delegates::CMultiDelegate3<DDContainer*, Widget*, const DDWidgetState&>
eventUpdateDropState;
protected:
virtual void onMouseButtonPressed(int _left, int _top, MouseButton _id);
virtual void onMouseButtonReleased(int _left, int _top, MouseButton _id);
virtual void onMouseDrag(int _left, int _top, MouseButton _id);
virtual void notifyInvalideDrop(DDContainer* _sender);
virtual void removeDropItems();
virtual void updateDropItems();
virtual void updateDropItemsState(const DDWidgetState& _state);
void mouseDrag(MouseButton _id);
void mouseButtonReleased(MouseButton _id);
void mouseButtonPressed(MouseButton _id);
void endDrop(bool _reset);
virtual void setPropertyOverride(const std::string& _key, const std::string& _value);
protected:
bool mDropResult;
bool mNeedDrop;
bool mStartDrop;
Widget* mOldDrop;
Widget* mCurrentSender;
DDItemInfo mDropInfo;
size_t mDropSenderIndex;
// список виджетов для дропа
Widget* mDropItem;
IntCoord mDropDimension;
IntPoint mClickInWidget;
// нужно и виджету поддержка драг энд дропа
bool mNeedDragDrop;
DDContainer* mReseiverContainer;
};
} // namespace MyGUI
#endif // __MYGUI_DDCONTAINER_H__
|