Author: kirilla Date: 2011-04-12 22:38:09 +0200 (Tue, 12 Apr 2011) New Revision: 41244 Changeset: https://dev.haiku-os.org/changeset/41244 Added: haiku/trunk/headers/private/interface/IconView.h haiku/trunk/src/kits/interface/IconView.cpp Removed: haiku/trunk/src/preferences/datatranslations/IconView.cpp haiku/trunk/src/preferences/datatranslations/IconView.h Modified: haiku/trunk/src/kits/interface/Jamfile haiku/trunk/src/preferences/datatranslations/DataTranslationsWindow.cpp haiku/trunk/src/preferences/datatranslations/DataTranslationsWindow.h haiku/trunk/src/preferences/datatranslations/Jamfile Log: Make DataTranslations' IconView available privately in the interface kit. Copied: haiku/trunk/headers/private/interface/IconView.h (from rev 41241, haiku/trunk/src/preferences/datatranslations/IconView.h) =================================================================== --- haiku/trunk/headers/private/interface/IconView.h (rev 0) +++ haiku/trunk/headers/private/interface/IconView.h 2011-04-12 20:38:09 UTC (rev 41244) @@ -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 Copied: haiku/trunk/src/kits/interface/IconView.cpp (from rev 41241, haiku/trunk/src/preferences/datatranslations/IconView.cpp) =================================================================== --- haiku/trunk/src/kits/interface/IconView.cpp (rev 0) +++ haiku/trunk/src/kits/interface/IconView.cpp 2011-04-12 20:38:09 UTC (rev 41244) @@ -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/interface/Jamfile =================================================================== --- haiku/trunk/src/kits/interface/Jamfile 2011-04-12 18:31:07 UTC (rev 41243) +++ haiku/trunk/src/kits/interface/Jamfile 2011-04-12 20:38:09 UTC (rev 41244) @@ -65,6 +65,7 @@ GroupLayout.cpp GroupLayoutBuilder.cpp GroupView.cpp + IconView.cpp Input.cpp InterfaceDefs.cpp Layout.cpp Modified: haiku/trunk/src/preferences/datatranslations/DataTranslationsWindow.cpp =================================================================== --- haiku/trunk/src/preferences/datatranslations/DataTranslationsWindow.cpp 2011-04-12 18:31:07 UTC (rev 41243) +++ haiku/trunk/src/preferences/datatranslations/DataTranslationsWindow.cpp 2011-04-12 20:38:09 UTC (rev 41244) @@ -23,6 +23,7 @@ #include <Catalog.h> #include <ControlLook.h> #include <Entry.h> +#include <IconView.h> #include <LayoutBuilder.h> #include <ListView.h> #include <Path.h> @@ -36,7 +37,6 @@ #include "DataTranslations.h" #include "DataTranslationsSettings.h" -#include "IconView.h" #include "TranslatorListView.h" Modified: haiku/trunk/src/preferences/datatranslations/DataTranslationsWindow.h =================================================================== --- haiku/trunk/src/preferences/datatranslations/DataTranslationsWindow.h 2011-04-12 18:31:07 UTC (rev 41243) +++ haiku/trunk/src/preferences/datatranslations/DataTranslationsWindow.h 2011-04-12 20:38:09 UTC (rev 41244) @@ -12,11 +12,11 @@ #include <Box.h> +#include <IconView.h> #include <Path.h> #include <View.h> #include <Window.h> -#include "IconView.h" #include "TranslatorListView.h" Modified: haiku/trunk/src/preferences/datatranslations/Jamfile =================================================================== --- haiku/trunk/src/preferences/datatranslations/Jamfile 2011-04-12 18:31:07 UTC (rev 41243) +++ haiku/trunk/src/preferences/datatranslations/Jamfile 2011-04-12 20:38:09 UTC (rev 41244) @@ -2,11 +2,12 @@ UseLibraryHeaders lp_solve linprog alm ; +UsePrivateHeaders interface ; + Preference DataTranslations : DataTranslations.cpp DataTranslationsWindow.cpp DataTranslationsSettings.cpp - IconView.cpp TranslatorListView.cpp : be translation $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS)