linuxdcpp-team team mailing list archive
-
linuxdcpp-team team
-
Mailing list archive
-
Message #02809
[Branch ~dcplusplus-team/dcplusplus/trunk] Rev 2365: add a function to merge icons
------------------------------------------------------------
revno: 2365
committer: poy <poy@xxxxxxxxxx>
branch nick: trunk
timestamp: Sun 2010-12-26 21:26:00 +0100
message:
add a function to merge icons
added:
dwt/include/dwt/util/GDI.h
dwt/src/util/GDI.cpp
--
lp:dcplusplus
https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk
Your team Dcplusplus-team is subscribed to branch lp:dcplusplus.
To unsubscribe from this branch go to https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk/+edit-subscription
=== added file 'dwt/include/dwt/util/GDI.h'
--- dwt/include/dwt/util/GDI.h 1970-01-01 00:00:00 +0000
+++ dwt/include/dwt/util/GDI.h 2010-12-26 20:26:00 +0000
@@ -0,0 +1,43 @@
+/*
+ DC++ Widget Toolkit
+
+ Copyright (c) 2007-2010, Jacek Sieka
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of the DWT nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef DWT_UTIL_GDI_H
+#define DWT_UTIL_GDI_H
+
+#include <dwt/CanvasClasses.h>
+
+namespace dwt { namespace util {
+
+BitmapPtr merge(const std::vector<IconPtr>& icons);
+
+} }
+
+#endif
=== added file 'dwt/src/util/GDI.cpp'
--- dwt/src/util/GDI.cpp 1970-01-01 00:00:00 +0000
+++ dwt/src/util/GDI.cpp 2010-12-26 20:26:00 +0000
@@ -0,0 +1,55 @@
+/*
+ DC++ Widget Toolkit
+
+ Copyright (c) 2007-2010, Jacek Sieka
+
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification,
+ are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ * Neither the name of the DWT nor SmartWin++ nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include <dwt/util/GDI.h>
+
+#include <dwt/util/check.h>
+
+namespace dwt { namespace util {
+
+BitmapPtr merge(const std::vector<IconPtr>& icons) {
+ dwtassert(!icons.empty(), _T("No icons to merge"));
+ const Point size = icons[0]->getSize();
+
+ UpdateCanvas screen_canvas(reinterpret_cast<HWND>(0));
+ BitmapPtr ret(new Bitmap(::CreateCompatibleBitmap(screen_canvas.handle(), size.x, size.y)));
+
+ CompatibleCanvas canvas(screen_canvas.handle());
+ Canvas::Selector select(canvas, *ret);
+
+ Rectangle rect(size);
+ for(auto i = icons.cbegin(), iend = icons.cend(); i != iend; ++i)
+ canvas.drawIcon(*i, rect);
+
+ return ret;
+}
+
+} }