Fixed issue #1313 (2 kind of printer icons).
For the selected printer the Printers preflet icon was used. For not selected printer the Printer filetype icon is used. The change of the Printers preflet icon to the vector format changed its appearance, so the two did not match anymore. Using the Printers preflet icon for the selected printer is a sub-optimal solution. Now the selected printer icon is created at runtime. A check mark bitmap is drawn over the "not selected" printer icon. Someone feel free to create a version in vector format of that bitmap. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21693 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -215,9 +215,36 @@ PrinterItem::PrinterItem(PrintersWindow* window, const BDirectory& node)
|
||||
}
|
||||
|
||||
if (sSelectedIcon == NULL) {
|
||||
sSelectedIcon = new BBitmap(BRect(0,0,B_LARGE_ICON-1,B_LARGE_ICON-1), B_CMAP8);
|
||||
BMimeType type(PRNT_SIGNATURE_TYPE);
|
||||
type.GetIcon(sSelectedIcon, B_LARGE_ICON);
|
||||
BBitmap *checkMark = LoadBitmap("check_mark_icon", 'BBMP');
|
||||
if (checkMark == NULL) {
|
||||
BAlert *alert = new BAlert("Error",
|
||||
"Fatal error: Check mark icon could not be loaded from resources!",
|
||||
"Bye");
|
||||
alert->Go();
|
||||
exit(1);
|
||||
}
|
||||
|
||||
// draw check mark at bottom left over printer icon
|
||||
sSelectedIcon = new BBitmap(sIcon->Bounds(), B_RGBA32, true);
|
||||
if (!sSelectedIcon->IsValid()) {
|
||||
BAlert *alert = new BAlert("Error",
|
||||
"Fatal error: Bitmap could not be created for selected printer icon!",
|
||||
"Bye");
|
||||
alert->Go();
|
||||
exit(1);
|
||||
}
|
||||
BView *view = new BView(sIcon->Bounds(), "offscreen", B_FOLLOW_ALL, B_WILL_DRAW);
|
||||
float y = sIcon->Bounds().Height() - checkMark->Bounds().Height();
|
||||
sSelectedIcon->Lock();
|
||||
sSelectedIcon->AddChild(view);
|
||||
view->DrawBitmap(sIcon);
|
||||
view->SetDrawingMode(B_OP_ALPHA);
|
||||
view->DrawBitmap(checkMark, BPoint(0, y));
|
||||
view->Sync();
|
||||
view->RemoveSelf();
|
||||
sSelectedIcon->Unlock();
|
||||
delete view;
|
||||
delete checkMark;
|
||||
}
|
||||
|
||||
// Get Name of printer
|
||||
|
||||
@@ -102,6 +102,55 @@ resource(101, "BEOS:M:STD_ICON") #'MICN' array {
|
||||
|
||||
resource(1, "BEOS:FILE_TYPES") message;
|
||||
|
||||
resource(102, "check_mark_icon") #'BBMP' archive BBitmap {
|
||||
"_frame" = rect { 0.00000, 0.00000, 15.0000, 19.0000 },
|
||||
"_cspace" = 8200,
|
||||
"_bmflags" = 1,
|
||||
"_rowbytes" = 64,
|
||||
"_data" = array {
|
||||
$"FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00"
|
||||
$"FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000FF000000FFFFFFFF00FFFFFF00"
|
||||
$"FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00"
|
||||
$"FFFFFF00FFFFFF00FFFFFF00000000FF6666FFFF6666FFFF000000FFFFFFFF00"
|
||||
$"FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00"
|
||||
$"FFFFFF00FFFFFF00FFFFFF00000000FFCBCBFFFF6666FFFF6666FFFF000000FF"
|
||||
$"FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00"
|
||||
$"FFFFFF00FFFFFF00000000FF0000E4FF0000E4FFCBCBFFFF6666FFFF000000FF"
|
||||
$"FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00"
|
||||
$"FFFFFF00FFFFFF00000000FF0000E4FF000080FF000080FF000000FFFFFFFF00"
|
||||
$"FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00"
|
||||
$"FFFFFF00000000FF0000E4FF0000CBFF000098FF000080FF000000FFFFFFFF00"
|
||||
$"FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00"
|
||||
$"FFFFFF00000000FF0000E4FF000080FF000080FF000000FFFFFFFF00FFFFFF00"
|
||||
$"FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00"
|
||||
$"000000FF0000E4FF0000CBFF000098FF000080FF000000FFFFFFFF00FFFFFF00"
|
||||
$"FFFFFF00FFFFFF00000000FF000000FF000000FFFFFFFF00FFFFFF00FFFFFF00"
|
||||
$"000000FF0000E4FF000080FF000080FF000000FFFFFFFF00FFFFFF00FFFFFF00"
|
||||
$"FFFFFF00000000FF6666FFFF6666FFFF6666FFFF000000FFFFFFFF00000000FF"
|
||||
$"0000E4FF0000CBFF000098FF000080FF000000FFFFFFFF00FFFFFF00FFFFFF00"
|
||||
$"000000FF6666FFFF6666FFFF6666FFFFCBCBFFFF000000FFFFFFFF00000000FF"
|
||||
$"0000E4FF000080FF000080FF000000FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00"
|
||||
$"000000FF0000E4FF0000CBFFCBCBFFFF6666FFFF6666FFFF000000FF0000E4FF"
|
||||
$"0000CBFF000098FF000080FF000000FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00"
|
||||
$"FFFFFF00000000FF0000E4FF0000CBFFCBCBFFFF6666FFFF0000E4FF0000CBFF"
|
||||
$"000098FF000080FF000000FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00"
|
||||
$"FFFFFF00000000FF0000E4FF0000CBFFCBCBFFFF6666FFFF0000E4FF0000CBFF"
|
||||
$"000098FF000080FF000000FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00"
|
||||
$"FFFFFF00FFFFFF00000000FF0000E4FF0000CBFF0000E4FF0000E4FF000080FF"
|
||||
$"000080FF000000FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00"
|
||||
$"FFFFFF00FFFFFF00000000FF0000E4FF0000CBFF0000E4FF0000E4FF000080FF"
|
||||
$"000080FF000000FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00"
|
||||
$"FFFFFF00FFFFFF00FFFFFF00000000FF0000E4FF0000CBFF000098FF000080FF"
|
||||
$"000000FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00"
|
||||
$"FFFFFF00FFFFFF00FFFFFF00000000FF0000E4FF0000CBFF000098FF000080FF"
|
||||
$"000000FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00"
|
||||
$"FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000FF0000E4FF000080FF000000FF"
|
||||
$"FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00"
|
||||
$"FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000FF000000FF000000FFFFFFFF00"
|
||||
$"FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00"
|
||||
}
|
||||
};
|
||||
|
||||
resource(0, "init_icon") #'bits' array {
|
||||
$"424D369000000000000036000000280000004000000090000000010020000000"
|
||||
$"000000900000130B0000130B00000000000000000000808080FFFFFFFFFFFFFF"
|
||||
|
||||
Reference in New Issue
Block a user