зеркало из https://github.com/mozilla/pjs.git
Bring toolbar drag/drop back to life.
This commit is contained in:
Родитель
812bf4b807
Коммит
8f9d02cb35
|
@ -42,6 +42,7 @@
|
|||
#include "ToolbarSeparator.h"
|
||||
#include "ToolbarUrlBar.h"
|
||||
#include "ToolbarWindowList.h"
|
||||
#include "ToolbarDrop.h"
|
||||
|
||||
#if DEBUG_radha
|
||||
#define D(x) x
|
||||
|
@ -112,6 +113,17 @@ XFE_RDFToolbar::XFE_RDFToolbar(XFE_Frame * frame,
|
|||
|
||||
setHTView(view);
|
||||
|
||||
|
||||
_toolbarDropSite = new XFE_RDFToolbarDrop(_toolbar, this);
|
||||
_toolbarDropSite->enable();
|
||||
|
||||
// Configure the drop site
|
||||
Arg xargs[1];
|
||||
Cardinal n = 0;
|
||||
|
||||
XtSetArg(xargs[n],XmNanimationStyle, XmDRAG_UNDER_NONE); n++;
|
||||
_toolbarDropSite->update(xargs,n);
|
||||
|
||||
show();
|
||||
|
||||
_frame->registerInterest(XFE_View::commandNeedsUpdating,
|
||||
|
@ -140,6 +152,10 @@ XFE_RDFToolbar::XFE_RDFToolbar(XFE_Frame * frame,
|
|||
|
||||
XFE_RDFToolbar::~XFE_RDFToolbar()
|
||||
{
|
||||
if (_toolbarDropSite)
|
||||
{
|
||||
delete _toolbarDropSite;
|
||||
}
|
||||
_frame->unregisterInterest(XFE_View::commandNeedsUpdating,
|
||||
this,
|
||||
(XFE_FunctionNotification)updateCommand_cb);
|
||||
|
@ -255,6 +271,54 @@ XFE_RDFToolbar::update()
|
|||
#endif /*NOT_YET*/
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
Widget
|
||||
XFE_RDFToolbar::getFirstItem()
|
||||
{
|
||||
return XfeToolBarGetFirstItem(_toolbar);
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
Widget
|
||||
XFE_RDFToolbar::getLastItem()
|
||||
{
|
||||
return XfeToolBarGetLastItem(_toolbar);
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
Widget
|
||||
XFE_RDFToolbar::getIndicatorItem()
|
||||
{
|
||||
return XfeToolBarGetIndicatorItem(_toolbar);
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void
|
||||
XFE_RDFToolbar::configureIndicatorItem(HT_Resource entry)
|
||||
{
|
||||
Widget indicator = getIndicatorItem();
|
||||
|
||||
if (XfeIsAlive(indicator))
|
||||
{
|
||||
Pixmap pixmap = XmUNSPECIFIED_PIXMAP;
|
||||
Pixmap pixmapMask = XmUNSPECIFIED_PIXMAP;
|
||||
Pixmap armedPixmap = XmUNSPECIFIED_PIXMAP;
|
||||
Pixmap armedPixmapMask = XmUNSPECIFIED_PIXMAP;
|
||||
|
||||
if (entry)
|
||||
{
|
||||
XFE_RDFUtils::getPixmapsForEntry(_toolbar,
|
||||
entry,
|
||||
&pixmap,
|
||||
&pixmapMask,
|
||||
&armedPixmap,
|
||||
&armedPixmapMask);
|
||||
}
|
||||
|
||||
XtVaSetValues(indicator,
|
||||
XmNpixmap, pixmap,
|
||||
XmNpixmapMask, pixmapMask,
|
||||
XmNbuttonLayout, XmBUTTON_LABEL_ON_RIGHT,
|
||||
NULL);
|
||||
}
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void
|
||||
XFE_RDFToolbar::notify(HT_Resource n, HT_Event whatHappened)
|
||||
{
|
||||
|
@ -587,6 +651,53 @@ XFE_RDFToolbar::updateAppearance()
|
|||
|
||||
updateRoot();
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//
|
||||
// DND feedback methods
|
||||
//
|
||||
Widget
|
||||
XFE_RDFToolbar::getDropTargetItem()
|
||||
{
|
||||
return _dropTargetItem;
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
unsigned char
|
||||
XFE_RDFToolbar::getDropTargetLocation()
|
||||
{
|
||||
return _dropTargetLocation;
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void
|
||||
XFE_RDFToolbar::setDropTargetItem(Widget item,int x)
|
||||
{
|
||||
assert( XfeIsAlive(item) );
|
||||
|
||||
_dropTargetItem = item;
|
||||
|
||||
_dropTargetLocation = XfeToolBarXYToIndicatorLocation(_toolbar,
|
||||
_dropTargetItem,
|
||||
x,0);
|
||||
|
||||
int position = XfeChildGetIndex(_dropTargetItem);
|
||||
|
||||
XtVaSetValues(_toolbar,
|
||||
XmNindicatorPosition, position,
|
||||
XmNindicatorLocation, _dropTargetLocation,
|
||||
NULL);
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
void
|
||||
XFE_RDFToolbar::clearDropTargetItem()
|
||||
{
|
||||
_dropTargetItem = NULL;
|
||||
|
||||
XtVaSetValues(_toolbar,
|
||||
XmNindicatorPosition, XmINDICATOR_DONT_SHOW,
|
||||
NULL);
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/* static */
|
||||
void
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
class XFE_Frame;
|
||||
class XFE_Logo;
|
||||
class XFE_Toolbox;
|
||||
class XFE_RDFToolbarDrop;
|
||||
|
||||
class XFE_RDFToolbar : public XFE_ToolboxItem,
|
||||
public XFE_RDFMenuToolbarBase
|
||||
|
@ -48,6 +49,12 @@ public:
|
|||
|
||||
virtual ~XFE_RDFToolbar ();
|
||||
|
||||
// Access methods
|
||||
Widget getFirstItem ();
|
||||
Widget getLastItem ();
|
||||
Widget getIndicatorItem ();
|
||||
void configureIndicatorItem (HT_Resource entry);
|
||||
|
||||
#ifdef NOT_YET
|
||||
// update all the commands in the toolbar.
|
||||
XFE_CALLBACK_DECL(update)
|
||||
|
@ -68,6 +75,13 @@ public:
|
|||
//////////////////////////////////////////////////////////////////////
|
||||
static const char * navigateToUrlNotice;
|
||||
|
||||
// DND feedback methods
|
||||
Widget getDropTargetItem ();
|
||||
unsigned char getDropTargetLocation ();
|
||||
|
||||
void setDropTargetItem (Widget item,int x);
|
||||
void clearDropTargetItem ();
|
||||
|
||||
protected:
|
||||
void setRaised (XP_Bool);
|
||||
void destroyToolbarWidgets ();
|
||||
|
@ -86,12 +100,18 @@ protected:
|
|||
virtual void updateRoot ();
|
||||
|
||||
// Gets called to update icon appearance
|
||||
virtual void updateAppearance ();
|
||||
virtual void updateAppearance ();
|
||||
|
||||
private:
|
||||
|
||||
XFE_Frame * _frame;
|
||||
Widget _toolbar;
|
||||
XFE_Frame * _frame;
|
||||
Widget _toolbar;
|
||||
XFE_RDFToolbarDrop * _toolbarDropSite;
|
||||
|
||||
// DND feedback members
|
||||
Widget _dropTargetItem; // The drop target item
|
||||
unsigned char _dropTargetLocation; // The drop target location
|
||||
int _dropTargetPosition; // The drop target position
|
||||
|
||||
// callbacks
|
||||
static void tooltipCB(Widget, XtPointer, XmString *, Boolean *);
|
||||
|
|
|
@ -26,11 +26,10 @@
|
|||
|
||||
#include "MozillaApp.h"
|
||||
#include "ToolbarDrop.h"
|
||||
#ifdef OLD_BOOKMARKS
|
||||
#include "PersonalToolbar.h"
|
||||
#endif /*OLD_BOOKMARKS*/
|
||||
#include "ToolbarItem.h"
|
||||
#include "BookmarkMenu.h"
|
||||
#include "htrdf.h"
|
||||
#include "RDFToolbar.h"
|
||||
#include "RDFUtils.h"
|
||||
|
||||
#include <Xfe/Cascade.h>
|
||||
|
@ -182,52 +181,35 @@ XFE_ToolbarDrop::addEntry(const char * /* address */,const char * /* title */)
|
|||
{
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
#if 0
|
||||
|
||||
//
|
||||
// XFE_PersonalDrop class
|
||||
// XFE_RDFToolbarDrop class
|
||||
//
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
XFE_PersonalDrop::XFE_PersonalDrop(Widget dropWidget,
|
||||
XFE_PersonalToolbar * toolbar) :
|
||||
XFE_RDFToolbarDrop::XFE_RDFToolbarDrop(Widget dropWidget,
|
||||
XFE_RDFToolbar * toolbar) :
|
||||
XFE_ToolbarDrop(dropWidget),
|
||||
_personalToolbar(toolbar),
|
||||
_toolbar(toolbar),
|
||||
_dropWidget(NULL)
|
||||
{
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
XFE_PersonalDrop::~XFE_PersonalDrop()
|
||||
XFE_RDFToolbarDrop::~XFE_RDFToolbarDrop()
|
||||
{
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/* virtual */ void
|
||||
XFE_PersonalDrop::addEntry(const char * address,const char * title)
|
||||
XFE_RDFToolbarDrop::addEntry(const char * address, const char * title)
|
||||
{
|
||||
XP_ASSERT( address != NULL );
|
||||
|
||||
XP_ASSERT( XfeIsAlive(_dropWidget) );
|
||||
XP_ASSERT( _personalToolbar != NULL );
|
||||
XP_ASSERT( _toolbar != NULL );
|
||||
|
||||
char * guessed_title = (char *) title;
|
||||
time_t lastAccess = 0;
|
||||
unsigned char location = _toolbar->getDropTargetLocation();
|
||||
|
||||
// If no title is given, try to guess a decent one
|
||||
if (!guessed_title)
|
||||
{
|
||||
MWContext * context = _personalToolbar->getFrame()->getContext();
|
||||
|
||||
XFE_RDFUtils::guessTitle(context,
|
||||
address,
|
||||
isFromSameShell(),
|
||||
&guessed_title,
|
||||
&lastAccess);
|
||||
}
|
||||
|
||||
XP_ASSERT( guessed_title != NULL );
|
||||
|
||||
unsigned char location = _personalToolbar->getDropTargetLocation();
|
||||
|
||||
// If the drop occurred on a cascade item, then we need to waid for
|
||||
// If the drop occurred on a cascade item, then we need to wait for
|
||||
// the drop operation to complete before posting the submenu id and
|
||||
// allowing the user to place the new bookmark. This will happen
|
||||
// in dropCompolete(). Here, we just install the drop parameters that
|
||||
|
@ -240,20 +222,14 @@ XFE_PersonalDrop::addEntry(const char * address,const char * title)
|
|||
{
|
||||
if (location == XmINDICATOR_LOCATION_BEGINNING)
|
||||
{
|
||||
_personalToolbar->addEntryBefore(address,
|
||||
guessed_title,
|
||||
lastAccess,
|
||||
entry);
|
||||
HT_DropURLAndTitleAtPos(entry, (char*)address, (char*)title, TRUE);
|
||||
|
||||
// Clear drop widget so dropComplete() does not get hosed
|
||||
_dropWidget = NULL;
|
||||
}
|
||||
else if (location == XmINDICATOR_LOCATION_END)
|
||||
{
|
||||
_personalToolbar->addEntryAfter(address,
|
||||
guessed_title,
|
||||
lastAccess,
|
||||
entry);
|
||||
HT_DropURLAndTitleAtPos(entry, (char*)address, (char*)title, FALSE);
|
||||
|
||||
// Clear drop widget so dropComplete() does not get hosed
|
||||
_dropWidget = NULL;
|
||||
|
@ -261,12 +237,10 @@ XFE_PersonalDrop::addEntry(const char * address,const char * title)
|
|||
else if (location == XmINDICATOR_LOCATION_MIDDLE)
|
||||
{
|
||||
// If the folder is empty, then just add the new bm to it
|
||||
if (HT_IsContainer(entry) && !BM_GetChildren(entry))
|
||||
if (HT_IsContainer(entry)
|
||||
&& !XFE_RDFUtils::ht_FolderHasChildren(entry))
|
||||
{
|
||||
_personalToolbar->addEntryToFolder(address,
|
||||
guessed_title,
|
||||
lastAccess,
|
||||
entry);
|
||||
HT_DropURLAndTitleOn(entry,(char*)address, (char*)title);
|
||||
|
||||
// Clear drop widget so dropComplete() does not get hosed
|
||||
_dropWidget = NULL;
|
||||
|
@ -274,9 +248,8 @@ XFE_PersonalDrop::addEntry(const char * address,const char * title)
|
|||
// Otherwise need to popup the bookmark placement gui later
|
||||
else
|
||||
{
|
||||
_personalToolbar->setDropAddress(address);
|
||||
_personalToolbar->setDropTitle(guessed_title);
|
||||
_personalToolbar->setDropLastAccess(lastAccess);
|
||||
_toolbar->setDropAddress((char*)address);
|
||||
_toolbar->setDropTitle((char*)title);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -291,21 +264,15 @@ XFE_PersonalDrop::addEntry(const char * address,const char * title)
|
|||
{
|
||||
if (location == XmINDICATOR_LOCATION_BEGINNING)
|
||||
{
|
||||
_personalToolbar->addEntryBefore(address,
|
||||
guessed_title,
|
||||
lastAccess,
|
||||
entry);
|
||||
HT_DropURLAndTitleAtPos(entry, (char*)address, (char*)title, TRUE);
|
||||
}
|
||||
else if (location == XmINDICATOR_LOCATION_END)
|
||||
{
|
||||
_personalToolbar->addEntryAfter(address,
|
||||
guessed_title,
|
||||
lastAccess,
|
||||
entry);
|
||||
HT_DropURLAndTitleAtPos(entry, (char*)address, (char*)title, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
_personalToolbar->addEntry(address,guessed_title,lastAccess);
|
||||
HT_DropURLAndTitleAtPos(entry, (char*)address, (char*)title, FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -325,9 +292,9 @@ XFE_PersonalDrop::addEntry(const char * address,const char * title)
|
|||
}
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/* virtual */ void
|
||||
XFE_PersonalDrop::dropComplete()
|
||||
XFE_RDFToolbarDrop::dropComplete()
|
||||
{
|
||||
_personalToolbar->clearDropTargetItem();
|
||||
_toolbar->clearDropTargetItem();
|
||||
|
||||
// If the drop widget is still alive and kicking, it means that a drop
|
||||
// occurred on a cascade item. Here we deal with this unique case.
|
||||
|
@ -343,7 +310,7 @@ XFE_PersonalDrop::dropComplete()
|
|||
XfeSleep(_dropWidget,fe_EventLoop,DROP_POST_SLEEP_LENGTH);
|
||||
|
||||
// Enable dropping into the personal toolbar
|
||||
_personalToolbar->enableDropping();
|
||||
_toolbar->enableDropping();
|
||||
|
||||
// Arm and post the cascade. Once the cascade button's submenu id
|
||||
// is posted, the bookmark menu items it manages will detect
|
||||
|
@ -362,21 +329,21 @@ XFE_PersonalDrop::dropComplete()
|
|||
}
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/* virtual */ void
|
||||
XFE_PersonalDrop::dragIn()
|
||||
XFE_RDFToolbarDrop::dragIn()
|
||||
{
|
||||
dragMotion();
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/* virtual */ void
|
||||
XFE_PersonalDrop::dragOut()
|
||||
XFE_RDFToolbarDrop::dragOut()
|
||||
{
|
||||
_dropWidget = _personalToolbar->getDropTargetItem();
|
||||
_dropWidget = _toolbar->getDropTargetItem();
|
||||
|
||||
_personalToolbar->clearDropTargetItem();
|
||||
_toolbar->clearDropTargetItem();
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/* virtual */ void
|
||||
XFE_PersonalDrop::dragMotion()
|
||||
XFE_RDFToolbarDrop::dragMotion()
|
||||
{
|
||||
// Try to find an item at the X,Y that the motion occured
|
||||
Widget target = XfeDescendantFindByCoordinates(_widget,
|
||||
|
@ -385,39 +352,36 @@ XFE_PersonalDrop::dragMotion()
|
|||
|
||||
|
||||
// If we found the indicator, ignore it
|
||||
if (target != _personalToolbar->getIndicatorItem())
|
||||
if (target != _toolbar->getIndicatorItem())
|
||||
{
|
||||
// If an item is found, use it as the target
|
||||
if (XfeIsAlive(target))
|
||||
{
|
||||
_personalToolbar->setDropTargetItem(target,
|
||||
_dropEventX - XfeX(target));
|
||||
_toolbar->setDropTargetItem(target, _dropEventX - XfeX(target));
|
||||
|
||||
// The argument should really be a (HT_Resource)
|
||||
_personalToolbar->configureIndicatorItem(NULL);
|
||||
_toolbar->configureIndicatorItem(NULL);
|
||||
}
|
||||
// Otherwise use the last item
|
||||
else
|
||||
{
|
||||
Widget last = _personalToolbar->getLastItem();
|
||||
Widget last = _toolbar->getLastItem();
|
||||
|
||||
// The 10000 forces the position to be at the END of the item
|
||||
if (XfeIsAlive(last))
|
||||
{
|
||||
_personalToolbar->setDropTargetItem(last,10000);
|
||||
_toolbar->setDropTargetItem(last,10000);
|
||||
|
||||
// The argument should really be a (HT_Resource)
|
||||
_personalToolbar->configureIndicatorItem(NULL);
|
||||
_toolbar->configureIndicatorItem(NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Assign the drop widget so that addEntry() can do its magic
|
||||
_dropWidget = _personalToolbar->getDropTargetItem();
|
||||
_dropWidget = _toolbar->getDropTargetItem();
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
#if 0
|
||||
//
|
||||
// XFE_PersonalTabDrop class
|
||||
//
|
||||
|
@ -425,9 +389,10 @@ XFE_PersonalDrop::dragMotion()
|
|||
//////////////////////////////////////////////////////////////////////////
|
||||
XFE_PersonalTabDrop::XFE_PersonalTabDrop(Widget dropWidget,
|
||||
XFE_PersonalToolbar * toolbar) :
|
||||
XFE_PersonalDrop(dropWidget,toolbar)
|
||||
XFE_RDFToolbarDrop(dropWidget,toolbar)
|
||||
{
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
XFE_PersonalTabDrop::~XFE_PersonalTabDrop()
|
||||
{
|
||||
|
@ -438,7 +403,7 @@ XFE_PersonalTabDrop::addEntry(const char * address,const char * title)
|
|||
{
|
||||
XP_ASSERT( address != NULL );
|
||||
|
||||
XP_ASSERT( _personalToolbar != NULL );
|
||||
XP_ASSERT( _toolbar != NULL );
|
||||
|
||||
char * guessed_title = (char *) title;
|
||||
time_t lastAccess = 0;
|
||||
|
@ -446,7 +411,7 @@ XFE_PersonalTabDrop::addEntry(const char * address,const char * title)
|
|||
// If no title is given, try to guess a decent one
|
||||
if (!guessed_title)
|
||||
{
|
||||
XFE_BookmarkBase::guessTitle(_personalToolbar->getFrame(),
|
||||
XFE_BookmarkBase::guessTitle(_toolbar->getFrame(),
|
||||
address,
|
||||
isFromSameShell(),
|
||||
&guessed_title,
|
||||
|
@ -465,7 +430,7 @@ XFE_PersonalTabDrop::addEntry(const char * address,const char * title)
|
|||
// If the first entry exists, add the new entry before it
|
||||
if (entry)
|
||||
{
|
||||
_personalToolbar->addEntryBefore(address,
|
||||
_toolbar->addEntryBefore(address,
|
||||
guessed_title,
|
||||
lastAccess,
|
||||
entry);
|
||||
|
@ -473,7 +438,7 @@ XFE_PersonalTabDrop::addEntry(const char * address,const char * title)
|
|||
// Otherwise add the entry to the personal toolbar folder
|
||||
else
|
||||
{
|
||||
_personalToolbar->addEntry(address,guessed_title,lastAccess);
|
||||
_toolbar->addEntry(address,guessed_title,lastAccess);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -491,15 +456,15 @@ XFE_PersonalTabDrop::dropComplete()
|
|||
XFE_PersonalTabDrop::dragIn()
|
||||
{
|
||||
|
||||
Widget first = _personalToolbar->getFirstItem();
|
||||
Widget first = _toolbar->getFirstItem();
|
||||
|
||||
// The 0 forces the position to be at the first
|
||||
if (XfeIsAlive(first))
|
||||
{
|
||||
_personalToolbar->setDropTargetItem(first,0);
|
||||
_toolbar->setDropTargetItem(first,0);
|
||||
|
||||
// The argument should really be a (HT_Resource)
|
||||
_personalToolbar->configureIndicatorItem(NULL);
|
||||
_toolbar->configureIndicatorItem(NULL);
|
||||
}
|
||||
|
||||
XfeTabDrawRaised(_widget,True);
|
||||
|
@ -510,7 +475,7 @@ XFE_PersonalTabDrop::dragOut()
|
|||
{
|
||||
XfeTabDrawRaised(_widget,False);
|
||||
|
||||
_personalToolbar->clearDropTargetItem();
|
||||
_toolbar->clearDropTargetItem();
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
/* virtual */ void
|
||||
|
|
|
@ -59,17 +59,18 @@ private:
|
|||
};
|
||||
|
||||
//
|
||||
// XFE_PersonalDrop class
|
||||
// XFE_RDFToolbarDrop class
|
||||
//
|
||||
#if 0
|
||||
class XFE_PersonalDrop : public XFE_ToolbarDrop
|
||||
class XFE_RDFToolbar;
|
||||
|
||||
class XFE_RDFToolbarDrop : public XFE_ToolbarDrop
|
||||
{
|
||||
public:
|
||||
|
||||
XFE_PersonalDrop (Widget dropWidget,
|
||||
XFE_PersonalToolbar * toolbar);
|
||||
XFE_RDFToolbarDrop (Widget dropWidget,
|
||||
XFE_RDFToolbar * toolbar);
|
||||
|
||||
virtual ~XFE_PersonalDrop ();
|
||||
virtual ~XFE_RDFToolbarDrop ();
|
||||
|
||||
protected:
|
||||
|
||||
|
@ -81,15 +82,16 @@ protected:
|
|||
|
||||
protected:
|
||||
|
||||
XFE_PersonalToolbar * _personalToolbar;
|
||||
Widget _dropWidget;
|
||||
XFE_RDFToolbar * _toolbar;
|
||||
Widget _dropWidget;
|
||||
};
|
||||
|
||||
#if 0
|
||||
//
|
||||
// XFE_PersonalTabDrop class
|
||||
//
|
||||
|
||||
class XFE_PersonalTabDrop : public XFE_PersonalDrop
|
||||
class XFE_PersonalTabDrop : public XFE_RDFToolbarDrop
|
||||
{
|
||||
public:
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче