• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdepim API Reference
  • KDE Home
  • Contact Us
 

libkdepim

  • sources
  • kde-4.12
  • kdepim
  • libkdepim
  • progresswidget
overlaywidget.cpp
Go to the documentation of this file.
1 
31 #include "overlaywidget.h"
32 #include <QResizeEvent>
33 #include <QEvent>
34 
35 using namespace KPIM;
36 
37 OverlayWidget::OverlayWidget( QWidget* alignWidget, QWidget* parent, const char* name )
38  : KHBox( parent ), mAlignWidget( 0 )
39 {
40  setObjectName(QLatin1String(name));
41  setAlignWidget( alignWidget );
42 }
43 
44 OverlayWidget::~OverlayWidget()
45 {
46 }
47 
48 void OverlayWidget::reposition()
49 {
50  if ( !mAlignWidget )
51  return;
52  // p is in the alignWidget's coordinates
53  QPoint p;
54  // We are always above the alignWidget, right-aligned with it.
55  p.setX( mAlignWidget->width() - width() );
56  p.setY( -height() );
57  // Position in the toplevelwidget's coordinates
58  QPoint pTopLevel = mAlignWidget->mapTo( topLevelWidget(), p );
59  // Position in the widget's parentWidget coordinates
60  QPoint pParent = parentWidget()->mapFrom( topLevelWidget(), pTopLevel );
61  // Move 'this' to that position.
62  move( pParent );
63 }
64 
65 void OverlayWidget::setAlignWidget( QWidget * w )
66 {
67  if (w == mAlignWidget)
68  return;
69 
70  if (mAlignWidget)
71  mAlignWidget->removeEventFilter(this);
72 
73  mAlignWidget = w;
74 
75  if (mAlignWidget)
76  mAlignWidget->installEventFilter(this);
77 
78  reposition();
79 }
80 
81 bool OverlayWidget::eventFilter( QObject* o, QEvent* e)
82 {
83  if ( o == mAlignWidget &&
84  ( e->type() == QEvent::Move || e->type() == QEvent::Resize ) ) {
85  reposition();
86  }
87  return QFrame::eventFilter(o,e);
88 }
89 
90 void OverlayWidget::resizeEvent( QResizeEvent* ev )
91 {
92  reposition();
93  QFrame::resizeEvent( ev );
94 }
95 
96 #include "overlaywidget.moc"
overlaywidget.h
KPIM::OverlayWidget::eventFilter
bool eventFilter(QObject *o, QEvent *e)
Definition: overlaywidget.cpp:81
KPIM::OverlayWidget::~OverlayWidget
~OverlayWidget()
Definition: overlaywidget.cpp:44
QWidget
QObject
KPIM::OverlayWidget::resizeEvent
void resizeEvent(QResizeEvent *ev)
Definition: overlaywidget.cpp:90
KPIM::OverlayWidget::OverlayWidget
OverlayWidget(QWidget *alignWidget, QWidget *parent, const char *name=0)
Definition: overlaywidget.cpp:37
KHBox
KPIM::OverlayWidget::setAlignWidget
void setAlignWidget(QWidget *alignWidget)
Definition: overlaywidget.cpp:65
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:58:03 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

libkdepim

Skip menu "libkdepim"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Modules

kdepim API Reference

Skip menu "kdepim API Reference"
  • akonadi_next
  • akregator
  • blogilo
  • calendarsupport
  • console
  •   kabcclient
  •   konsolekalendar
  • kaddressbook
  • kalarm
  •   lib
  • kdgantt2
  • kjots
  • kleopatra
  • kmail
  • knode
  • knotes
  • kontact
  • korgac
  • korganizer
  • ktimetracker
  • libkdepim
  • libkleo
  • libkpgp
  • mailcommon
  • messagelist
  • messageviewer

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal