[haiku-commits] r34659 - haiku/trunk/src/preferences/screen

  • From: axeld@xxxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 14 Dec 2009 09:08:57 +0100 (CET)

Author: axeld
Date: 2009-12-14 09:08:57 +0100 (Mon, 14 Dec 2009)
New Revision: 34659
Changeset: http://dev.haiku-os.org/changeset/34659/haiku
Ticket: http://dev.haiku-os.org/ticket/5112

Modified:
   haiku/trunk/src/preferences/screen/ScreenMode.cpp
   haiku/trunk/src/preferences/screen/ScreenMode.h
   haiku/trunk/src/preferences/screen/ScreenWindow.cpp
   haiku/trunk/src/preferences/screen/ScreenWindow.h
Log:
* Added info about the graphics device as suggested in #5112. However, it's
  currently only shown in the monitor tool tip, that is now feels a bit crowded,
  so a better solution would be nice. I'm hesitant to give it a more prominent
  position, though, unless one has proof-read what the accelerants actually
  return here.
* Added missing space between the serial number of the monitor and the date it
  has been produced.
* Renamed fTempScreenMode to fUndoScreenMode, as it's only used to deliver that
  functionality.


Modified: haiku/trunk/src/preferences/screen/ScreenMode.cpp
===================================================================
--- haiku/trunk/src/preferences/screen/ScreenMode.cpp   2009-12-13 23:01:28 UTC 
(rev 34658)
+++ haiku/trunk/src/preferences/screen/ScreenMode.cpp   2009-12-14 08:08:57 UTC 
(rev 34659)
@@ -533,6 +533,14 @@
 }
 
 
+status_t
+ScreenMode::GetDeviceInfo(accelerant_device_info& info)
+{
+       BScreen screen(fWindow);
+       return screen.GetDeviceInfo(&info);
+}
+
+
 screen_mode
 ScreenMode::ModeAt(int32 index)
 {

Modified: haiku/trunk/src/preferences/screen/ScreenMode.h
===================================================================
--- haiku/trunk/src/preferences/screen/ScreenMode.h     2009-12-13 23:01:28 UTC 
(rev 34658)
+++ haiku/trunk/src/preferences/screen/ScreenMode.h     2009-12-14 08:08:57 UTC 
(rev 34659)
@@ -56,6 +56,8 @@
                        status_t                GetMonitorInfo(monitor_info& 
info,
                                                                float* 
_diagonalInches = NULL);
 
+                       status_t                
GetDeviceInfo(accelerant_device_info& info);
+
                        screen_mode             ModeAt(int32 index);
                        int32                   CountModes();
 

Modified: haiku/trunk/src/preferences/screen/ScreenWindow.cpp
===================================================================
--- haiku/trunk/src/preferences/screen/ScreenWindow.cpp 2009-12-13 23:01:28 UTC 
(rev 34658)
+++ haiku/trunk/src/preferences/screen/ScreenWindow.cpp 2009-12-14 08:08:57 UTC 
(rev 34659)
@@ -165,7 +165,7 @@
                B_ALL_WORKSPACES),
        fBootWorkspaceApplied(false),
        fScreenMode(this),
-       fTempScreenMode(this),
+       fUndoScreenMode(this),
        fModified(false)
 {
        BScreen screen(this);
@@ -1034,7 +1034,7 @@
                }
 
                case BUTTON_UNDO_MSG:
-                       fTempScreenMode.Revert();
+                       fUndoScreenMode.Revert();
                        _UpdateActiveMode();
                        break;
 
@@ -1216,9 +1216,26 @@
                if (info.produced.week != 0 && info.produced.year != 0
                        && length < sizeof(text)) {
                        length += snprintf(text + length, sizeof(text) - length,
-                               "(%u/%u)", info.produced.week, 
info.produced.year);
+                               " (%u/%u)", info.produced.week, 
info.produced.year);
                }
        }
+
+       // Add info about the graphics device
+
+       accelerant_device_info deviceInfo;
+       if (fScreenMode.GetDeviceInfo(deviceInfo) == B_OK
+               && length < sizeof(text)) {
+               if (deviceInfo.name[0] && deviceInfo.chipset[0]) {
+                       length += snprintf(text + length, sizeof(text) - length,
+                               "%s%s (%s)", length != 0 ? "\n\n" : "", 
deviceInfo.name,
+                               deviceInfo.chipset);
+               } else if (deviceInfo.name[0] || deviceInfo.chipset[0]) {
+                       length += snprintf(text + length, sizeof(text) - length,
+                               "%s%s", length != 0 ? "\n\n" : "", 
deviceInfo.name[0]
+                                       ? deviceInfo.name : deviceInfo.chipset);
+               }
+       }
+
        if (text[0])
                fMonitorView->SetToolTip(text);
 }
@@ -1237,7 +1254,8 @@
 ScreenWindow::_Apply()
 {
        // make checkpoint, so we can undo these changes
-       fTempScreenMode.UpdateOriginalModes();
+       fUndoScreenMode.UpdateOriginalModes();
+
        status_t status = fScreenMode.Set(fSelected);
        if (status == B_OK) {
                // use the mode that has eventually been set and

Modified: haiku/trunk/src/preferences/screen/ScreenWindow.h
===================================================================
--- haiku/trunk/src/preferences/screen/ScreenWindow.h   2009-12-13 23:01:28 UTC 
(rev 34658)
+++ haiku/trunk/src/preferences/screen/ScreenWindow.h   2009-12-14 08:08:57 UTC 
(rev 34659)
@@ -102,12 +102,15 @@
 
                        BButton*                fBackgroundsButton;
 
-                       ScreenMode              fScreenMode, fTempScreenMode;
+                       ScreenMode              fScreenMode;
+                       ScreenMode              fUndoScreenMode;
                                // screen modes for all workspaces
+
+                       screen_mode             fActive, fSelected, fOriginal;
+                               // screen modes for the current workspace
+
                        uint32                  fOriginalWorkspacesColumns;
                        uint32                  fOriginalWorkspacesRows;
-                       screen_mode             fActive, fSelected, fOriginal;
-                               // screen modes for the current workspace
                        bool                    fModified;
 };
 


Other related posts: