[haiku-commits] r41244 - in haiku/trunk: headers/private/interface src/kits/interface src/preferences/datatranslations

  • From: jonas@xxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 12 Apr 2011 22:38:09 +0200 (CEST)

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)


Other related posts: