Author: kirilla Date: 2011-04-13 10:22:03 +0200 (Wed, 13 Apr 2011) New Revision: 41246 Changeset: https://dev.haiku-os.org/changeset/41246 Added: haiku/trunk/headers/private/shared/IconView.h haiku/trunk/src/kits/shared/IconView.cpp Removed: haiku/trunk/headers/private/interface/IconView.h haiku/trunk/src/kits/interface/IconView.cpp Modified: haiku/trunk/src/kits/interface/Jamfile haiku/trunk/src/kits/shared/Jamfile haiku/trunk/src/preferences/datatranslations/Jamfile Log: Move IconView from kits/interface to kits/shared. Copied: haiku/trunk/headers/private/shared/IconView.h (from rev 41244, haiku/trunk/headers/private/interface/IconView.h) =================================================================== --- haiku/trunk/headers/private/shared/IconView.h (rev 0) +++ haiku/trunk/headers/private/shared/IconView.h 2011-04-13 08:22:03 UTC (rev 41246) @@ -0,0 +1,27 @@ +// Author: Michael Wilber +// Copyright (C) Haiku, uses the MIT license +#ifndef ICONVIEW_H +#define ICONVIEW_H + + +#include <Bitmap.h> +#include <Path.h> +#include <View.h> + + +class IconView : public BView { +public: + IconView(const BRect& frame, const char* name, + uint32 resize, uint32 flags); + ~IconView(); + virtual void Draw(BRect area); + + bool DrawIcon(bool draw); + bool SetIcon(const BPath& path); + +private: + BBitmap* fIconBitmap; + bool fDrawIcon; +}; + +#endif // #ifndef ICONVIEW_H Modified: haiku/trunk/src/kits/interface/Jamfile =================================================================== --- haiku/trunk/src/kits/interface/Jamfile 2011-04-13 00:34:28 UTC (rev 41245) +++ haiku/trunk/src/kits/interface/Jamfile 2011-04-13 08:22:03 UTC (rev 41246) @@ -65,7 +65,6 @@ GroupLayout.cpp GroupLayoutBuilder.cpp GroupView.cpp - IconView.cpp Input.cpp InterfaceDefs.cpp Layout.cpp Copied: haiku/trunk/src/kits/shared/IconView.cpp (from rev 41244, haiku/trunk/src/kits/interface/IconView.cpp) =================================================================== --- haiku/trunk/src/kits/shared/IconView.cpp (rev 0) +++ haiku/trunk/src/kits/shared/IconView.cpp 2011-04-13 08:22:03 UTC (rev 41246) @@ -0,0 +1,74 @@ +// Author: Michael Wilber +// Copyright (C) Haiku, uses the MIT license + + +#include "IconView.h" + +#include <stdio.h> +#include <string.h> + +#include <Entry.h> +#include <Node.h> +#include <NodeInfo.h> + + +IconView::IconView(const BRect& frame, const char* name, uint32 resize, + uint32 flags) + : + BView(frame, name, resize, flags), + fIconBitmap(new BBitmap(BRect(B_LARGE_ICON), B_RGBA32)), + fDrawIcon(false) +{ + SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); +} + + +IconView::~IconView() +{ + delete fIconBitmap; + fIconBitmap = NULL; +} + + +bool +IconView::SetIcon(const BPath& path) +{ + fDrawIcon = false; + + BEntry entry(path.Path()); + BNode node(&entry); + BNodeInfo info(&node); + + if (info.GetTrackerIcon(fIconBitmap) != B_OK) + return false; + + fDrawIcon = true; + Invalidate(); + return true; +} + + +bool +IconView::DrawIcon(bool draw) +{ + bool prev = fDrawIcon; + fDrawIcon = draw; + if (prev != fDrawIcon) + Invalidate(); + + return prev; +} + + +void +IconView::Draw(BRect area) +{ + SetDrawingMode(B_OP_ALPHA); + SetBlendingMode(B_PIXEL_ALPHA, B_ALPHA_OVERLAY); + + if (fDrawIcon) + DrawBitmap(fIconBitmap); + + SetDrawingMode(B_OP_COPY); +} + Modified: haiku/trunk/src/kits/shared/Jamfile =================================================================== --- haiku/trunk/src/kits/shared/Jamfile 2011-04-13 00:34:28 UTC (rev 41245) +++ haiku/trunk/src/kits/shared/Jamfile 2011-04-13 08:22:03 UTC (rev 41246) @@ -21,6 +21,7 @@ DragTrackingFilter.cpp HashString.cpp IconButton.cpp + IconView.cpp Keymap.cpp NaturalCompare.cpp QueryFile.cpp Modified: haiku/trunk/src/preferences/datatranslations/Jamfile =================================================================== --- haiku/trunk/src/preferences/datatranslations/Jamfile 2011-04-13 00:34:28 UTC (rev 41245) +++ haiku/trunk/src/preferences/datatranslations/Jamfile 2011-04-13 08:22:03 UTC (rev 41246) @@ -2,7 +2,7 @@ UseLibraryHeaders lp_solve linprog alm ; -UsePrivateHeaders interface ; +UsePrivateHeaders shared ; Preference DataTranslations : DataTranslations.cpp @@ -10,7 +10,7 @@ DataTranslationsSettings.cpp TranslatorListView.cpp - : be translation $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : be translation $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) libshared.a : DataTranslations.rdef ;