summaryrefslogtreecommitdiffstats
path: root/kicker
diff options
context:
space:
mode:
Diffstat (limited to 'kicker')
-rw-r--r--kicker/kicker/buttons/knewbutton.cpp273
-rw-r--r--kicker/kicker/buttons/knewbutton.h26
-rw-r--r--kicker/kicker/ui/k_new_mnu.cpp5
3 files changed, 29 insertions, 275 deletions
diff --git a/kicker/kicker/buttons/knewbutton.cpp b/kicker/kicker/buttons/knewbutton.cpp
index a05027628..df9463639 100644
--- a/kicker/kicker/buttons/knewbutton.cpp
+++ b/kicker/kicker/buttons/knewbutton.cpp
@@ -55,26 +55,28 @@ KNewButton::KNewButton( TQWidget* parent )
: KButton( parent ),
m_oldPos(0,0)
{
+
+ setTitle(i18n("K Menu"));
Q_ASSERT( !m_self );
m_self = this;
- m_hoverTimer = -1;
m_openTimer = -1;
- m_active = false;
+ m_hoverTimer = -1;
m_mouseInside = false;
m_drag = false;
-
- setIconAlignment((TQ_Alignment)(AlignTop|AlignRight));
- setAcceptDrops(true);
- setIcon("kmenu-suse");
- setDrawArrow(false);
-
- m_movie = new TQMovie(locate("data", "kicker/pics/kmenu_basic.mng"));
- m_movie->connectUpdate(this, TQT_SLOT(updateMovie()));
- m_movie->connectStatus(TQT_TQOBJECT(this), TQT_SLOT(slotStatus(int)));
- m_movie->connectResize(this, TQT_SLOT(slotSetSize(const TQSize&)));
-
+
+ setIcon("kmenu");
+ setIcon(KickerSettings::customKMenuIcon());
+
TQApplication::desktop()->screen()->installEventFilter(this);
- setMouseTracking(true);
+
+ if (KickerSettings::showKMenuText())
+ {
+ setButtonText(KickerSettings::kMenuText());
+ setFont(KickerSettings::buttonFont());
+ setTextColor(KickerSettings::buttonTextColor());
+ }
+
+ tqrepaint();
}
KNewButton::~KNewButton()
@@ -82,28 +84,15 @@ KNewButton::~KNewButton()
if ( m_self == this )
m_self = 0;
setMouseTracking(false);
- delete m_movie;
}
-void KNewButton::slotStatus(int status)
-{
- if(status == TQMovie::EndOfLoop)
- slotStopAnimation();
-}
-TQColor KNewButton::borderColor() const
+void KNewButton::drawButton(TQPainter *p)
{
- TQImage img = m_active_pixmap.convertToImage();
-
- for (int i = 0; i < img.width(); ++i) {
- QRgb rgb = img.pixel(orientation() == Qt::Horizontal ? img.width() - i - 1 :
- i, 2);
-
- if (tqGreen(rgb) > 0x50)
- return rgb;
- }
-
- return img.pixel( orientation() == Qt::Horizontal ? img.width() - 2 : 2, 2);
+ if (KickerSettings::showDeepButtons())
+ PanelPopupButton::drawDeepButton(p);
+ else
+ PanelPopupButton::drawButton(p);
}
void KNewButton::show()
@@ -111,103 +100,12 @@ void KNewButton::show()
KButton::show();
if (KickerSettings::firstRun()) {
- TQTimer::singleShot(500,this,TQT_SLOT(slotExecMenu()));
+ TQTimer::singleShot(0,this,TQT_SLOT(slotExecMenu()));
KickerSettings::setFirstRun(false);
KickerSettings::writeConfig();
}
}
-void KNewButton::updateMovie()
-{
- m_oldPos = TQPoint( -1, -1 );
- drawEye();
-
- if (!m_active && m_movie->running())
- m_movie->pause();
-}
-
-void KNewButton::setPopupDirection(KPanelApplet::Direction d)
-{
- KButton::setPopupDirection(d);
-
- delete m_movie;
-
- switch (d) {
- case KPanelApplet::Left:
- setIconAlignment((TQ_Alignment)(AlignTop|AlignLeft));
- m_movie = new TQMovie(locate("data", "kicker/pics/kmenu_vertical.mng"));
- break;
- case KPanelApplet::Right:
- setIconAlignment((TQ_Alignment)(AlignTop|AlignRight));
- m_movie = new TQMovie(locate("data", "kicker/pics/kmenu_vertical.mng"));
- break;
- case KPanelApplet::Up:
- setIconAlignment((TQ_Alignment)(AlignTop|AlignHCenter));
- m_movie = new TQMovie(locate("data", "kicker/pics/kmenu_basic.mng"));
- break;
- case KPanelApplet::Down:
- setIconAlignment((TQ_Alignment)(AlignBottom|AlignHCenter));
- m_movie = new TQMovie(locate("data", "kicker/pics/kmenu_flipped.mng"));
- }
-
- m_movie->connectUpdate(this, TQT_SLOT(updateMovie()));
- m_movie->connectStatus(TQT_TQOBJECT(this), TQT_SLOT(slotStatus(int)));
- m_movie->connectResize(this, TQT_SLOT(slotSetSize(const TQSize&)));
-}
-
-void KNewButton::slotSetSize(const TQSize& s)
-{
- m_iconSize = s;
-}
-
-double KNewButton::buttonScaleFactor(const TQSize& s) const
-{
- double sf = 1.0;
-
- switch (popupDirection()) {
- case KPanelApplet::Left:
- case KPanelApplet::Right:
-// sf = kMin(double(s.width()) / m_iconSize.height(), double(s.height()) / m_iconSize.width());
-// break;
- case KPanelApplet::Up:
- case KPanelApplet::Down:
- sf = kMin(double(s.width()) / m_iconSize.width(), double(s.height()) / m_iconSize.height());
- break;
- }
-
- if (sf > 0.8) sf = 1.0;
- return sf;
-}
-
-int KNewButton::widthForHeight(int height) const
-{
- int r = m_iconSize.width() * buttonScaleFactor(TQSize(m_iconSize.width(), height));
-
- if (!m_movie->running() && height != m_active_pixmap.height())
- {
- KNewButton* that = const_cast<KNewButton*>(this);
- TQTimer::singleShot(0, that, TQT_SLOT(slotStopAnimation()));
- }
-
- return r;
-}
-
-int KNewButton::preferredDimension(int panelDim) const
-{
- return kMax(m_icon.width(), m_icon.height());
-}
-
-int KNewButton::heightForWidth(int width) const
-{
- int r = m_iconSize.width() * buttonScaleFactor(TQSize(width, m_iconSize.height()));
- if (!m_movie->running() && width != m_active_pixmap.width())
- {
- KNewButton* that = const_cast<KNewButton*>(this);
- TQTimer::singleShot(0, that, TQT_SLOT(slotStopAnimation()));
- }
- return r;
-}
-
bool KNewButton::eventFilter(TQObject *o, TQEvent *e)
{
if (e->type() == TQEvent::MouseButtonRelease ||
@@ -223,75 +121,9 @@ bool KNewButton::eventFilter(TQObject *o, TQEvent *e)
}
}
- if (KickerSettings::kickoffDrawGeekoEye() && e->type() == TQEvent::MouseMove)
- {
- TQMouseEvent *me = TQT_TQMOUSEEVENT(e);
- if ((me->state() & Qt::MouseButtonMask) == Qt::NoButton)
- drawEye();
- }
-
return KButton::eventFilter(o, e);
}
-void KNewButton::drawEye()
-{
-#define eye_x 62
-#define eye_y 13
- TQPoint mouse = TQCursor::pos();
- TQPoint me = mapToGlobal(TQPoint(eye_x, eye_y));
- double a = atan2(mouse.y() - me.y(), mouse.x() - me.x());
- int dx = int(2.1 * cos(a));
- int dy = int(2.1 * sin(a));
-
- TQPoint newpos(eye_x+dx,eye_y+dy);
- if (newpos!=m_oldPos) {
- m_oldPos = newpos;
- TQPixmap pixmap = m_active_pixmap;
-
- double sf = 1.0;
-
- if(!m_movie->framePixmap().isNull())
- {
- pixmap = m_movie->framePixmap();
- pixmap.detach();
- m_iconSize = pixmap.size();
- sf = buttonScaleFactor(size());
-
- if (KickerSettings::kickoffDrawGeekoEye()) {
- TQPainter p(&pixmap);
- p.setPen(white);
- p.setBrush(white);
- // p.setPen(TQColor(110,185,55));
- p.drawRect(eye_x+dx, eye_y+dy, 2, 2);
- p. end();
- }
- }
-
- TQWMatrix matrix;
- switch (popupDirection()) {
- case KPanelApplet::Left:
- matrix.scale(sf, -sf);
- matrix.rotate(90);
- break;
- case KPanelApplet::Up:
- matrix.scale(sf, sf);
- break;
- case KPanelApplet::Right:
- matrix.scale(sf, -sf);
- matrix.rotate(90);
- break;
- case KPanelApplet::Down:
- matrix.scale(sf, sf);
- break;
- }
- m_active_pixmap = pixmap.xForm(matrix);
-
- repaint(false);
- }
-#undef eye_x
-#undef eye_y
-}
-
void KNewButton::enterEvent(TQEvent* e)
{
KButton::enterEvent(e);
@@ -315,15 +147,8 @@ void KNewButton::enterEvent(TQEvent* e)
}
m_active = true;
- m_movie->unpause();
- m_movie->restart();
}
-void KNewButton::rewindMovie()
-{
- m_oldPos = TQPoint( -1, -1 );
- m_movie->unpause();
-}
void KNewButton::dragEnterEvent(TQDragEnterEvent* /*e*/)
{
@@ -369,31 +194,12 @@ void KNewButton::mouseMoveEvent(TQMouseEvent* e)
}
}
-void KNewButton::slotStopAnimation()
-{
- m_active = false;
- m_movie->pause();
- m_movie->restart();
- TQTimer::singleShot(200, this, TQT_SLOT(rewindMovie()));
-}
-
-const TQPixmap& KNewButton::labelIcon() const
-{
- return m_active_pixmap;
-}
-
void KNewButton::slotExecMenu()
{
- if (m_openTimer != -1)
- killTimer(m_openTimer);
-
- m_openTimer = startTimer(TQApplication::doubleClickInterval() * 3);
if (m_active)
{
m_active = false;
- m_movie->pause();
- m_movie->restart();
}
KButton::slotExecMenu();
@@ -401,40 +207,12 @@ void KNewButton::slotExecMenu()
assert(!KickerTip::tippingEnabled());
assert(dynamic_cast<KMenu*>(m_popup));
- disconnect(dynamic_cast<KMenu*>(m_popup), TQT_SIGNAL(aboutToHide()), this,
- TQT_SLOT(slotStopAnimation()));
- connect(dynamic_cast<KMenu*>(m_popup), TQT_SIGNAL(aboutToHide()),
- TQT_SLOT(slotStopAnimation()));
-
m_popup->move(KickerLib::popupPosition(popupDirection(), m_popup, this));
// I wish KMenu would properly done itself when it closes. But it doesn't.
- bool useEffect = true; // could be TQApplication::isEffectEnabled()
- useEffect = false; // too many TQt bugs to be useful
- if (m_drag)
- useEffect = false;
-
m_drag = false; // once is enough
- if (useEffect)
- {
- switch (popupDirection()) {
- case KPanelApplet::Left:
- qScrollEffect(m_popup, TQEffects::LeftScroll);
- break;
- case KPanelApplet::Up:
- qScrollEffect(m_popup, TQEffects::UpScroll);
- break;
- case KPanelApplet::Right:
- qScrollEffect(m_popup, TQEffects::RightScroll);
- break;
- case KPanelApplet::Down:
- qScrollEffect(m_popup, TQEffects::DownScroll);
- break;
- }
- }
- else
- static_cast<KMenu*>(m_popup)->show();
+ static_cast<KMenu*>(m_popup)->show();
}
void KNewButton::timerEvent(TQTimerEvent* e)
@@ -447,9 +225,4 @@ void KNewButton::timerEvent(TQTimerEvent* e)
killTimer(m_hoverTimer);
m_hoverTimer = -1;
}
- if (e->timerId() == m_openTimer)
- {
- killTimer(m_openTimer);
- m_openTimer = -1;
- }
}
diff --git a/kicker/kicker/buttons/knewbutton.h b/kicker/kicker/buttons/knewbutton.h
index bcb8b8743..bc926cf0d 100644
--- a/kicker/kicker/buttons/knewbutton.h
+++ b/kicker/kicker/buttons/knewbutton.h
@@ -28,7 +28,6 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "kbutton.h"
-#include <tqmovie.h>
#include <tqpoint.h>
/**
@@ -43,25 +42,10 @@ public:
~KNewButton();
static KNewButton *self() { return m_self; }
-
void loadConfig( const KConfigGroup& config );
-
- virtual const TQPixmap& labelIcon() const;
-
- virtual int widthForHeight(int height) const;
- virtual int preferredDimension(int panelDim) const;
- virtual int heightForWidth(int width) const;
-
TQColor borderColor() const;
+ //virtual void setPopupDirection(KPanelApplet::Direction d);
- virtual void setPopupDirection(KPanelApplet::Direction d);
-
-private slots:
- void slotStatus(int);
- void slotSetSize(const TQSize&);
- void slotStopAnimation();
- void rewindMovie();
- void updateMovie();
protected:
virtual void show();
@@ -78,17 +62,15 @@ protected:
void timerEvent(TQTimerEvent*);
private:
- void drawEye();
- double buttonScaleFactor(const TQSize& s) const;
- TQMovie* m_movie;
+ void drawButton(TQPainter *p);
TQPixmap m_active_pixmap;
TQPoint m_oldPos;
TQSize m_iconSize;
TQRect m_sloppyRegion;
- int m_hoverTimer;
int m_openTimer;
- bool m_active;
+ int m_hoverTimer;
+ bool m_active;
bool m_mouseInside;
bool m_drag;
diff --git a/kicker/kicker/ui/k_new_mnu.cpp b/kicker/kicker/ui/k_new_mnu.cpp
index 993065d0f..1a25aa10b 100644
--- a/kicker/kicker/ui/k_new_mnu.cpp
+++ b/kicker/kicker/ui/k_new_mnu.cpp
@@ -1700,8 +1700,6 @@ void KMenu::setOrientation(MenuOrientation orientation)
TQPixmap pix( 64, footer->height() );
TQPainter p( &pix );
p.fillRect( 0, 0, 64, footer->height(), m_branding->colorGroup().brush( TQColorGroup::Base ) );
- p.fillRect( 0, m_orientation == BottomUp ? footer->height() - 2 : 0,
- 64, 3, KNewButton::self()->borderColor() );
p.end();
footer->setPaletteBackgroundPixmap( pix );
}
@@ -3500,7 +3498,8 @@ void KMenu::updateMedia()
}
m_systemView->insertItem( iconName, userLabel.isEmpty() ? label : userLabel,
descr, "system:/media/" + name, nId++, -1 );
-
+ ++it;
+ ++it;
++it; // skip separator
}
}