ShowImage: Use BControlLook::ComposeIconSize.
Also use BBitmap::ImportBits instead of a manual copy, while at it.
This commit is contained in:
@@ -28,6 +28,7 @@
|
|||||||
#include <BitmapStream.h>
|
#include <BitmapStream.h>
|
||||||
#include <Catalog.h>
|
#include <Catalog.h>
|
||||||
#include <Clipboard.h>
|
#include <Clipboard.h>
|
||||||
|
#include <ControlLook.h>
|
||||||
#include <Cursor.h>
|
#include <Cursor.h>
|
||||||
#include <Debug.h>
|
#include <Debug.h>
|
||||||
#include <Directory.h>
|
#include <Directory.h>
|
||||||
@@ -133,7 +134,7 @@ compose_checker_background(const BBitmap* bitmap)
|
|||||||
blend_colors(p, kAlphaLow.red, kAlphaLow.green, kAlphaLow.blue, alpha);
|
blend_colors(p, kAlphaLow.red, kAlphaLow.green, kAlphaLow.blue, alpha);
|
||||||
else
|
else
|
||||||
blend_colors(p, kAlphaHigh.red, kAlphaHigh.green, kAlphaHigh.blue, alpha);
|
blend_colors(p, kAlphaHigh.red, kAlphaHigh.green, kAlphaHigh.blue, alpha);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if (i % 10 >= 5)
|
if (i % 10 >= 5)
|
||||||
blend_colors(p, kAlphaHigh.red, kAlphaHigh.green, kAlphaHigh.blue, alpha);
|
blend_colors(p, kAlphaHigh.red, kAlphaHigh.green, kAlphaHigh.blue, alpha);
|
||||||
@@ -1105,7 +1106,7 @@ ShowImageView::MouseDown(BPoint position)
|
|||||||
|
|
||||||
// Using clickCount >= 2 and the modulo 2 accounts for quickly repeated
|
// Using clickCount >= 2 and the modulo 2 accounts for quickly repeated
|
||||||
// double-clicks
|
// double-clicks
|
||||||
if (buttons == B_PRIMARY_MOUSE_BUTTON && clickCount >= 2 &&
|
if (buttons == B_PRIMARY_MOUSE_BUTTON && clickCount >= 2 &&
|
||||||
clickCount % 2 == 0) {
|
clickCount % 2 == 0) {
|
||||||
Window()->PostMessage(MSG_FULL_SCREEN);
|
Window()->PostMessage(MSG_FULL_SCREEN);
|
||||||
return;
|
return;
|
||||||
@@ -1752,15 +1753,7 @@ ShowImageView::ResizeImage(int w, int h)
|
|||||||
void
|
void
|
||||||
ShowImageView::_SetIcon(bool clear, icon_size which)
|
ShowImageView::_SetIcon(bool clear, icon_size which)
|
||||||
{
|
{
|
||||||
int32 size;
|
const int32 size = be_control_look->ComposeIconSize(which).IntegerWidth() + 1;
|
||||||
switch (which) {
|
|
||||||
case B_MINI_ICON: size = 16;
|
|
||||||
break;
|
|
||||||
case B_LARGE_ICON: size = 32;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
BRect rect(fBitmap->Bounds());
|
BRect rect(fBitmap->Bounds());
|
||||||
float s;
|
float s;
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include <Bitmap.h>
|
#include <Bitmap.h>
|
||||||
|
#include <ControlLook.h>
|
||||||
#include <IconUtils.h>
|
#include <IconUtils.h>
|
||||||
|
|
||||||
|
|
||||||
@@ -622,10 +623,10 @@ static IconData kIcons[] = {
|
|||||||
status_t
|
status_t
|
||||||
init_tool_bar_icons()
|
init_tool_bar_icons()
|
||||||
{
|
{
|
||||||
const int32 toolBarIconsSize = 22;
|
const BSize toolBarIconsSize = be_control_look->ComposeIconSize(22);
|
||||||
const int32 iconRenderSize = max_c(toolBarIconsSize, 32);
|
const BSize iconRenderSize = be_control_look->ComposeIconSize(32);
|
||||||
|
|
||||||
BBitmap bitmap(BRect(0, 0, iconRenderSize - 1, iconRenderSize - 1),
|
BBitmap bitmap(BRect(BPoint(0, 0), iconRenderSize),
|
||||||
B_BITMAP_NO_SERVER_LINK, B_RGBA32);
|
B_BITMAP_NO_SERVER_LINK, B_RGBA32);
|
||||||
|
|
||||||
for (uint32 i = 0; i < sizeof(kIcons) / sizeof(IconData); i++) {
|
for (uint32 i = 0; i < sizeof(kIcons) / sizeof(IconData); i++) {
|
||||||
@@ -633,22 +634,16 @@ init_tool_bar_icons()
|
|||||||
kIcons[i].size, &bitmap);
|
kIcons[i].size, &bitmap);
|
||||||
if (ret != B_OK)
|
if (ret != B_OK)
|
||||||
return ret;
|
return ret;
|
||||||
kIcons[i].bitmap = new(std::nothrow) BBitmap(BRect(0, 0,
|
kIcons[i].bitmap = new(std::nothrow) BBitmap(BRect(BPoint(0, 0),
|
||||||
toolBarIconsSize - 1, toolBarIconsSize - 1), 0, B_RGBA32);
|
toolBarIconsSize), 0, B_RGBA32);
|
||||||
if (kIcons[i].bitmap == NULL)
|
if (kIcons[i].bitmap == NULL)
|
||||||
return B_NO_MEMORY;
|
return B_NO_MEMORY;
|
||||||
ret = kIcons[i].bitmap->InitCheck();
|
ret = kIcons[i].bitmap->InitCheck();
|
||||||
if (ret != B_OK)
|
if (ret != B_OK)
|
||||||
return ret;
|
return ret;
|
||||||
uint8* src = reinterpret_cast<uint8*>(bitmap.Bits());
|
|
||||||
uint32 srcBPR = bitmap.BytesPerRow();
|
kIcons[i].bitmap->ImportBits(&bitmap, BPoint(0, 0), BPoint(0, 0),
|
||||||
uint8* dst = reinterpret_cast<uint8*>(kIcons[i].bitmap->Bits());
|
toolBarIconsSize);
|
||||||
uint32 dstBPR = kIcons[i].bitmap->BytesPerRow();
|
|
||||||
for (int32 y = 0; y < toolBarIconsSize; y++) {
|
|
||||||
memcpy(dst, src, 4 * toolBarIconsSize);
|
|
||||||
src += srcBPR;
|
|
||||||
dst += dstBPR;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initializing 14 icons on startup takes about 10ms on a Core2Duo @ 2GHz.
|
// Initializing 14 icons on startup takes about 10ms on a Core2Duo @ 2GHz.
|
||||||
|
|||||||
Reference in New Issue
Block a user