Changeset 6482 in vbox
- Timestamp:
- Jan 24, 2008 2:29:40 PM (17 years ago)
- svn:sync-xref-src-repo-rev:
- 27483
- Location:
- trunk/src/VBox/Frontends/VirtualBox
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/include/VBoxConsoleWnd.h
r6474 r6482 77 77 78 78 void setMask (const QRegion &aRegion); 79 80 #ifdef Q_WS_MAC 81 CGImageRef dockImageState () const; 82 #endif 79 83 80 84 public slots: -
trunk/src/VBox/Frontends/VirtualBox/include/VBoxUtils.h
r6474 r6482 255 255 CGImageRef DarwinQPixmapFromMimeSourceToCGImage (const char *aSource); 256 256 CGImageRef DarwinCreateDockBadge (const char *aSource); 257 CGImageRef DarwinCreateDockPreview (VBoxFrameBuffer *aFrameBuffer );257 CGImageRef DarwinCreateDockPreview (VBoxFrameBuffer *aFrameBuffer, CGImageRef aOverlayImage); 258 258 OSStatus DarwinRegionHandler (EventHandlerCallRef aInHandlerCallRef, EventRef aInEvent, void *aInUserData); 259 259 #endif /* Q_WS_MAC */ -
trunk/src/VBox/Frontends/VirtualBox/src/VBoxConsoleView.cpp
r6467 r6482 2808 2808 /* Update the dock icon if we are in the running state */ 2809 2809 if (isRunning()) 2810 SetApplicationDockTileImage (::DarwinCreateDockPreview(mFrameBuf));2810 SetApplicationDockTileImage (::DarwinCreateDockPreview(mFrameBuf, mMainWnd->dockImageState ())); 2811 2811 #endif 2812 2812 return; -
trunk/src/VBox/Frontends/VirtualBox/src/VBoxConsoleWnd.cpp
r6474 r6482 1898 1898 } 1899 1899 #ifdef Q_WS_MAC 1900 if (1)//(element & DockTile)1901 {1902 //CGContextDrawImage1903 //HIViewDrawCGImage();1904 //CGImageAlphaInfo1905 CGImageRef img;1906 if (machine_state == CEnums::Running)1907 img = dockImgStateRunning;1908 else if (machine_state == CEnums::Paused)1909 img = dockImgStatePaused;1910 else if (machine_state == CEnums::Restoring)1911 img = dockImgStateRestoring;1912 else if (machine_state == CEnums::Saving)1913 img = dockImgStateSaving;1914 else1915 img = NULL;1916 1900 SetApplicationDockTileImage (dockImgOS); 1901 CGImageRef img = dockImageState (); 1917 1902 if (img) 1918 1903 OverlayApplicationDockTileImage (img); 1919 }1920 1904 #endif 1921 1905 } … … 2183 2167 return true; 2184 2168 } 2169 2170 #ifdef Q_WS_MAC 2171 CGImageRef VBoxConsoleWnd::dockImageState () const 2172 { 2173 CGImageRef img; 2174 if (machine_state == CEnums::Running) 2175 img = dockImgStateRunning; 2176 else if (machine_state == CEnums::Paused) 2177 img = dockImgStatePaused; 2178 else if (machine_state == CEnums::Restoring) 2179 img = dockImgStateRestoring; 2180 else if (machine_state == CEnums::Saving) 2181 img = dockImgStateSaving; 2182 else 2183 img = NULL; 2184 return img; 2185 } 2186 #endif 2185 2187 2186 2188 // -
trunk/src/VBox/Frontends/VirtualBox/src/darwin/VBoxUtils-darwin.cpp
r6474 r6482 136 136 * @param aFrameBuffer The guest frame buffer. 137 137 */ 138 CGImageRef DarwinCreateDockPreview (VBoxFrameBuffer *aFrameBuffer )138 CGImageRef DarwinCreateDockPreview (VBoxFrameBuffer *aFrameBuffer, CGImageRef aOverlayImage) 139 139 { 140 140 CGColorSpaceRef cs = CGColorSpaceCreateDeviceRGB(); … … 143 143 CGDataProviderRef dp = CGDataProviderCreateWithData (aFrameBuffer, aFrameBuffer->address(), aFrameBuffer->bitsPerPixel() / 8 * aFrameBuffer->width() * aFrameBuffer->height() , NULL); 144 144 CGImageRef ir = CGImageCreate (aFrameBuffer->width(), aFrameBuffer->height(), 8, 32, aFrameBuffer->bytesPerLine(), cs, 145 kCGImageAlphaNoneSkipFirst | kCGBitmapByteOrder32Host, dp, 0 /* decode */, 0 /* shouldInterpolate */,145 kCGImageAlphaNoneSkipFirst | kCGBitmapByteOrder32Host, dp, 0, false, 146 146 kCGRenderingIntentDefault); 147 147 … … 153 153 int targetWidth = 128; 154 154 int targetHeight = 128; 155 int scaledWidth; 156 int scaledHeight; 155 157 float aspect = static_cast<float>(aFrameBuffer->width()) / aFrameBuffer->height(); 156 CGRect rect;157 158 if (aspect > 1.0) 158 159 { 159 rect.origin.x = 0; 160 rect.origin.y = (targetHeight - targetHeight / aspect) / 2; 161 rect.size.width = targetWidth; 162 rect.size.height = targetHeight / aspect; 160 scaledWidth = targetWidth; 161 scaledHeight = targetHeight / aspect; 163 162 } 164 163 else 165 164 { 166 rect.origin.x = (targetWidth - targetWidth * aspect) / 2; 167 rect.origin.y = 0; 168 rect.size.width = targetWidth*aspect; 169 rect.size.height = targetHeight; 165 scaledWidth = targetWidth * aspect; 166 scaledHeight = targetHeight; 170 167 } 171 168 CGRect iconRect = CGRectMake ((targetWidth - scaledWidth) / 2.0, 169 (targetHeight - scaledHeight) / 2.0, 170 scaledWidth, scaledHeight); 172 171 /* Create a bitmap context to draw on */ 173 172 CGImageRef dockImage = NULL; … … 178 177 { 179 178 CGContextRef context = CGBitmapContextCreate (bitmapData, targetWidth, targetHeight, 8, bitmapBytesPerRow, cs, kCGImageAlphaPremultipliedLast); 180 181 /* Draw on the bitmap */ 182 CGContextDrawImage (context, rect, ir); 183 179 /* rounded corners */ 180 // CGContextSetLineJoin (context, kCGLineJoinRound); 181 // CGContextSetShadow (context, CGSizeMake(10, 5), 1); 182 // CGContextSetAllowsAntialiasing (context, true); 183 /* some little boarder */ 184 iconRect = CGRectInset (iconRect, 1, 1); 185 /* gray stroke */ 186 CGContextSetRGBStrokeColor (context, 225.0/255.0, 218.0/255.0, 211.0/255.0, 1); 187 iconRect = CGRectInset (iconRect, 6, 6); 188 CGContextStrokeRectWithWidth (context, iconRect, 12); 189 iconRect = CGRectInset (iconRect, 5, 5); 190 /* black stroke */ 191 CGContextSetRGBStrokeColor (context, 0.0, 0.0, 0.0, 1.0); 192 CGContextStrokeRectWithWidth (context, iconRect, 2); 193 /* vm content */ 194 iconRect = CGRectInset (iconRect, 1, 1); 195 CGContextDrawImage (context, iconRect, ir); 196 /* the overlay image */ 197 if (aOverlayImage) 198 { 199 CGRect overlayRect = CGRectMake (targetWidth - CGImageGetWidth (aOverlayImage), 0, CGImageGetWidth (aOverlayImage), CGImageGetHeight (aOverlayImage)); 200 CGContextDrawImage (context, overlayRect, aOverlayImage); 201 } 184 202 /* Create the preview image ref from the bitmap */ 185 203 dockImage = CGBitmapContextCreateImage (context);
Note:
See TracChangeset
for help on using the changeset viewer.