summaryrefslogtreecommitdiff
path: root/core/applets/screenshotapplet/screenshot.cpp
authormickeyl <mickeyl>2004-03-01 19:19:37 (UTC)
committer mickeyl <mickeyl>2004-03-01 19:19:37 (UTC)
commitddc3d749af5f7afebf69488b79641771fe246b5b (patch) (side-by-side diff)
tree8ea8614906c568e4677493ef09040724d60dd2d4 /core/applets/screenshotapplet/screenshot.cpp
parentfb0981f47e529f9d1dd77fa005ffa3c3ecedff67 (diff)
downloadopie-ddc3d749af5f7afebf69488b79641771fe246b5b.zip
opie-ddc3d749af5f7afebf69488b79641771fe246b5b.tar.gz
opie-ddc3d749af5f7afebf69488b79641771fe246b5b.tar.bz2
remove duplicated boiler plate code in favour of the OTaskbarApplet template
Diffstat (limited to 'core/applets/screenshotapplet/screenshot.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/applets/screenshotapplet/screenshot.cpp25
1 files changed, 19 insertions, 6 deletions
diff --git a/core/applets/screenshotapplet/screenshot.cpp b/core/applets/screenshotapplet/screenshot.cpp
index 56a031c..5d6bce4 100644
--- a/core/applets/screenshotapplet/screenshot.cpp
+++ b/core/applets/screenshotapplet/screenshot.cpp
@@ -1,84 +1,87 @@
/**********************************************************************
** Copyright (C) 2002 L.J. Potter ljp@llornkcor.com
** All rights reserved.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
**********************************************************************/
#include "screenshot.h"
#include "inputDialog.h"
-#include <stdlib.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#include <unistd.h>
-
+/* OPIE */
+#include <opie2/otaskbarapplet.h>
#include <qpe/qpeapplication.h>
#include <qpe/applnk.h>
+/* QT */
#include <qlineedit.h>
#include <qdir.h>
#include <qlabel.h>
#include <qpushbutton.h>
#include <qpainter.h>
#include <qspinbox.h>
#include <qlayout.h>
#include <qcheckbox.h>
#include <qmessagebox.h>
+/* STD */
+#include <stdlib.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <netdb.h>
+#include <unistd.h>
/* XPM */
static char * snapshot_xpm[] = {
"32 32 177 2",
" c None",
". c #042045",
"+ c #0D2B47",
"@ c #0E325E",
"# c #0D2E50",
"$ c #0A1C32",
"% c #0F3A69",
"& c #164680",
"* c #165EAE",
"= c #134D89",
"- c #0A3A6E",
"; c #031024",
"> c #031B36",
", c #1A5EA3",
"' c #1862B1",
") c #1866B9",
"! c #0F5AAC",
"~ c #0F56A8",
"{ c #0C4C96",
"] c #030918",
"^ c #060206",
"/ c #20242C",
"( c #3E3B3B",
"_ c #186ABD",
": c #115EB3",
"< c #082644",
"[ c #222C38",
"} c #5A5859",
"| c #091921",
"1 c #1E7EDE",
"2 c #1A7ADA",
"3 c #1970CD",
"4 c #1758A1",
"5 c #0E529A",
"6 c #094388",
"7 c #22364E",
"8 c #384454",
"9 c #04162C",
"0 c #123451",
"a c #3296B4",
"b c #298AB1",
"c c #2484AC",
"d c #033D86",
"e c #033677",
@@ -452,79 +455,89 @@ void ScreenshotControl::performGrab()
"\n";
header = header.arg( SCAP_model).arg( ::getenv( "USER" ) ).arg( img.numBytes() ).arg( SCAP_hostname );
qDebug(header);
if ( !pix.isNull() ) {
const char *ascii = header.latin1( );
uint ascii_len = ::strlen( ascii );
::write ( sock, ascii, ascii_len );
::write ( sock, img.bits(), img.numBytes() );
ok = true;
}
}
::close ( sock );
}
}
if ( ok ) {
QMessageBox::information( 0, tr( "Success" ), QString( "<p>%1</p>" ).arg ( tr( "Screenshot was uploaded to %1" )).arg( SCAP_hostname ));
} else {
QMessageBox::warning( 0, tr( "Error" ), QString( "<p>%1</p>" ).arg( tr( "Connection to %1 failed." )).arg( SCAP_hostname ));
}
} else {
QMessageBox::warning( 0, tr( "Error" ),tr("Please set <b>QWS_DISPLAY</b> environmental variable."));
}
}
}
//===========================================================================
ScreenshotApplet::ScreenshotApplet( QWidget *parent, const char *name )
: QWidget( parent, name )
{
setFixedWidth( AppLnk::smallIconSize());
QImage img = (const char **)snapshot_xpm;
img = img.smoothScale(AppLnk::smallIconSize(), AppLnk::smallIconSize());
m_icon.convertFromImage(img);
}
ScreenshotApplet::~ScreenshotApplet()
{
}
+int ScreenshotApplet::position()
+{
+ return 6;
+}
+
void ScreenshotApplet::mousePressEvent( QMouseEvent *)
{
ScreenshotControl *sc = new ScreenshotControl ( );
QPoint curPos = mapToGlobal ( QPoint ( 0, 0 ));
// windowPosX is the windows position centered above the applets icon.
// If the icon is near the edge of the screen, the window would leave the visible area
// so we check the position against the screen width and correct the difference if needed
int screenWidth = qApp->desktop()->width();
int windowPosX = curPos. x ( ) - ( sc-> sizeHint ( ). width ( ) - width ( )) / 2 ;
int ZwindowPosX, XwindowPosX;
// the window would be placed beyond the screen wich doesn't look tooo good
if ( (windowPosX + sc-> sizeHint ( ). width ( )) > screenWidth ) {
XwindowPosX = windowPosX + sc-> sizeHint ( ). width ( ) - screenWidth;
ZwindowPosX = windowPosX - XwindowPosX - 1;
} else {
ZwindowPosX = windowPosX;
}
sc-> move ( ZwindowPosX, curPos. y ( ) - sc-> sizeHint ( ). height ( ) );
sc-> show ( );
}
void ScreenshotApplet::paintEvent( QPaintEvent* )
{
QPainter p ( this );
p.drawPixmap( 0,0, m_icon );
}
+Q_EXPORT_INTERFACE()
+{
+ Q_CREATE_INSTANCE( OTaskbarAppletWrapper<ScreenshotApplet> );
+}
+