--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/qt/library/qcaptionedwidget.cpp Mon May 03 12:27:20 2010 +0300
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nokia Corporation - initial implementation
+ *******************************************************************************/
+
+#include <QLabel>
+#include <QBoxLayout>
+#include <QApplication>
+#include <QStylePainter>
+#include <QStyleOptionFocusRect>
+#include "qcaptionedwidget.h"
+#include "swtlog.h"
+
+
+using namespace Java::eSWT;
+
+
+QCaptionedWidget::QCaptionedWidget()
+ : QFrame()
+ , mFocus( false )
+ {
+ SWT_LOG_FUNC_CALL();
+ connect( qApp, SIGNAL( focusChanged( QWidget*, QWidget* ) ),
+ this, SLOT( focusChanged( QWidget*, QWidget* ) ) );
+ }
+
+void QCaptionedWidget::focusChanged( QWidget* aOldWidget, QWidget* aNewWidget )
+ {
+ SWT_LOG_FUNC_CALL();
+ bool isOldWidgetChild = isAncestorOf( aOldWidget );
+ bool isNewWidgetChild = isAncestorOf( aNewWidget );
+ mFocus = isNewWidgetChild;
+ if ( isOldWidgetChild != isNewWidgetChild )
+ {
+ update();
+ }
+ }
+
+void QCaptionedWidget::paintEvent( QPaintEvent* aEvent )
+ {
+ SWT_LOG_FUNC_CALL();
+ QFrame::paintEvent( aEvent );
+ QStylePainter painter( this );
+ if ( mFocus )
+ {
+ QStyleOptionButton optFocusHelper;
+ optFocusHelper.initFrom( this );
+ QStyleOptionFocusRect optFocus;
+ optFocus.initFrom( this );
+ optFocus.rect = painter.style()->subElementRect( QStyle::SE_PushButtonFocusRect, &optFocusHelper, this );
+ painter.drawPrimitive( QStyle::PE_FrameFocusRect, optFocus );
+ }
+ }