From 4aed2c8219774f5d797760606b8489a92ddc5163 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kicker/kicker/core/container_base.cpp | 139 ++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 kicker/kicker/core/container_base.cpp (limited to 'kicker/kicker/core/container_base.cpp') diff --git a/kicker/kicker/core/container_base.cpp b/kicker/kicker/core/container_base.cpp new file mode 100644 index 000000000..cadbe592a --- /dev/null +++ b/kicker/kicker/core/container_base.cpp @@ -0,0 +1,139 @@ +/***************************************************************** + +Copyright (c) 1996-2000 the kicker authors. See file AUTHORS. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +******************************************************************/ + +#include + +#include +#include +#include + +#include "global.h" +#include "appletop_mnu.h" +#include "kicker.h" + +#include "container_base.h" +#include "container_base.moc" + +BaseContainer::BaseContainer( QPopupMenu* appletOpMenu, QWidget* parent, const char * name ) + : QWidget( parent, name ) + , _dir(KPanelApplet::Up) + , _orient(Horizontal) + , _alignment(KPanelExtension::LeftTop) + , _fspace(0) + , _moveOffset(QPoint(0,0)) + , _aid(QString::null) + , _actions(0) + , m_immutable(false) + , _opMnu(0) + , _appletOpMnu(appletOpMenu) +{} + +BaseContainer::~BaseContainer() +{ + delete _opMnu; +} + +void BaseContainer::reparent(QWidget* parent, WFlags f, const QPoint& p, bool showIt) +{ + emit takeme(this); + QWidget::reparent(parent, f, p, showIt); +} + +bool BaseContainer::isImmutable() const +{ + return m_immutable || Kicker::the()->isImmutable(); +} + +void BaseContainer::setImmutable(bool immutable) +{ + m_immutable = immutable; + clearOpMenu(); +} + +void BaseContainer::loadConfiguration( KConfigGroup& group ) +{ + setFreeSpace( QMIN( group.readDoubleNumEntry( "FreeSpace2", 0 ), 1 ) ); + doLoadConfiguration( group ); +} + +void BaseContainer::saveConfiguration(KConfigGroup& group, + bool layoutOnly) const +{ + if (isImmutable()) + { + return; + } + + // write positioning info + group.writeEntry( "FreeSpace2", freeSpace() ); + // write type specific info + doSaveConfiguration( group, layoutOnly ); +} + +void BaseContainer::configure(KPanelExtension::Orientation o, + KPanelApplet::Direction d) +{ + setBackgroundOrigin(AncestorOrigin); + setOrientation(o); + setPopupDirection(d); + configure(); +} + +void BaseContainer::slotRemoved(KConfig* config) +{ + if (!config) + { + config = KGlobal::config(); + } + + config->deleteGroup(appletId().latin1()); + config->sync(); +} + +void BaseContainer::setAlignment(KPanelExtension::Alignment a) +{ + if (_alignment == a) + { + return; + } + + _alignment = a; + alignmentChange(a); +} + +QPopupMenu* BaseContainer::opMenu() +{ + if (_opMnu == 0) + { + _opMnu = createOpMenu(); + } + + return KickerLib::reduceMenu(_opMnu); +} + +void BaseContainer::clearOpMenu() +{ + delete _opMnu; + _opMnu = 0; +} + -- cgit v1.2.3