void X11Window::setIcon(const std::string& iconFile) { std::stringstream fin; g_resources.loadFile(iconFile, fin); apng_data apng; if(load_apng(fin, &apng) != 0) { g_logger.error("Unable to load window icon"); return; } if(apng.bpp != 4) { g_logger.error("Could not set window icon, icon image must have 4 channels"); free_apng(&apng); return; } int n = apng.width * apng.height; std::vector<unsigned long int> iconData(n + 2); iconData[0] = apng.width; iconData[1] = apng.height; for(int i=0; i < n;++i) { uint8 *pixel = (uint8*)&iconData[2 + i]; pixel[2] = *(apng.pdata + (i * 4) + 0); pixel[1] = *(apng.pdata + (i * 4) + 1); pixel[0] = *(apng.pdata + (i * 4) + 2); pixel[3] = *(apng.pdata + (i * 4) + 3); } Atom property = XInternAtom(m_display, "_NET_WM_ICON", 0); if(!XChangeProperty(m_display, m_window, property, XA_CARDINAL, 32, PropModeReplace, (const unsigned char*)&iconData[0], iconData.size())) g_logger.error("Couldn't set app icon"); free_apng(&apng); }
json::Object connectionJson(const Connection& connection) { // form the action array json::Array actions; for (const ConnectionAction& action : connection.actions) { actions.push_back(connectionActionJson(action)); } // form the object type array json::Array objectTypes; for (const ConnectionObjectType& type : connection.objectTypes) { objectTypes.push_back(connectionObjectTypeJson(type)); } json::Object connectionJson; connectionJson["id"] = connectionIdJson(connection.id); connectionJson["connect_code"] = connection.connectCode; connectionJson["display_name"] = connection.displayName; connectionJson["last_used"] = connection.lastUsed; connectionJson["actions"] = actions; connectionJson["object_types"] = objectTypes; connectionJson["icon_path"] = connection.icon; connectionJson["icon_data"] = iconData("drivers", connection.id.type, connection.icon); return connectionJson; }
void X11Window::setIcon(const std::string& file) { ImagePtr image = Image::load(file); if(!image) { g_logger.traceError(stdext::format("unable to load icon file %s", file)); return; } if(image->getBpp() != 4) { g_logger.error("the app icon must have 4 channels"); return; } int n = image->getWidth() * image->getHeight(); std::vector<unsigned long int> iconData(n + 2); iconData[0] = image->getWidth(); iconData[1] = image->getHeight(); for(int i=0; i < n;++i) { uint8 *pixel = (uint8*)&iconData[2 + i]; pixel[2] = *(image->getPixelData() + (i * 4) + 0); pixel[1] = *(image->getPixelData() + (i * 4) + 1); pixel[0] = *(image->getPixelData() + (i * 4) + 2); pixel[3] = *(image->getPixelData() + (i * 4) + 3); } Atom property = XInternAtom(m_display, "_NET_WM_ICON", 0); if(!XChangeProperty(m_display, m_window, property, XA_CARDINAL, 32, PropModeReplace, (const unsigned char*)&iconData[0], iconData.size())) g_logger.error("Couldn't set app icon"); }
json::Object connectionActionJson(const ConnectionAction& action) { json::Object actionJson; actionJson["name"] = action.name; actionJson["icon_path"] = action.icon; actionJson["icon_data"] = iconData("actions", action.name, action.icon); return actionJson; }
void IconEditDialog::on_resetBtn_clicked() { // Load the default icon image QByteArray iconData((const char*) SKETCH_DEFAULT_ICON, sizeof(SKETCH_DEFAULT_ICON)); PHNImage &image = this->image(); image.loadData(64, 64, 1, iconData); image.setHeader(false); }
json::Object connectionObjectTypeJson(const ConnectionObjectType& type) { json::Object objectTypeJson; objectTypeJson["name"] = type.name; objectTypeJson["contains"] = type.contains; objectTypeJson["icon_path"] = type.icon; objectTypeJson["icon_data"] = iconData("objects", type.name, type.icon); return objectTypeJson; }
NPT_Result DLNAMediaServer::SetupIcons() { QString path; if (QApplication::applicationName() == QLatin1String("digikam")) { path = QStandardPaths::locate(QStandardPaths::GenericDataLocation, QLatin1String("digikam/data/logo-digikam.png")); } else { path = QStandardPaths::locate(QStandardPaths::GenericDataLocation, QLatin1String("showfoto/data/logo-showfoto.png")); } QByteArray icon; QImage img(path); QString uri; int depth; int size; if (!img.isNull()) { qCDebug(DIGIKAM_MEDIASRV_LOG) << "Setup Media Server icons"; size = 256; icon = iconData(img, size, uri, depth); AddIcon(PLT_DeviceIcon("image/png", size, size, depth, uri.toLatin1().data()), icon.data(), icon.size(), true); size = 120; icon = iconData(img, size, uri, depth); AddIcon(PLT_DeviceIcon("image/png", size, size, depth, uri.toLatin1().data()), icon.data(), icon.size(), true); size = 48; icon = iconData(img, size, uri, depth); AddIcon(PLT_DeviceIcon("image/png", size, size, depth, uri.toLatin1().data()), icon.data(), icon.size(), true); size = 32; icon = iconData(img, size, uri, depth); AddIcon(PLT_DeviceIcon("image/png", size, size, depth, uri.toLatin1().data()), icon.data(), icon.size(), true); size = 16; icon = iconData(img, size, uri, depth); AddIcon(PLT_DeviceIcon("image/png", size, size, depth, uri.toLatin1().data()), icon.data(), icon.size(), true); return NPT_SUCCESS; } return NPT_FAILURE; }
QAction *BtMenuView::newAction(QMenu *parentMenu, const QModelIndex &itemIndex) { QVariant displayData(m_model->data(itemIndex, Qt::DisplayRole)); QVariant iconData(m_model->data(itemIndex, Qt::DecorationRole)); QVariant toolTipData(m_model->data(itemIndex, Qt::ToolTipRole)); QVariant statusTipData(m_model->data(itemIndex, Qt::StatusTipRole)); QVariant whatsThisData(m_model->data(itemIndex, Qt::WhatsThisRole)); QAction *childAction = new QAction(parentMenu); // Set text: if (displayData.canConvert(QVariant::String)) { childAction->setText(displayData.toString()); } // Set icon: if (iconData.canConvert(QVariant::Icon)) { childAction->setIcon(iconData.value<QIcon>()); } // Set tooltip: if (toolTipData.canConvert(QVariant::String)) { childAction->setToolTip(toolTipData.toString()); } // Set status tip: if (statusTipData.canConvert(QVariant::String)) { childAction->setStatusTip(statusTipData.toString()); } // Set whatsthis: if (whatsThisData.canConvert(QVariant::String)) { childAction->setWhatsThis(whatsThisData.toString()); } // Set checkable: if (m_model->flags(itemIndex).testFlag(Qt::ItemIsUserCheckable)) { childAction->setCheckable(true); } // Set checked: QVariant checkData(m_model->data(itemIndex, Qt::CheckStateRole)); bool ok; Qt::CheckState state = (Qt::CheckState) checkData.toInt(&ok); if (ok) { childAction->setChecked(state == Qt::Checked); } return childAction; }
void WIN32Window::setIcon(const std::string& file) { ImagePtr image = Image::load(file); if(!image) { g_logger.traceError(stdext::format("unable to load icon file %s", file)); return; } if(image->getBpp() != 4) { g_logger.error("the app icon must have 4 channels"); return; } int n = image->getWidth() * image->getHeight(); std::vector<uint32> iconData(n); for(int i=0; i < n;++i) { uint8 *pixel = (uint8*)&iconData[i]; pixel[2] = *(image->getPixelData() + (i * 4) + 0); pixel[1] = *(image->getPixelData() + (i * 4) + 1); pixel[0] = *(image->getPixelData() + (i * 4) + 2); pixel[3] = *(image->getPixelData() + (i * 4) + 3); } HBITMAP hbmColor = CreateBitmap(image->getWidth(), image->getHeight(), 1, 32, &iconData[0]); HBITMAP hbmMask = CreateCompatibleBitmap(GetDC(NULL), image->getWidth(), image->getHeight()); ICONINFO ii; ii.fIcon = TRUE; ii.hbmColor = hbmColor; ii.hbmMask = hbmMask; ii.xHotspot = 0; ii.yHotspot = 0; HICON icon = CreateIconIndirect(&ii); DeleteObject(hbmMask); DeleteObject(hbmColor); SendMessage(m_window, WM_SETICON, ICON_SMALL, (LPARAM)icon); SendMessage(m_window, WM_SETICON, ICON_BIG, (LPARAM)icon); }
QMenu *BtMenuView::newMenu(QMenu *parentMenu, const QModelIndex &itemIndex) { QVariant displayData(m_model->data(itemIndex, Qt::DisplayRole)); QVariant iconData(m_model->data(itemIndex, Qt::DecorationRole)); QVariant toolTipData(m_model->data(itemIndex, Qt::ToolTipRole)); QVariant statusTipData(m_model->data(itemIndex, Qt::StatusTipRole)); QVariant whatsThisData(m_model->data(itemIndex, Qt::WhatsThisRole)); QMenu *childMenu = new QMenu(parentMenu); // Set text: if (displayData.canConvert(QVariant::String)) { childMenu->setTitle(displayData.toString()); } // Set icon: if (iconData.canConvert(QVariant::Icon)) { childMenu->setIcon(iconData.value<QIcon>()); } // Set tooltip: if (toolTipData.canConvert(QVariant::String)) { childMenu->setToolTip(toolTipData.toString()); } // Set status tip: if (statusTipData.canConvert(QVariant::String)) { childMenu->setStatusTip(statusTipData.toString()); } // Set whatsthis: if (whatsThisData.canConvert(QVariant::String)) { childMenu->setWhatsThis(whatsThisData.toString()); } return childMenu; }
void CMemoryCardView::CRender::DrawScene() { RECT ClientRect; glClear(GL_COLOR_BUFFER_BIT); if(m_memoryCard == NULL) return; unsigned int nItemCount = static_cast<unsigned int>(m_memoryCard->GetSaveCount()); CopyRect(&ClientRect, &m_viewState->m_ClientRect); int nY = 0; int nUpperClip = (int)(m_viewState->m_nScrollPosition - m_viewState->m_nItemHeight); int nLowerClip = nUpperClip + ClientRect.bottom + m_viewState->m_nItemHeight; for(unsigned int i = 0; i < nItemCount; i++) { if(nY >= nLowerClip) break; if(nY > nUpperClip) { glClear(GL_DEPTH_BUFFER_BIT); glViewport(0, (ClientRect.bottom - nY - m_viewState->m_nItemHeight + m_viewState->m_nScrollPosition), m_viewState->m_nItemWidth, m_viewState->m_nItemHeight); if(nY == (m_viewState->m_nSelection * m_viewState->m_nItemHeight)) { glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0, 1, 1, 0, 0, 1); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glDisable(GL_DEPTH_TEST); glColor4f(0.0f, 0.0f, 0.0f, 1.0f); glBegin(GL_QUADS); { glVertex2f(0.0, 0.0); glVertex2f(1.0, 0.0); glVertex2f(1.0, 1.0); glVertex2f(0.0, 1.0); } glEnd(); } glEnable(GL_DEPTH_TEST); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glTranslatef(0.0f, -2.0f, -7.0f); glScalef(1.0f, -1.0f, -1.0f); glColor4f(1.0f, 1.0f, 1.0f, 1.0f); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(45.0f, (float)m_viewState->m_nItemWidth / (float)m_viewState->m_nItemHeight, 0.1f, 100.0f); IconMeshPtr iconMesh; IconList::iterator itIcon = m_icons.find(i); if(itIcon == m_icons.end()) { const CSave* pSave = m_memoryCard->GetSaveByIndex(i); try { auto iconStream(Framework::CreateInputStdStream(pSave->GetNormalIconPath().native())); IconPtr iconData(new CIcon(iconStream)); iconMesh = IconMeshPtr(new CIconMesh(iconData)); } catch(...) { } m_icons[i] = iconMesh; } else { iconMesh = itIcon->second; } if(iconMesh) { iconMesh->Render(); } } nY += m_viewState->m_nItemHeight; } SwapBuffers(m_deviceContext); }
const Result CtrlrWindows::exportWithDefaultPanel(CtrlrPanel* panelToWrite, const bool isRestricted, const bool signPanel, RSAKey privateKey) { if (panelToWrite == nullptr) { return (Result::fail("Windows Native: exportWithDefaultPanel got nullptr for panel")); } File me = File::getSpecialLocation(File::currentExecutableFile); File newMe; HANDLE hResource; MemoryBlock panelExportData,panelResourcesData; MemoryBlock iconData(BinaryData::ico_midi_png, BinaryData::ico_midi_pngSize); FileChooser fc(CTRLR_NEW_INSTANCE_DIALOG_TITLE, me.getParentDirectory().getChildFile(File::createLegalFileName(panelToWrite->getProperty(Ids::name))).withFileExtension(me.getFileExtension()), "*"+me.getFileExtension(), panelToWrite->getOwner().getProperty(Ids::ctrlrNativeFileDialogs)); if (fc.browseForFileToSave(true)) { newMe = fc.getResult(); if (!newMe.hasFileExtension(me.getFileExtension())) { newMe = newMe.withFileExtension(me.getFileExtension()); } if (!me.copyFileTo (newMe)) { return (Result::fail("Windows Native: exportMeWithNewResource can't copy \""+me.getFullPathName()+"\" to \""+newMe.getFullPathName()+"\"")); } } else { return (Result::fail("Windows Native: exportMeWithNewResource \"Save file\" dialog failed")); } hResource = BeginUpdateResource(newMe.getFullPathName().toUTF8(), FALSE); if (hResource) { String error; if ( (error = CtrlrPanel::exportPanel (panelToWrite, File::nonexistent, newMe, &panelExportData, &panelResourcesData, isRestricted)) == String::empty) { if ( writeResource (hResource, MAKEINTRESOURCE(CTRLR_INTERNAL_PANEL_RESID), RT_RCDATA, panelExportData) && writeResource (hResource, MAKEINTRESOURCE(CTRLR_INTERNAL_RESOURCES_RESID), RT_RCDATA, panelResourcesData) ) { EndUpdateResource(hResource, FALSE); } else { return (Result::fail("Windows Native: exportMeWithNewResource writeResource[panel] failed")); } if (isRestricted && privateKey != RSAKey()) { /* Sign the panel */ MemoryBlock signature = signData (panelResourcesData, privateKey); } } else { return (Result::fail("Windows Native: exportMeWithNewResource exportPanel error: \""+error+"\"")); } return (Result::ok()); } return (Result::fail("Windows Native: exportMeWithNewResource BeginUpdateResource failed")); }